GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwalten Sie Speicher unter Linux mit LVM

Logical Volume Manager (LVM) ist ein softwarebasiertes RAID-ähnliches System, mit dem Sie „Speicherpools“ erstellen und diesen Pools nach Bedarf Festplattenspeicher hinzufügen können. Es gibt viele Gründe, es zu verwenden, insbesondere in Rechenzentren oder an Orten, an denen sich die Speicheranforderungen im Laufe der Zeit ändern. Viele Linux-Distributionen verwenden es jedoch standardmäßig für Desktop-Installationen, da Benutzer die Flexibilität als angenehm empfinden und es einige integrierte Verschlüsselungsfunktionen gibt, die die LVM-Struktur vereinfacht.

Wenn Sie jedoch nicht daran gewöhnt sind, beim Booten von einer Live-CD zu Datenrettungs- oder Migrationszwecken ein LVM-Volume zu sehen, kann LVM aufgrund des Mount verwirrend sein Befehl kann LVM-Volumes nicht mounten. Dazu müssen Sie die LVM-Tools installiert haben. Die Chancen stehen gut, dass Ihre Distribution LVM-Dienstprogramme verfügbar hat – falls sie nicht bereits installiert sind.

Dieses Tutorial erklärt, wie man LVM-Volumes erstellt und damit umgeht.

Erstellen Sie einen LVM-Pool

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

In diesem Artikel wird davon ausgegangen, dass Sie über ausreichende Kenntnisse im Umgang mit Festplatten unter Linux verfügen. Wenn Sie weitere Informationen zu den Grundlagen benötigen, bevor Sie fortfahren, lesen Sie meine Einführung zu Festplatten unter Linux.

Normalerweise müssen Sie LVM überhaupt nicht einrichten. Wenn Sie Linux installieren, erstellt es häufig standardmäßig einen virtuellen "Speicherpool" und fügt die Festplatte(n) Ihres Computers zu diesem Pool hinzu. Das manuelle Erstellen eines LVM-Speicherpools ist jedoch eine großartige Möglichkeit, um zu erfahren, was hinter den Kulissen passiert.

Sie können mit zwei freien USB-Sticks beliebiger Größe oder zwei Festplatten oder einer virtuellen Maschine mit zwei definierten imaginären Laufwerken üben.

Formatieren Sie zuerst das imaginäre Laufwerk /dev/sdx damit Sie ein frisches Laufwerk haben, das Sie für diese Demo verwenden können.

# echo "warning, this ERASES everything on this drive."
warning, this ERASES everything on this drive.
# dd if=/dev/zero of=/dev/sdx count=8196
# parted /dev/sdx print | grep Disk
Disk /dev/sdx: 100GB
# parted /dev/sdx mklabel gpt
# parted /dev/sdx mkpart primary 1s 100%

Dieser LVM-Befehl erstellt einen Speicherpool. Ein Pool kann aus einem oder mehreren Laufwerken bestehen, und im Moment besteht er aus einem. Dieser beispielhafte Speicherpool heißt Billard , aber Sie können es beliebig nennen.

# vgcreate billiards /dev/sdx1

Jetzt haben Sie einen großen, nebulösen Vorrat an Speicherplatz. Zeit, es auszuteilen. Um zwei logische Volumes zu erstellen (Sie können sie sich als virtuelle Laufwerke vorstellen), eines namens vol0 und die andere heißt vol1 , geben Sie Folgendes ein:

# lvcreate billiards 49G --name vol0
# lvcreate billiards 49G --name vol1

Jetzt haben Sie zwei Volumes aus einem Speicherpool herausgeschnitten, aber keiner von ihnen hat noch ein Dateisystem. Um ein Dateisystem auf jedem Volume zu erstellen, müssen Sie Billard mitbringen Volumengruppe online.

# vgchange --activate y billiards

Erstellen Sie nun die Dateisysteme. Das -L Option bietet eine Bezeichnung für das Laufwerk, die angezeigt wird, wenn das Laufwerk auf Ihrem Desktop bereitgestellt wird. Der Pfad zum Volume unterscheidet sich ein wenig von den üblichen Gerätepfaden, die Sie gewohnt sind, da es sich um virtuelle Geräte in einem LVM-Speicherpool handelt.

# mkfs.ext4 -L finance /dev/billiards/vol0
# mkfs.ext4 -L production /dev/billiards/vol1

Sie können diese neuen Volumes auf Ihrem Desktop oder von einem Terminal aus mounten.

# mkdir -p /mnt/vol0 /mnt/vol1
# mount /dev/billiards/vol0 /mnt/vol0
# mount /dev/billiards/vol1 /mnt/vol1

Fügen Sie Platz zu Ihrem Pool hinzu

Bisher hat LVM nicht mehr bereitgestellt als die normale Partitionierung eines Laufwerks:zwei unterschiedliche Bereiche des Laufwerksspeichers auf einem einzelnen physischen Laufwerk (in diesem Beispiel 49 GB und 49 GB auf einem 100-GB-Laufwerk). Stellen Sie sich jetzt vor, die Finanzabteilung braucht mehr Platz. Traditionell müssten Sie umstrukturieren. Vielleicht würden Sie die Daten der Finanzabteilung auf ein neues, dediziertes physisches Laufwerk verschieben, oder vielleicht würden Sie ein Laufwerk hinzufügen und dann einen hässlichen Symlink-Hack verwenden, um Benutzern einfachen Zugriff auf ihren zusätzlichen Speicherplatz zu ermöglichen. Bei LVM müssen Sie jedoch lediglich den Speicherpool erweitern.

Sie können Ihrem Pool Speicherplatz hinzufügen, indem Sie ein weiteres Laufwerk formatieren und es verwenden, um zusätzlichen Speicherplatz zu schaffen.

Erstellen Sie zuerst eine Partition auf dem neuen Laufwerk, das Sie dem Pool hinzufügen.

# part /dev/sdy mkpart primary 1s 100%

Verwenden Sie dann das vgextend Befehl, um das neue Laufwerk als Teil des Pools zu markieren.

# vgextend billiards /dev/sdy1

Weisen Sie schließlich einen Teil des neu verfügbaren Speicherpools dem entsprechenden logischen Datenträger zu.

# lvextend -L +49G /dev/billiards/vol0

Natürlich muss die Ausdehnung nicht so linear sein. Stellen Sie sich vor, die Produktionsabteilung benötigt plötzlich 100 TB zusätzlichen Speicherplatz. Mit LVM können Sie so viele physische Laufwerke wie nötig hinzufügen, jedes einzelne hinzufügen und vgextend verwenden um einen 100-TB-Speicherpool zu erstellen, und verwenden Sie dann lvextend um den Speicherplatz der Produktionsabteilung auf 100 TB verfügbaren Speicherplatz zu "strecken".

Verwenden Sie utils, um Ihre Speicherstruktur zu verstehen

Sobald Sie anfangen, LVM ernsthaft zu nutzen, kann die Speicherlandschaft überwältigend werden. Es gibt zwei Befehle, um Informationen über die Struktur Ihrer Speicherinfrastruktur zu sammeln.

Da ist zunächst vgdisplay , das Informationen über Ihre Datenträgergruppen anzeigt (Sie können sich diese als die großen virtuellen Laufwerke von LVM vorstellen).

# vgdisplay
  --- Volume group ---
  VG Name               billiards
  System ID            
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <237.47 GiB
  PE Size               4.00 MiB
  Total PE              60792
  Alloc PE / Size       60792 / <237.47 GiB
  Free  PE / Size       0 / 0  
  VG UUID               j5RlhN-Co4Q-7d99-eM3K-G77R-eDJO-nMR9Yg

Das zweite ist lvdisplay , das Informationen zu Ihren logischen Volumes anzeigt (Sie können sich diese als benutzerseitige Laufwerke vorstellen).

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/billiards/finance
  LV Name                finance
  VG Name                billiards
  LV UUID                qPgRhr-s0rS-YJHK-0Cl3-5MME-87OJ-vjjYRT
  LV Write Access        read/write
  LV Creation host, time localhost, 2018-12-16 07:31:01 +1300
  LV Status              available
  # open                 1
  LV Size                149.68 GiB
  Current LE             46511
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

[...]

Verwenden Sie LVM in einer Rettungsumgebung

