Website-Suche

Verwenden von LVM zum Verwalten von physischen Volumes, Volume-Gruppen und logischen Volumes - RHCSA Objective Preparation


Im Rahmen der Vorbereitung auf die RHCSA-Prüfung haben wir bereits gelernt, wie man Partitionen auf der Festplatte verwaltet. Partitionen sind nützlich, um Speicherplatz zu trennen (z. B. um datenbankbezogene Dateien von Webserver-bezogenen Dateien zu trennen), aber wir haben eine viel flexiblere Lösung, die Speicherplatz trennen oder aggregieren kann.

Diese Lösung wird LVM (Logical Volume Manager) genannt. LVM ermöglicht es uns, mehrere Festplatten als ein Dateisystem zu betrachten und so die Einschränkungen des Standorts einer physischen Festplatte zu überwinden. Wir können auch Software-Spiegelungen auf Festplatten erstellen, um Daten zu schützen, die in das Dateisystem geschrieben werden. In diesem Tutorial behandeln wir die Grundlagen: Wir verwalten die drei Schichten von LVM, physische Volumes, Volume-Gruppen und logische Volumes.

In diesem Tutorial lernen Sie:

  • Erstellen und Entfernen physischer Volumes
  • Zuweisen physischer Volumes zu Volume-Gruppen
  • Erstellen und Löschen logischer Datenträger

Erstellen eines neuen physischen Volumes mit LVM.

Verwendete Softwareanforderungen und Konventionen

Bei LVM haben wir drei Schichten, die aufeinander aufbauen: physische Volumes (pv), die ähnlich wie Partitionen sind und nur für die LVM-Nutzung markiert sind. Wir können ein physisches Volume aus einer Festplattenpartition oder einer ganzen Rohfestplatte erstellen. Wenn wir beabsichtigen, eine Festplatte nur als physisches LVM-Volume zu verwenden, müssen wir nicht zuerst eine Partition darauf erstellen. Die nächste Schicht ist eine Volume-Gruppe (vg). Wie der Name schon sagt, handelt es sich einfach um die Gruppierung physischer Volumes. Auf dieser Schicht können wir den gesamten zugrunde liegenden Speicherplatz des physischen Volumes in einer größeren Speichereinheit zusammenfassen. Auf den Volume-Gruppen können wir die letzte Schicht erstellen, die logischen Volumes (lv). Diese können Dateisysteme enthalten, in denen wir unsere Daten speichern können.

Eine der Hauptfunktionen von LVM besteht darin, dass wir einer Volume-Gruppe im laufenden Betrieb ein weiteres physisches Volume hinzufügen und die Größe eines logischen Volumes ändern können, während das System läuft. Wenn uns also der Platz ausgeht, können wir skalieren, ohne ein System abzuschalten.

Die Abkürzungen der Schichten sind eine gute Erinnerung, wenn wir mit LVM zu tun haben. Die Befehle, die auf verschiedenen Ebenen funktionieren, beginnen alle mit diesen Abkürzungen, z. B. wenn wir mit physischen Volumes arbeiten, lautet der Befehl zum Erstellen eines Volumes pvcreate, der Befehl zum Auflisten vorhandener physischer Volumes lautet pvdisplay und so weiter. Auch wenn wir dies nur selten tun müssen, ist es einfach, den richtigen Befehl zu erraten oder zu finden, da diese Namenskonvention über alle Schichten hinweg konsistent ist.

Für dieses Tutorial haben wir Festplatten eine Größe von jeweils 2 GB für unseren Laborcomputer hinzugefügt. Sie werden auf unserem System als /dev/sdb und /dev/sdc erkannt, während /dev/sda das Betriebssystem enthält, auf das wir in den folgenden Schritten nicht eingehen werden.

Erstellen einer Volume-Gruppe aus physischen Volumes.

Nachdem wir das gelöschte physische SDC-Volume neu erstellt haben, haben wir alles, was wir brauchen, um eine Volume-Gruppe zu erstellen, die ein logisches Volume aufnehmen kann. Wir könnten eine Volume-"Gruppe" erstellen, die nur über ein physisches Volume verfügt – was genau der Fall des Standard-sda2 ist –, aber um die Speicheraggregation zu demonstrieren, verwenden wir unsere beiden neuen physischen Volumes, um eine Volume-Gruppe namens "data" zu erstellen, die über 4 GB verfügbaren Speicherplatz verfügt.

Wir können eine Volume-Gruppe mit vgcreate erstellen. Alles, was wir brauchen, ist die Angabe des VG-Namens und der physischen Volumes, die Mitglieder der Volume-Gruppe sein werden.

vgcreate data /dev/sdb /dev/sdc
  Volume group "data" successfully created

Wir können die Eigenschaften unserer neuen Volume-Gruppe mit vgdisplay auflisten.

vgdisplay data
  --- Volume group ---
  VG Name               data
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               3.99 GiB
  PE Size               4.00 MiB
  Total PE              1022
  Alloc PE / Size       0 / 0   
  Free  PE / Size       1022 / 3.99 GiB
  VG UUID               CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA

Beachten Sie die VG-Größe von fast 4 GB, die Summe der beiden physischen Volumes. Es wird nicht genau die Summe der Volumes sein, da etwas Platz für Metadaten reserviert ist.

Erstellen und Löschen logischer Datenträger

Auf einer Volume-Gruppe können wir logische Volumes erstellen, die wiederum Dateisysteme enthalten können. Bei der Standardinstallation auf vielen Distributionen wird der Speicher auf diese Weise getrennt, z. B. werden die Daten des Benutzers auf dem logischen Datenträger /home gespeichert, und die Systemprotokolle werden auf dem Datenträger /var gespeichert. Für den Fall, dass ein Benutzer das Home-Volume füllt, wird das Gesamtsystem immer noch in der Lage sein, Protokolle zu schreiben, und somit werden seine Dienste weiterhin ausgeführt, während der Systemadministrator mit dem wild gewordenen Benutzer umgehen kann.

Erstellen eines logischen Volumes

Wir erstellen zwei logische Volumes, das erste mit dem Namen "database" und einer Größe von 2 GB und das andere mit dem Namen "webserver" mit 500 MB Speicherplatz. Wie Sie aus den obigen Beispielen erraten können, ist der Befehl, den wir verwenden werden, lvcreate.

lvcreate -L 2G -n database data
  Logical volume "database" created.
lvcreate -L 500M -n webserver data
  Logical volume "webserver" created.

Wir können unsere Volume-Eigenschaften mit lvdisplay <volume path> anzeigen, oder wir können alle unsere logischen Volumes auflisten, wenn wir kein Argument für lvdisplay angeben. Während dies auf einigen Systemen eine lange Ausgabe ermöglichen kann, ist es in einer unbekannten Umgebung nützlich, da die Volume-Pfade je nach Distribution und Version variieren können.

lvdisplay /dev/data/database 
  --- Logical volume ---
  LV Path                /dev/data/database
  LV Name                database
  VG Name                data
  LV UUID                D7f9An-G0dd-kEGw-OGrP-HZlA-dQlX-yBbQbi
  LV Write Access        read/write
  LV Creation host, time rhel8rhcsa, 2019-12-28 16:53:24 +0100
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             512
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2
   
lvdisplay /dev/data/webserver 
  --- Logical volume ---
  LV Path                /dev/data/webserver
  LV Name                webserver
  VG Name                data
  LV UUID                7Ldt79-aw0i-Oydm-4d0I-JaVe-Zd8m-xKpvrD
  LV Write Access        read/write
  LV Creation host, time rhel8rhcsa, 2019-12-28 16:53:38 +0100
  LV Status              available
  # open                 0
  LV Size                500.00 MiB
  Current LE             125
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3

Wenn wir unsere Volume-Gruppe an dieser Stelle überprüfen, können wir den Speicherplatz feststellen, den die logischen Volumes von der Volume-Gruppe einnehmen.

vgdisplay data
  --- Volume group ---
  VG Name               data
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  5
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               3.99 GiB
  PE Size               4.00 MiB
  Total PE              1022
  Alloc PE / Size       637 / <2.49 GiB
  Free  PE / Size       385 / 1.50 GiB
  VG UUID               CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA

Erstellen eines logischen Volumes auf einem RHEL-Linux-System

So löschen Sie ein logisches Volume

Um Speicherplatz freizugeben oder Volumes neu zu organisieren, können wir logische Volumes mit lvremove löschen.

lvremove /dev/data/webserver 
Do you really want to remove active logical volume data/webserver? [y/n]: y
  Logical volume "webserver" successfully removed

Eine weitere Volume-Gruppen-Auflistung zeigt, dass die 500 MB des Webserver-Volumes nun wieder zur freien Größe der Volume-Gruppe addiert werden:

vgdisplay data
  --- Volume group ---
  VG Name               data
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  6
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               3.99 GiB
  PE Size               4.00 MiB
  Total PE              1022
  Alloc PE / Size       512 / 2.00 GiB
  Free  PE / Size       510 / 1.99 GiB
  VG UUID               CmM07M-16Ys-PZx2-XGvo-N1j3-nINX-fnIFIA

Übungen

  1. Erstellen Sie zwei Datenträgergruppen, und erstellen Sie auf beiden logische Datenträger mit demselben Namen.
  2. Fügen Sie Ihrer Volume-Gruppe ein weiteres physisches Volume hinzu und erstellen Sie dann ein logisches Volume, das die gesamte Volume-Gruppe belegt. Versuchen Sie nun, eines der physischen Volumes zu entfernen.
  3. Versuchen Sie, ein logisches Volume zu erstellen, das genau die Größe der Volume-Gruppe hat.
  4. Erstellen Sie ein weiteres physisches Volume auf einem Datenträger, fügen Sie es Ihrer Datenträgergruppe hinzu, fahren Sie den Computer herunter und entfernen Sie den Datenträger. Was sagt vgdisplay auf der fehlenden Festplatte?
  5. Fügen Sie die zuvor entfernte Festplatte wieder hinzu. Wird es beim nächsten Start erkannt?

Verwandte Artikel: