Logical Volume Manager (LVM) ermöglicht eine Abstraktionsschicht zwischen dem Betriebssystem und der Hardware. Normalerweise sucht Ihr Betriebssystem nach Festplatten (/dev/sda
, /dev/sdb
, und so weiter) und Partitionen innerhalb dieser Festplatten (/dev/sda1
, /dev/sdb1
, und so weiter).
In LVM wird zwischen dem Betriebssystem und den Festplatten eine virtuelle Schicht erstellt. Anstelle eines Laufwerks mit einer bestimmten Anzahl von Partitionen erstellt LVM einen einheitlichen Speicherpool (genannt a Volumengruppe), die sich über eine beliebige Anzahl physischer Laufwerke erstreckt (genannt Physische Volumes). Unter Verwendung des in einer Volume Group verfügbaren Speichers stellt LVM Ihrem Betriebssystem scheinbar Festplatten und Partitionen zur Verfügung.
Und das Betriebssystem ist sich nicht bewusst, dass es “ausgetrickst” wird.
lvm.png
Opensource.com, CC BY-SA 4.0
Da der LVM Volume-Gruppen und logische Volumes virtuell erstellt, ist es einfach, ihre Größe zu ändern, zu verschieben oder neue Volumes zu erstellen, sogar während das System läuft. Darüber hinaus bietet LVM Funktionen, die sonst nicht vorhanden sind, wie das Erstellen von Live-Snapshots von logischen Volumes, ohne die Festplatte zuerst aushängen zu müssen.
Eine Volume-Gruppe in einem LVM ist ein benannter virtueller Container, der die zugrunde liegenden physischen Festplatten gruppiert. Es fungiert als Pool, aus dem logische Volumes unterschiedlicher Größe erstellt werden können. Logische Volumes enthalten das eigentliche Dateisystem und können sich über mehrere Festplatten erstrecken und müssen nicht physisch zusammenhängen.
Merkmale
- Partitionsnamen haben normalerweise Systembezeichnungen wie
/dev/sda1
. LVM-Volumes haben normale, für den Menschen verständliche Namen, wiehome
odermedia
. - Die Gesamtgröße der Partitionen wird durch die Größe der zugrunde liegenden physischen Festplatte begrenzt. In LVM können sich Volumes über mehrere Festplatten erstrecken und sind nur durch die Gesamtgröße aller physischen Festplatten in der LVM begrenzt.
- Partitionen können normalerweise nur dann in der Größe geändert, verschoben oder gelöscht werden, wenn die Festplatte nicht verwendet wird und ausgehängt ist. LVM-Volumes können manipuliert werden, während das System läuft.
- Partitionen können nur erweitert werden, indem ihnen neben der Partition freier Speicherplatz zugewiesen wird. LVM-Volumes können von überall freien Speicherplatz beanspruchen.
- Beim Erweitern einer Partition müssen die Daten verschoben werden, um freien Speicherplatz zu schaffen, was zeitaufwändig ist und bei einem Stromausfall zu Datenverlust führen kann. LVM-Volumes können von überall in der Volume-Gruppe freien Speicherplatz belegen, sogar auf einer anderen Festplatte.
- Da es so einfach ist, Volumes in einem LVM zu erstellen, empfiehlt es sich, unterschiedliche Volumes zu erstellen, z. B. das Erstellen separater Volumes zum Testen von Funktionen oder zum Ausprobieren verschiedener Betriebssysteme. Bei Partitionen wäre dieser Vorgang zeitaufwendig und fehleranfällig.
- Snapshots können nur in einem LVM erstellt werden. Es ermöglicht Ihnen, ein Point-in-Time-Image des aktuellen logischen Datenträgers zu erstellen, auch während das System läuft. Dies ist ideal für Backups.
Versuchsaufbau
Nehmen Sie zur Demonstration an, Ihr System hat die folgende Laufwerkskonfiguration:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
`-xvda1 202:1 0 8G 0 part /
xvdb 202:16 0 1G 0 disk
xvdc 202:32 0 1G 0 disk
xvdd 202:48 0 2G 0 disk
xvde 202:64 0 5G 0 disk
xvdf 202:80 0 8G 0 disk
Schritt 1. Datenträger für die Verwendung mit LVM . initialisieren
Lauf pvcreate /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf
. Die Ausgabe sollte sein:
Physical volume "/dev/xvdb" successfully created
Physical volume "/dev/xvdc" successfully created
Physical volume "/dev/xvdd" successfully created
Physical volume "/dev/xvde" successfully created
Physical volume "/dev/xvdf" successfully created
Sehen Sie das Ergebnis mit pvs
oder pvdisplay
:
"/dev/xvde" is a new physical volume of "5.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvde
VG Name
PV Size 5.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 728JtI-ffZD-h2dZ-JKnV-8IOf-YKdS-8srJtn
"/dev/xvdb" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdb
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID zk1phS-7uXc-PjBP-5Pv9-dtAV-zKe6-8OCRkZ
"/dev/xvdd" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdd
VG Name
PV Size 2.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID R0I139-Ipca-KFra-2IZX-o9xJ-IW49-T22fPc
"/dev/xvdc" is a new physical volume of "1.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdc
VG Name
PV Size 1.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID FDzcVS-sq22-2b13-cYRj-dXHf-QLjS-22Meae
"/dev/xvdf" is a new physical volume of "8.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdf
VG Name
PV Size 8.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID TRVSH9-Bo5D-JHHb-g0NX-8IoS-GG6T-YV4d0p
Schritt 2. Erstellen Sie die Datenträgergruppe
Lauf vgcreate myvg /dev/xvdb /dev/xvdc /dev/xvdd /dev/xvde /dev/xvdf
. Sehen Sie die Ergebnisse mit vgs
oder vgdisplay
:
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 5
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 5
Act PV 5
VG Size 16.98 GiB
PE Size 4.00 MiB
Total PE 4347
Alloc PE / Size 0 / 0
Free PE / Size 4347 / 16.98 GiB
VG UUID ewrrWp-Tonj-LeFa-4Ogi-BIJJ-vztN-yrepkh
Schritt 3: Logische Volumes erstellen
Führen Sie die folgenden Befehle aus:
lvcreate myvg --name media --size 4G
lvcreate myvg --name home --size 4G
Überprüfen Sie die Ergebnisse mit lvs
oder lvdisplay
:
--- Logical volume ---
LV Path /dev/myvg/media
LV Name media
VG Name myvg
LV UUID LOBga3-pUNX-ZnxM-GliZ-mABH-xsdF-3VBXFT
LV Write Access read/write
LV Creation host, time ip-10-0-5-236, 2017-02-03 05:29:15 +0000
LV Status available
# open 0
LV Size 4.00 GiB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/myvg/home
LV Name home
VG Name myvg
LV UUID Hc06sl-vtss-DuS0-jfqj-oNce-qKf6-e5qHhK
LV Write Access read/write
LV Creation host, time ip-10-0-5-236, 2017-02-03 05:29:40 +0000
LV Status available
# open 0
LV Size 4.00 GiB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
Schritt 4: Erstellen Sie das Dateisystem
Erstellen Sie das Dateisystem mit:
mkfs.ext3 /dev/myvg/media
mkfs.ext3 /dev/myvg/home
Montieren Sie es:
mount /dev/myvg/media /media
mount /dev/myvg/home /home
Sehen Sie Ihre vollständige Einrichtung mit lsblk
:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
`-xvda1 202:1 0 8G 0 part /
xvdb 202:16 0 1G 0 disk
xvdc 202:32 0 1G 0 disk
xvdd 202:48 0 2G 0 disk
xvde 202:64 0 5G 0 disk
`-myvg-media 252:0 0 4G 0 lvm /media
xvdf 202:80 0 8G 0 disk
`-myvg-home 252:1 0 4G 0 lvm /home
Schritt 5: Erweitern des LVM
Fügen Sie eine neue Festplatte hinzu bei /dev/xvdg
. Um die zu verlängern home
volume, führen Sie die folgenden Befehle aus:
pvcreate /dev/xvdg
vgextend myvg /dev/xvdg
lvextend -l 100%FREE /dev/myvg/home
resize2fs /dev/myvg/home
Lauf df -h
und Sie sollten Ihre neue Größe widergespiegelt sehen.
Und das ist es!
LVM ermöglicht extreme Flexibilität bei der Konfiguration Ihres Speichers. Probieren Sie es aus und haben Sie Spaß mit LVM!
Dieser Artikel wurde ursprünglich im persönlichen Blog des Autors veröffentlicht und mit Genehmigung angepasst.