Als Teil 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 webserverbezogenen Dateien zu trennen), aber wir haben eine viel flexiblere Lösung, die Speicherplatz trennen oder zusammenfassen kann.
Diese Lösung heißt LVM, der Logical Volume Manager. LVM ermöglicht es uns, mehrere Festplatten als ein Dateisystem zu sehen und damit die Einschränkungen des Standorts einer physischen Festplatte zu überwinden. Wir können auch Software-Spiegelungen auf Festplatten erstellen, um Daten zu schützen oder in das Dateisystem zu schreiben. In diesem Tutorial behandeln wir die Grundlagen:Wir verwalten die drei Ebenen von LVM, physische Volumes, Volume-Gruppen und logische Volumes.
In diesem Tutorial lernen Sie:
- So erstellen und entfernen Sie physische Volumes
- So weisen Sie Datenträgergruppen physische Datenträger zu
- So erstellen und löschen Sie logische Volumes
Erstellen eines neuen physischen Datenträgers mit LVM.
Softwareanforderungen und verwendete Konventionen
Kategorie | Anforderungen, Konventionen oder verwendete Softwareversion |
---|---|
System | Red Hat Enterprise Linux 8.1 |
Software | LVM 2.03 |
Andere | Privilegierter Zugriff auf Ihr Linux-System als root oder über sudo Befehl. |
Konventionen | # – erfordert, dass bestimmte Linux-Befehle mit Root-Rechten ausgeführt werden, entweder direkt als Root-Benutzer oder durch Verwendung von sudo Befehl$ – erfordert, dass bestimmte Linux-Befehle als normaler, nicht privilegierter Benutzer ausgeführt werden |
Bei LVM haben wir drei Schichten, die aufeinander aufbauen:physical volumes
(pv), die Partitionen sehr ähnlich sind, nur für die LVM-Nutzung markiert. Wir können ein physisches Volume aus einer Festplattenpartition oder einer ganzen Raw-Festplatte erstellen. Wenn wir beabsichtigen, eine Festplatte nur als physisches LVM-Volume zu verwenden, müssen wir darauf nicht zuerst eine Partition erstellen. Die nächste Schicht ist eine volume group
(sg). Wie der Name schon sagt, handelt es sich einfach um die Gruppierung physischer Volumes. Auf dieser Ebene können wir den gesamten Speicherplatz des zugrunde liegenden physischen Volumes zu einer größeren Speichereinheit zusammenfassen. Auf Volumengruppen können wir die letzte Schicht erstellen, logical volumes
(lv). Diese können Dateisysteme enthalten, in denen wir unsere Daten speichern können.
Eines der Hauptmerkmale von LVM ist, dass wir einer Volume-Gruppe spontan ein weiteres physisches Volume hinzufügen können, und wir können auch die Größe eines logischen Volumes ändern, während das System läuft. Wenn uns also der Speicherplatz ausgeht, können wir skalieren, ohne ein System herunterzufahren.
Die Abkürzungen der Schichten sind gute Erinnerungen, wenn wir uns mit LVM befassen. Die Befehle, die auf verschiedenen Ebenen funktionieren, beginnen alle mit diesen Abkürzungen. Wenn wir beispielsweise mit physischen Volumes arbeiten, lautet der Befehl zum Erstellen eines solchen pvcreate
, lautet der Befehl zum Auflisten vorhandener physischer Volumes pvdisplay
, und so weiter. Selbst wenn wir dies selten tun müssen, ist es einfach, den richtigen Befehl zu erraten oder zu finden, da diese Namenskonvention auf allen Ebenen konsistent ist.
Für dieses Tutorial haben wir Festplatten mit jeweils 2 GB Größe zu unserem Laborcomputer hinzugefügt. Sie werden als /dev/sdb
erkannt und /dev/sdc
auf unserem System, während /dev/sda
enthält das Betriebssystem, das wir während der folgenden Schritte nicht berühren werden.
So erstellen und entfernen Sie physische Volumes
So erstellen Sie ein physisches Volume
Um ein physisches Volume zu erstellen, verwenden wir pvcreate
. Wir erstellen ein physisches 2-GB-Volume auf beiden sdb
, und sdc
.
# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. # pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created.
Wir können überprüfen, ob wir es richtig gemacht haben, indem wir unsere physischen Volumes auflisten. Wir verwenden pvdisplay
.
# pvdisplay --- Physical volume --- PV Name /dev/sda2 VG Name rhel PV Size <14.00 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 3583 Free PE 0 Allocated PE 3583 PV UUID rfezEa-GlgW-jWUX-Zixs-Ydw0-EsZS-nk3JDH "/dev/sdb" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID V2PUv4-O9eQ-jFvQ-UmQf-dmq3-caF9-xmxYGj "/dev/sdc" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID PWTs7Q-x3wD-RyXj-ertn-Sh2N-CiXb-ayDc1q
Der Lab-Rechner verwendet LVM bereits in seiner Standardkonfiguration (wie die meisten Distributionen heutzutage), deshalb /dev/sda2
wird gezeigt. Wir interessieren uns für unsere beiden neuen physischen Volumes, die wir jetzt verifizieren können.
So entfernen Sie ein physisches Volume
Um ein physisches Volume zu löschen, haben wir den pvremove
Befehl. Entfernen Sie keinen physischen Datenträger mit darauf geschriebenen Daten, die benötigt werden.
# pvremove /dev/sdc Labels on physical volume "/dev/sdc" successfully wiped.
So weisen Sie Datenträgergruppen physische Datenträger zu
Datenträgergruppe aus physischen Datenträgern erstellen.
Nach dem erneuten Erstellen des gelöschten sdc
physischen Volume haben wir alles, was wir brauchen, um eine Volume-Gruppe zu erstellen, die ein logisches Volume enthalten kann. Wir könnten eine Volume-„Gruppe“ erstellen, die nur ein physisches Volume hat – was genau der Fall des Standard-sda2
ist – Um jedoch die Speicheraggregation zu demonstrieren, verwenden wir unsere beiden neuen physischen Volumes, um eine Volume-Gruppe mit dem Namen „Daten“ zu erstellen, die über 4 GB Speicherplatz verfügt.
Wir können eine Volumengruppe 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 Volumengruppe 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.
So erstellen und löschen Sie logische Volumes
Auf einer Volumengruppe können wir logische Volumen erstellen, die wiederum Dateisysteme enthalten können. Die Standardinstallation vieler Distributionen trennt den Speicher auf diese Weise, beispielsweise werden die Daten des Benutzers auf /home
gespeichert logisches Volume und Systemprotokolle werden in /var
gespeichert Volumen. Für den Fall, dass ein Benutzer das Home-Volume füllt, ist das Gesamtsystem weiterhin in der Lage, Protokolle zu schreiben, und somit werden seine Dienste weiter ausgeführt, während der Systemadministrator mit dem wild gewordenen Benutzer umgehen kann.
So erstellen Sie ein logisches Volume
Wir erstellen zwei logische Volumes, das erste namens „Datenbank“ mit einer Größe von 2 GB, das andere namens „Webserver“ mit 500 MB Speicherplatz. Wie Sie den obigen Beispielen entnehmen können, ist der von uns verwendete Befehl 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
bereitstellen . Während dies auf einigen Systemen zu einer längeren Ausgabe führen 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 an dieser Stelle unsere Volume-Gruppe überprüfen, können wir den Speicherplatz feststellen, den die logischen Volumes von der Volume-Gruppe verbrauchen.
# 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
So löschen Sie ein logisches Volume
Um Speicherplatz freizugeben oder Volumes neu zu organisieren, können wir logische Volumes mit lvremove
löschen .
Entfernen Sie keine logischen Volumes, die wertvolle Daten enthalten. Dadurch werden Daten auf dem Volume zerstört.
Es sind Sicherheitsgurte eingebaut, vorbei sind die Zeiten, in denen das Abwischen unseres Systems nicht auf eine Aufforderung warten musste. Zumindest bei Verwendung der LVM-Befehle.
# 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 Volumengruppenauflistung zeigt, dass die 500 MB des webserver
Das Volume wird nun wieder zur freien Größe der Volume-Gruppe hinzugefügt:
# 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
- Erstellen Sie zwei Volumengruppen und erstellen Sie auf beiden logische Volumen mit demselben Namen.
- 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, einen der physischen Datenträger zu entfernen.
- Versuchen Sie, ein logisches Volume zu erstellen, das genau die Größe der Volume-Gruppe hat.
- Erstellen Sie ein weiteres physisches Volume auf einer Festplatte, fügen Sie es Ihrer Volume-Gruppe hinzu, fahren Sie dann die Maschine herunter und entfernen Sie die Festplatte. Was bedeutet
vgdisplay
sagen auf der fehlenden Festplatte? - Fügen Sie die zuvor entfernte Festplatte wieder ein. Wird es beim nächsten Booten erkannt?