Was ist LVM
Der Logical Volume Manager (LVM) fügt eine zusätzliche Ebene zwischen den physischen Festplatten und dem Dateisystem ein, die es ermöglicht, dass Dateisysteme:
– einfach in der Größe geändert und verschoben werden können und online sind, ohne dass ein systemweiter Ausfall erforderlich ist.
– Diskontinuierliche Verwendung space on disk
– aussagekräftige Namen für Volumes anstelle der üblichen kryptischen Gerätenamen.
– mehrere physische Laufwerke umfassen
Linux LVM ist HP-UX LVM sehr ähnlich und bietet viele weitere erweiterte Funktionen wie Snapshots, Cluster-Unterstützung (GFS2, OCFS und Lustre).
Konzepte
LVM besteht aus wenigen konzeptionellen Ebenen wie physischem Volume, logischem Volume und Dateisystemen.
Die konzeptionellen Schichten bestehen wiederum aus kleineren Einheiten wie Physical Extents (im Falle von Physical Volumes) und Logical Extents (im Falle von Logical Volumes).
Physisches Volumen (PV)
Jedes physische Volume kann eine Festplattenpartition, eine ganze Festplatte, ein Metagerät oder eine Loopback-Datei sein. Verwenden Sie den Befehl pvcreate um den Speicher für die Verwendung durch LVM zu initialisieren. Beim Initialisieren eines Blockgeräts als physisches Volume wird eine Bezeichnung am Anfang des Geräts platziert.
Volumengruppe (VG)
Eine Datenträgergruppe fasst eine Sammlung von logischen Datenträgern und physischen Datenträgern in einer Verwaltungseinheit zusammen. Die Datenträgergruppe ist in physische Extents fester Größe unterteilt. Der Befehl vgcreate erstellt eine neue Volume-Gruppe unter Verwendung des zuvor für LVM mit pvcreate konfigurierten Block Special Device Physical Volume-Pfads.
– VGs bestehen aus PVs, die wiederum aus Physical Extents (PEs) bestehen. Die Größe von PE kann in verschiedenen VGs unterschiedlich sein und wird zum Zeitpunkt der VG-Erstellung definiert.
– Die Standardgröße von PE beträgt 4 MB, aber Sie können sie zum Zeitpunkt der VG-Erstellung auf den gewünschten Wert ändern.
– Im Allgemeinen ist die Leistung besser, wenn die PE-Größe größer ist (obwohl weniger granulare Kontrolle von LV).
Logisches Volume (LV)
Ein logisches Volumen ist das konzeptionelle Äquivalent einer Festplattenpartition in einem Nicht-LVM-System. Logische Volumes sind Blockgeräte, die aus den in derselben Volume-Gruppe vorhandenen physischen Extents erstellt werden. Sie können den Befehl lvcreate verwenden um ein logisches Volume in einer bestehenden Volume-Gruppe zu erstellen.
Dateisystem
Dateisysteme werden auf logischen Volumes aufgebaut. Der Befehl mkfs kann verwendet werden, um ein Dateisystem auf einem logischen Volume zu erstellen. Sobald das Dateisystem erstellt ist, können wir das logische Volume nach Bedarf bereitstellen.
Lassen Sie uns beginnen
Das Beispiel
Im Beispiel unten würden wir:
1. Erstellen Sie 3 physische Volumes aus 3 physischen Laufwerken (/dev/sdb, /dev/sdc, /dev/sdd ).
2. Erstellen Sie eine Volumengruppe aus diesen 3 PVs (/dev/vg01 ).
3. Erstellen Sie ein Lgical Volume in dieser VG (/dev/vg01/lvol01 ).
4. Erstellen Sie ein Dateisystem auf diesem LV und hängen Sie es ein (/data01 ).
Physische Volumes erstellen
Die pvcreate Der Befehl wird verwendet, um das PV für die Verwendung durch LVM zu initialisieren. Stellen Sie vor dem Erstellen des PV sicher, dass die Festplatte im Betriebssystem sichtbar ist. Um die als PVs zu verwendenden Blockgeräte zu scannen, verwenden Sie lvmdiskscan Befehl.
# lvmdiskscan ....... /dev/sdb [ 2.00 GiB] /dev/sdc [ 2.00 GiB] /dev/sdd [ 2.00 GiB] 3 disks 19 partitions 0 LVM physical volume whole disks 0 LVM physical volumes
Initialisieren Sie die Blockgeräte :
# pvcreate /dev/sdb /dev/sdc /dev/sdd Physical volume "/dev/sdb" successfully created Physical volume "/dev/sdc" successfully created Physical volume "/dev/sdd" successfully created
Physische Volumes anzeigen
Verwenden Sie die Befehle pvdisplay , pvs und pvscan um die gerade erstellten PVs anzuzeigen.
# pvdisplay "/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 Mt3F7z-a2AV-28Vn-uXe2-QejE-Z6tP-UMlQGM "/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 5m1Fuc-yTRn-I2vG-bMfU-6SE7-53EA-s8VQjt "/dev/sdd" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdd VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 1x3e2A-C0Lt-DrUA-tPSM-lsMu-sn70-qg1j8p
# pvscan PV /dev/sdb lvm2 [2.00 GiB] PV /dev/sdc lvm2 [2.00 GiB] PV /dev/sdd lvm2 [2.00 GiB] Total: 3 [6.00 GiB] / in use: 0 [0 ] / in no VG: 3 [6.00 GiB]
# pvs PV VG Fmt Attr PSize PFree /dev/sdb lvm2 a-- 2.00g 2.00g /dev/sdc lvm2 a-- 2.00g 2.00g /dev/sdd lvm2 a-- 2.00g 2.00g
Erstellen Sie eine Volumengruppe
Verwenden Sie das vgcreate Befehl zum Erstellen der neuen Volumengruppe vg01 mit den 3 PVs, die wir gerade erstellt haben. Wir können die Extents mit -s spezifizieren Option und maximale Anzahl von PVs und LVs in der VG mit den Optionen -p und -l beziehungsweise. Alle diese Optionen sind optional und müssen nicht unbedingt verwendet werden.
# vgcreate vg01 /dev/sdb /dev/sdc /dev/sdd Volume group "vg01" successfully created
Die optionalen Optionen, die mit dem vgcreate-Befehl verwendet werden, sind:
Option | Bedeutung |
---|---|
-s | Physische Speicherbereichsgröße |
-p | Maximale Anzahl von PVs |
-l | Maximale Anzahl von LVs |
–alloc | Zuweisungsrichtlinie (entweder zusammenhängend, überall oder festhaltend) |
Anzeige der VG-Informationen
Die Befehle vgs und vgdisplay können verwendet werden, um die Informationen über die gerade erstellte VG anzuzeigen:
# vgs vg01 VG #PV #LV #SN Attr VSize VFree vg01 3 0 0 wz--n- 5.99g 5.99g
# vgdisplay vg01 --- Volume group --- VG Name vg01 System ID Format lvm2 Metadata Areas 3 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 3 Act PV 3 VG Size 5.99 GiB PE Size 4.00 MiB Total PE 1533 Alloc PE / Size 0 / 0 Free PE / Size 1533 / 5.99 GiB VG UUID Cw7GGz-NH3o-Sax2-5jPv-buZS-938T-tmNKFa
Aktivieren und Deaktivieren von VGs
Der vgchange Befehl kann verwendet werden, um eine Volumengruppe zu aktivieren/deaktivieren.
Um eine VG zu deaktivieren:
# vgchange -a n vg01 0 logical volume(s) in volume group "vg01" now active
So aktivieren Sie eine VG:
# vgchange -a y vg01 1 logical volume(s) in volume group "vg01" now active
Logisches Volume erstellen
Das logische Volume kann jetzt in der VG mit dem lvcreate-Befehl erstellt werden .
– Wenn Sie den LV-Namen im Befehl nicht angeben, erhält der LV standardmäßig den Namen lvol# .
– Normalerweise, wenn Sie nicht angeben, welches PV das LV umfassen soll, wird ein logisches Volume auf dem PV auf der nächsten freien Basis erstellt.
– So erstellen Sie ein logisches Volume lvol01 mit einer Größe von 5 GB:
# lvcreate -L 5G -n lvol01 vg01 Logical volume "lvol01" created
Striped-Volume erstellen
So erstellen Sie ein Stripeset-Volume, das alle 3 von uns erstellten PVs umfasst:
# lvcreate -L 5G -I 4096 -i 3 -n lvol01 vg01 Rounding size (1280 extents) up to stripe boundary size (1281 extents) Logical volume "lvol01" created
I - PVs to span while creating striped volume i - stripe unit
Gespiegeltes Volume erstellen
So erstellen Sie ein dreifach gespiegeltes Volume, das sich über die 3 PVs (sdb, sdc, sdd) erstreckt:
# lvcreate -L 1G -m 2 -n lvol01 vg01 Logical volume "lvol01" created
Wir können auch angeben, welche Geräte beim Erstellen des gespiegelten LV verwendet werden sollen. Da wir in unserem Fall nur 3 PVs in der VG hatten, wird die LV standardmäßig auf diesen 3 PVs erstellt.
Anzeigen der LV-Informationen
Die Befehle lvdisplay , lvs und lvscan kann verwendet werden, um die Informationen über das gerade erstellte LV anzuzeigen.
# lvs /dev/vg01/lvol01 LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lvol01 vg01 mwi-a-m-- 1.00g lvol01_mlog 100.00
# lvdisplay /dev/vg01/lvol01 --- Logical volume --- LV Path /dev/vg01/lvol01 LV Name lvol01 VG Name vg01 LV UUID ptlmAV-mO42-fWiJ-e2Ml-r9kj-PFcC-MOexxw LV Write Access read/write LV Creation host, time localhost.localdomain, 2014-10-22 09:04:25 -0700 LV Status available # open 0 LV Size 1.00 GiB Current LE 256 Mirrored volumes 3 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:4
# lvscan ACTIVE '/dev/vg01/lvol01' [1.00 GiB] inherit
Dateisystem erstellen
Der letzte Schritt besteht darin, ein Dateisystem auf dem gerade erstellten neuen LV zu erstellen und es in einem Verzeichnis zu mounten, um darauf zugreifen und Daten darin speichern zu können. Der Befehl mkfs kann verwendet werden, um ein Dateisystem auf dem LV zu erstellen.
# mkfs.ext4 /dev/vg01/lvol01 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 37 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
Das logische Volume kann gemountet werden, sobald das Dateisystem erstellt wurde. Achten Sie darauf, einen Eintrag zu /etc/fstab hinzuzufügen , sodass es beim Systemstart automatisch gemountet wird.
# mkdir /data01 # mount /dev/vg01/lvol01 /data01
# vi /etc/fstab /dev/vg01/lvol01 /data01 ext4 defaults 0 0
# df -h /data01 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lvol01 1008M 34M 924M 4% /data01
Das grafische Tool zur Verwaltung von LVM
Es gibt ein cooles grafisches Tool (system-config-lvm ) für den Fall, dass Sie verwenden möchten. Falls noch nicht auf dem System installiert, installieren Sie es mit yum:
# yum install system-config-lvm
Um das grafische LVM-Verwaltungstool zu starten, geben Sie den Befehl :
ein# system-config-lvm
LVM-Konfiguration:Logical Volume (LV) Operations/Utilities
LVM Configuration:Volume Group (VG) Operations/Utilities
LVM Configuration:Physical Volume (PV) Operations/Utilities