Das "Problem" mit LVM besteht darin, dass es Partitionen auf eine Weise umschließt, die vielen administrativen Benutzern, die an die traditionelle Laufwerkspartitionierung gewöhnt sind, ungewohnt ist. Unter normalen Umständen werden LVM-Laufwerke ziemlich unsichtbar während des Startvorgangs oder der Desktop-LVM-Integration aktiviert und gemountet. Es ist nichts, worüber Sie normalerweise nachdenken müssen. Es wird nur problematisch, wenn Sie sich im Wiederherstellungsmodus befinden, nachdem etwas mit Ihrem System schief gelaufen ist.

Wenn Sie ein Volume mounten müssen, das in der Struktur von LVM „versteckt“ ist, müssen Sie sicherstellen, dass die LVM-Toolchain installiert ist. Wenn Sie Zugriff auf Ihre Datei /usr/sbin haben Verzeichnis haben Sie wahrscheinlich Zugriff auf alle Ihre üblichen LVM-Befehle. Wenn Sie jedoch in eine minimale Shell oder eine Rettungsumgebung gebootet haben, verfügen Sie möglicherweise nicht über diese Tools. In einer guten Rettungsumgebung ist LVM installiert. Wenn Sie sich also in einer minimalen Shell befinden, suchen Sie nach einem Rettungssystem, das dies tut. Wenn Sie eine Notfall-CD verwenden und darauf kein LVM installiert ist, installieren Sie es entweder manuell oder finden Sie eine Notfall-CD, auf der es bereits vorhanden ist.

Aus Gründen der Wiederholung und Klarheit, hier ist, wie man ein LVM-Volume einbindet.

# vgchange --activate y
2 logical volume(s) in volume group "billiards" now active
# mkdir /mnt/finance
# mount /dev/billiards/finance /mnt/finance

LVM mit LUKS-Verschlüsselung integrieren

Viele Linux-Distributionen verwenden LVM standardmäßig bei der Installation des Betriebssystems. Dies ermöglicht eine spätere Speichererweiterung, lässt sich aber auch gut in die Festplattenverschlüsselung integrieren, die von der Verschlüsselungs-Toolchain Linux Unified Key Setup (LUKS) bereitgestellt wird.

Verschlüsselung ist ziemlich wichtig, und es gibt zwei Möglichkeiten, Dinge zu verschlüsseln:Sie können mit einem Tool wie GnuPG auf Dateibasis verschlüsseln, oder Sie können eine ganze Partition verschlüsseln. Unter Linux ist das Verschlüsseln einer Partition mit LUKS einfach, das durch die vollständige Integration in Linux über Kernelmodule das Einbinden von Laufwerken zum nahtlosen Lesen und Schreiben ermöglicht.

Das Verschlüsseln Ihres gesamten Hauptlaufwerks erfolgt normalerweise als Option während der Installation. Sie wählen, ob Sie Ihr gesamtes Laufwerk oder nur Ihre Home-Partition verschlüsseln möchten, wenn Sie dazu aufgefordert werden, und ab diesem Zeitpunkt verwenden Sie LUKS. Es ist für Sie größtenteils unsichtbar, abgesehen von einer Passwortabfrage während des Bootens.

Wenn Ihre Distribution diese Option während der Installation nicht anbietet oder wenn Sie nur ein Laufwerk oder eine Partition manuell verschlüsseln möchten, können Sie das tun.

Sie können diesem Beispiel folgen, indem Sie ein Ersatzlaufwerk verwenden; Ich habe einen kleinen 4-GB-Stick verwendet.

Schließen Sie zuerst das Laufwerk an Ihren Computer an. Stellen Sie sicher, dass das Laufwerk sicher gelöscht werden kann, und verwenden Sie lsblk , um das Laufwerk auf Ihrem System zu finden.

Wenn das Laufwerk noch nicht partitioniert ist, partitionieren Sie es jetzt. Wenn Sie nicht wissen, wie man ein Laufwerk partitioniert, sehen Sie sich den obigen Link an, um Anweisungen zu erhalten.

Jetzt können Sie die Verschlüsselung einrichten. Formatieren Sie zuerst die Partition mit dem cryptsetup Befehl.

