LVM (Logical volume manager) ist eine Softwarekomponente, die Festplatten bzw Partitionen als physikalische Partition (PV) in Volume Gruppen (VG) zusammenfast und es erlaubt daraus dynamisch logische Volumes (Partitions) (LV) zu erstellen und im laufenden System ihre Größe zu modifizieren. Linux, Aix, OS2, Solarix, FreeBSD u.a. untersützen LVM. Windows2000 und höher hat ein ähnliches Konzept, ist aber mit LVM nicht kompatibel.  Linuxdistributionen wie z.B. Debian, Mandrake, Mint, Ubuntu, Redhat, Slackware und openSuSE bieten zwar während der Installation an das Linux unter LVM zu installieren. Nur leider ist der Standardfall immer noch, dass kein LVM benutzt wird. Im Folgenden wird im Detail beschrieben, was die Fähigkeiten und Vorteile von LVM sind und warum auch jeder  Linux Benutzer LVM benutzen sollte.
 
Logische Teile von LVM und deren Zusammenhänge 
 
LVM benutzt folgende Begriffe:
 
PV: Physical volume - ein physikalische Platte oder Partition einer Platte
PE: Physical extent partition - eine Speichereinheit einer PV
LV: Logical volume - eine Zusammenfassung von mehreren PEs. Entspricht einer Partition in einem nicht LVM verwalteten System.
LE: Logical extent - eine logische Speichereinheit einer LV die auf ein physische Speichereinheit einer PV, der PE verweist
VG: Volume group - eine Zusammenfassung von mehreren PVs und den darin definierten LVs
  
Das folgende Bild zeigt sehr gut die einzelnen Teile, die LVM ausmacht und ihre Zusammenhänge:
 
lvm.jpg
   
Die PVs /dev/sda1, /dev/sda2 usw besitzen physische extents (PE). Mehrere Platten werden zu einer volumegroup (VG) dataVG zusammengefasst. In dieser volumengroup dataVG sind logische volumes (LV) /dev/LV1 und /dev/LV2 definiert. Sie besitzen logische Extents (LE), die auf phyische Extents in det PV zeigen. Dabei können sich die PEs auf mehreren unterschiedlichen Platten verteilen.(/dev/LV2 PEs auf PV /dev/sda1, /dev/sdb1 und /dev/sdb2). Auf diesen logischen Volumes erstellt man dann ein Filesystem (FS) (ext3 bzw ext4) und mountet dieses im Betriebssystem mit dem mountpoint (MP) /home bzw als /.
 
Der Umstieg von der alten nicht LVM basierten Welt in die LVM Welt geht am leichtesten wenn man sich folgende Dinge merkt:
  • Eine LV unter LVM ist einfach eine PlattenPartition im alten Sinne.
  • Eine VG ist einfach eine Zusammenfassung von mehreren Platten.  
 
Vorteile eines LVM
  1. Sollte eine LV zu klein werden kann man sie i.d.R. im laufenden System vergrößern. Verkleinern von LVs geht ebenso. D.h. also man kann sehr einfach eine Partition (im alten Sinne) vergößern und verkleinern ohne gparted benutzen zu müssen um die Partitionen zu ändern.
  2. Sollte eine VG zu klein werden und kam kann keine LVs mehr vergößern kann man im laufenden System eine weitere Platte oder Partition (PV) in die VG einbinden und damit die VG vergößern. D.h. also, wenn eine Partition (im alte Sinne) nicht mehr vergrößert werden kann, da die Platte, auf der sich die Partition befindet, voll ist, kann man einfach eine weitere physikalische Platte in die VG hinzufügen und dann die LV (Partition im alte Sinne) vergrößern.
  3. Sollte man neue Partitionen benötigen, .z.b. um ein weiteres Betriebssystem zu installieren, kann man im laufenden System eine neue Partition (LV) anlegen und darin das neue Betriebssystem installieren. Wenn man eine Partition (LV) nicht mehr benötigt kann man sie wieder löschen und der Speicherplatz steht wieder in der VG zur Verfügung.
  4. Sollte man irgendwelche LVs sichern wollen um sie z.B. für Tests zu benutzen und immer wieder auf den alten LV Stand zurückgehen um Tests erneut zu wiederholenkann man Snapshots für LVs anlegen. Das ist keine totale Kopie einer LV in seiner ganzen Größe sondern es werden nur die Änderungen auf der Ursprungs LV in der Snapshot LV angelegt. Etwas kritisch ist die Tatsache, dass der Snapshot verschwindet, wenn die Änderungen an der Ursprungs LV die Göße der Snapshot LV übersteigt. Wer sichergehen will legt die Snapshot LV genauso gross an wie die Original LV. Dann kann der Snapshot nicht verschwinden.
 
Nachteile eines LVM
  1. Wenn man LVM sehr ausreizen will muss man LVM per Konsolbefehlen administrieren. Die Standardadministration kann aber über GUIs vorgenommen werden.
  2. Windows kann nicht auf LVM LVs installiert werden. Wenn man LVM benutzt und eine parallele Windowsinstallation betreiben will muss dafür eine dedizierte Partitionen, die nicht unter LVM Kontrolle steht, bereitstellen.
  3. Die Versuchung ist gross eine Menge physischer Platten in einer VG zusammenzuschliessen und damit eine riesige logische Platte zu haben. Je mehr Platten man zusammenschliesst desto größer wird das Risiko, dass eine Platte ausfällt und damit die gesamte VG. Ein RAID bietet davor Schutz.
  4. Eine gesamte Platte (z.B. /dev/sda) sollte man nicht als PV benutzen (im Gegensatz dazu eine Partition /dev/sda1 auf der Platte die die gesamte Platte umfasst), weil andere Betriebssysteme wie Windows diese Platte nicht als LVM Platte erkennt und sie dann als frei ansieht und sie schnell mal aus Versehen überschrieben wird.

Graphische Oberflächen für LVM
Die graphischen Oberflächen erlauben nur die wichtigsten Dinge wie PV/VG/LV anlegen und löschen sowie LV zu vergrößern. Will man tiefergehende und umfangreichere Dinge mit LVM machen muss man auf der Konsole entsprechende Befehle abgeben.
  1. openSuSE: YAST beinhaltet einen LVM editor
  2. Debian, Ubuntu, Redhat, Mint, Fedora, Centos: system-config-lvm
 
Zusammenfassung  
LVM ist für einen jeden Systemadministratoren ein Muss. Es erlaubt flexible Bereitstellung und GrößenÄnderung von Partitionen was in einem Serverumfeld immer notwendig ist. Aber auch ein normaler Heimanwender von Linux profitiert von LVM. In der heutigen Zeit der riesigen Platten > 1TB kann man sicherlich immer noch die Platten auf die alte Art und Weise ohne LVM in Partitionen unterteilen und auch per gparted oder ähnlichen Tools deren Größe bei Bedarf ändern. Es ist aber wesentlich sinnvoller und einfacher zu administrieren wenn man die eine grosse Platte unter LVM Verwaltung stellt und dann dynamisch neue Partitionen erstellt. Besonders hilfreich ist das wenn man parallele Betriebssysteme installiert hat oder auch wenn man einfach nur parallel zu einer alten Betriebssystemversion eine neue aktuelle Version installieren möchte.Oftmals kauft man sich später noch eine oder zwei Platten dazu weil das Plattenplatz knapp wird. Mit einem LVM kann man die Platten sehr schnell integrieren. Allerdings muss man sich bewusst sein, dass dadurch die Ausfallwahrscheinlichkeit einer VG steigt und sollte geeignete Backupstrategien und -prozeduren auf externe USB Platten oder NAS Gerätehaben.
Die Snapshots sind auch eine hilfreiche Funktion, denn damit kann man einfach auf Knopfdruck ein Backup einer Partition erstellen. Hilfreich ist es auch, wenn man einen Betriebssystemupgrade testen möchte. Einfach einen Snapshot erstellen und auf dem den Upgrade durchführen. Dann Testen und wenn alles zufriedenstellend funktioniert fährt man den Rechner mit diesem Snapshot. Funktioniert es nicht dann löscht man den Snapshot und geht wieder auf die alte Version zurück. Bleibt man auf der neuen Version muss aber immer die alte Version beibehalten werden da ja der Snapshot immer nur die Änderungen zum alten LV beinhaltet.
 
Liste von den wichtigsten LVM Konsolenbefehlen
 
Erstellen einer PV:
pvcreate /dev/sdb1
 
Erstellen einer VG:
vgcreate neuVG /dev/sda1 /dev/sdb1
 
Erweiterung einer VG um eine neue PV:
vgextend neuVG /dev/sdc1
 
Erstellung einer LV neuLV von 2G in einer VG neuVG:
lvcreate -L2G -nneuLV neuVG
 
Vergrößerung einer LV neuLV um 10G:
lvextend -L+10G /dev/neuVG/neuLV
 
Kommentar schreiben
Hinweis:
Die eMail ist versteckt und nicht öffentlich sichtbar. Sie wird benutzt um über neue Kommentare zu informieren.