# cryptsetup luksFormat /dev/sdx1

Beachten Sie, dass Sie die Partition verschlüsseln , nicht das physische Laufwerk selbst. Sie werden eine Warnung sehen, dass LUKS Ihr Laufwerk löschen wird; Sie müssen es akzeptieren, um fortzufahren. Sie werden aufgefordert, eine Passphrase zu erstellen, also tun Sie das. Vergessen Sie diese Passphrase nicht. Ohne sie werden Sie nie wieder in dieses Laufwerk gelangen können!

Sie haben die Partition des USB-Sticks verschlüsselt, aber es gibt noch kein Dateisystem auf dem Laufwerk. Natürlich können Sie kein Dateisystem auf das Laufwerk schreiben, während Sie ausgesperrt sind, also öffnen Sie das Laufwerk zuerst mit LUKS. Sie können Ihrem Laufwerk einen benutzerfreundlichen Namen geben; für dieses Beispiel habe ich mySafeDrive verwendet .

# cryptsetup luksOpen /dev/sdx1 mySafeDrive

Geben Sie Ihre Passphrase ein, um das Laufwerk zu öffnen.

Schauen Sie in /dev/mapper nach und Sie werden sehen, dass Sie das Volume zusammen mit allen anderen LVM-Volumes gemountet haben, die Sie möglicherweise haben, was bedeutet, dass Sie jetzt Zugriff auf dieses Laufwerk haben. Der benutzerdefinierte Name (z. B. mySafeDrive) ist ein symbolischer Link zu einem automatisch generierten Bezeichner in /dev/mapper . Sie können beide Pfade verwenden, wenn Sie auf diesem Laufwerk arbeiten.

# ls -l /dev/mapper/mySafeDrive
lrwxrwxrwx. 1 root root 7 Oct 24 03:58 /dev/mapper/mySafeDrive -> ../dm-4

Erstellen Sie Ihr Dateisystem.

# mkfs.ext4 -o Linux -L mySafeExt4Drive /dev/mapper/mySafeDrive

Führen Sie nun ein ls -lh aus auf /dev/mapper und Sie werden sehen, dass mySafeDrive eigentlich ein Symlink zu einem anderen Entwickler ist; wahrscheinlich /dev/dm0 oder ähnliches. Das ist das Dateisystem, das Sie einhängen können:

# mount /dev/mapper/mySafeExt4Drive /mnt/hd

Jetzt wird das Dateisystem auf dem verschlüsselten Laufwerk gemountet. Sie können Dateien lesen und schreiben, wie Sie es von jedem Laufwerk erwarten würden.

Verwenden Sie verschlüsselte Laufwerke mit dem Desktop

LUKS ist in den Kernel integriert, sodass Ihr Linux-System genau weiß, wie es damit umgeht. Trennen Sie das Laufwerk, schließen Sie es wieder an und stellen Sie es von Ihrem Desktop aus bereit. Im Dolphin-Dateimanager von KDE werden Sie zur Eingabe eines Passworts aufgefordert, bevor das Laufwerk entschlüsselt und gemountet wird.

Die Verwendung von LVM und LUKS ist einfach und bietet Ihnen als Benutzer und Administrator Flexibilität. Da es eng in Linux selbst integriert ist, wird es gut unterstützt und ist eine großartige Möglichkeit, Ihren Daten eine Sicherheitsebene hinzuzufügen. Probieren Sie es noch heute aus!


Linux
  1. So verwalten Sie Linux-Dateifunktionen

  2. So verwalten Sie das Kontopasswort in Linux

  3. So verwalten Sie Systemd-Dienste mit Systemctl unter Linux

  4. So verwenden Sie Google Drive unter Linux

  5. So verwalten Sie Linux-Workstations mit Richtlinien

So verwalten Sie mehrere Java-Versionen mit jEnv unter Linux

So verwalten Sie Nodejs-Versionen mit n in Linux

So erstellen Sie eine Volumengruppe in Linux mit LVM

So sichern Sie Linux-Server mit SE Linux

So verwalten Sie einen Linux-Server mit SSH aus der Ferne

So verwalten Sie Speicher mit GParted Linux