LVM – Logical Volume Management

Aus LinuxUser 07/2006

LVM – Logical Volume Management

Volumenkontrolle

Wer regelmäßig Plattenpartionen rangieren, vergrößern und verkleinern muss, findet im Logical Volume Manager eine hilfreiche Technologie.

Ursprünglich stammt der Logical Volume Manager (LVM) aus dem Server-Bereich. Die Entwickler verfolgten das Ziel, dem Administrator das Leben durch das dynamische Anpassen der Festplattenkapazität während der Laufzeit des Systems zu erleichtern.

Durch eine zusätzliche Abstraktionsebene unterhalb des Dateisystems erlaubt das LVM auf einer einzelnen Festplatte – oder über mehrere hinweg – das Erstellen von logischen Partitionen. Mit den passenden Programmen vergrößern oder verkleinern Sie diese virtuelle Datenträger fast nach Belieben.

Schon im Linux-Kernel 2.4 war der LVM in Version 1 vertreten [1]. In den aktuellen 2.6er-Kernel integrierten die Entwickler den LVM2, der einige Änderungen (siehe Kasten “LVM2”) gegenüber der Vorgängerversion enthält. Alle Anweisungen in diesem Artikel beziehen sich auf LVM2, das sich abwärtskompatibel zu LVM1 verhält.

LVM2

Die wesentlichen Änderungen im LVM2 sind der Device Mapper, maximale LVM-Größen und die Konfigurationsdatei lvm.conf. Mit dem Device Mapper setzen Sie ein neues Block-Device auf ein existierendes Device auf. In diesem Fall zieht der Kernel damit die zusätzliche virtuelle Schicht zwischen Festplatte und Dateisystem ein.

Die maximale Device-Größe erhöhte sich mit LVM2 von 2 Terabyte auf 8 Exabyte bei 64-Bit-CPUs. Die Software verwendet nun die Konfigurationsdatei lvm.conf, die sie automatisch anlegt. Die Default Einstellungen darin reichen für einfache Anwendungen vollkommen aus. Im Fehlerfall setzen Sie zuerst hier den Loglevel hoch, um mehr Informationen über das Problem zu erhalten.

In einigen aktuellen Linux-Distributionen bietet das Setup schon bei der Neuinstallation an, einen Teil des Systems auf LVM2 zu installieren. Aber auch auf einem bestehenden System ist es möglich, LVM-Partitionen zu erzeugen. Hierzu stehen einige grafische Tools für KDE und Gnome bereit, mit denen Sie fast alle Administrationsaufgaben erledigen. Die Tabelle “Wichtige LVM-Kommandos” gibt einen Überblick über die wichtigsten Tools der Kommandozeile.

Wichtige LVM-Kommandos

Befehl Zweck
pvcreate Erzeugen eines Physical Volumes
vgcreate Erzeugen einer Volume Group
lvcreate Erzeugen eines Logical Volumes
pvdisplay Eigenschaften eines Physical Volumes anzeigen
vgdisplay Eigenschaften einer Volume Group anzeigen
lvdisplay Eigenschaften eines Logical Volumes anzeigen
vgextend Physical Volumes einer Volume Group hinzufügen
lvextend Logical Volume vergrößern
lvreduce Logical Volume verkleinern
pvremove Physical Volumes löschen
vgremove Volume Group löschen
lvremove Logical Volume löschen

Mach’s mit LVM

Auf dem heimischen Rechner spielt LVM2 bei Systemen mit stark wachsendem Datenbestand wie Datenbanken, MP3-Archiven, Videosammlungen oder Home-Verzeichnissen seine Stärken durch einfaches Verändern der Partitionen aus. Durch das Zusammenfügen von einzelnen Festplatten zu virtuellen Partition recyceln Sie zum Beispiel auch kleinere, ausrangierte Datenträger. Mit der Snapshot-Funktion erstellen Sie im laufenden Betrieb Backups eines definierten Zustands.

Bei stark belasteten Systemen bietet LVM die Möglichkeit, die Datenblöcke aufzuteilen und – ähnlich wie bei einem RAID 0 – die Schreib- und Lesezugriffe auf mehrere Platten zu verteilen (Striping), um mehr Performance zu erzielen. Datensicherheit beim Ausfall einer Platte zählt jedoch nicht zum Repertoire von LVM.

Ein solcher Ausfall kann ein über mehrere Festplatten gehendes Dateisystem auf LVM2-Basis völlig unbrauchbar machen. Daher empfiehlt sich, ein solches Konstrukt mit einem sicheren RAID 1 oder RAID 5 [2] zu kombinieren und regelmäßige Backups zu fahren. Um LVM anzuwenden und zu administrieren, sollten Sie zunächst sehr genau verstehen, was in den einzelnen Schichten passiert. Dabei hilft ein Überblick über die Anatomie von LVM2.

Auf dem Seziertisch

Ein LVM-System besteht aus drei Abstraktionsebenen: dem Physical Volume (PV), der Volume Group (VG) und dem Logical Volume (LV). Um etwas Licht in den Abkürzungsdschungel zu bringen, zeigt die Grafik in Abbildung 1 die einzelnen Schichten. Die Basis stellen dort in der Schicht 1 zwei IDE-Festplatten mit den drei Partitionen hda6, hda7 und hdb1 dar. Die drei Partitionen stellen für die Schicht 2 – das Physical Volume – je 300 MByte Speicherplatz bereit. Die Schicht 3 fasst die Physical Volumes logisch zu einem großen Speicherpool mit insgesamt 900 MByte zusammen.

Abbildung 1: Der Aufbau von LVM als Schichtenmodell dargestellt.

Abbildung 1: Der Aufbau von LVM als Schichtenmodell dargestellt.

Eine Volume Group darf neben realen Festplatten auch die Devices eines Software- oder Hardware-RAIDs enthalten. Es entsteht sozusagen eine virtuelle Festplatte – die Volume Group tim. Zu einer Volume Group dürfen Sie nachträglich noch neu angelegte Physical Volumes hinzufügen oder vorhandene entfernen.

Die Schicht 4 zeigt die Logical Volumes mp3 und doc. Ein Logical Volume ist mit einer virtuellen Partition vergleichbar. Es besteht aus einer oder mehreren normalen Partitionen und lässt sich wie eine Volume Group nachträglich vergrößern oder verkleinern. In der Schicht 5 liegt schließlich das Dateisystem (in diesem Fall Ext3).

Das Dateisystem Ext3 bringt den Vorteil mit, das Sie das LV während des Betriebes vergrößern oder verkleinern könnten. ReiserFS erlaubt dagegen online nur ein Vergrößern, das Verkleinern beherrscht es nur offline (bei nicht gemountetem Dateisystem).

LVM-Jargon

Kürzel Bedeutung
LE Logical Extent
LV Logical Volume
LVM Logical Volume Manager
PE Physical Extent
PV Physical Volume
VG Volume Group
VGDA Volume Group Descritpion Area

Kleinste Einheit

Die Schichten 2, 3, und 4 teilen sich in weitere Bestandteile auf: Die kleinste physikalische Speichereinheit in einem LVM-System liegt im Physical Extent (PE). Jedes PV unterteilt sich in gleich große PEs. Deren Größe legen Sie beim Setup der Volume Group fest. Der Default-Wert beträgt 4 MByte, das Maximum liegt bei 1 GByte. In der Praxis hat sich eine PE-Größe von 32 MByte als praktikabel bewährt.Das Physical Volume versieht die PEs mit IDs, die bei 0 beginnen.

Analog zu den PVs und PEs besteht jedes Logical Volume (LV) aus Logical Extents (LE). Die LEs besitzen die gleiche Größe wie die PEs der Volume Group, in der sich das LV befindet. Daraus ergibt sich bei Verwenden des Default-Wertes: 1 PE = 1 LE = 4 MByte. Auch die Logical Extents bekommen in jedem Logical Volume von 0 an beginnend eine ID. Außerdem bildet LVM sie 1:1 auf die PEs ab. Abbildung 2 zeigt diesen Vorgang anhand der Beispielkonfiguration.

Abbildung 2: Die interne Aufteilung von Physical Volumes zu Logical Volumes in Physical Extents (PE) und Logical Extent (LE) im LVM.

Abbildung 2: Die interne Aufteilung von Physical Volumes zu Logical Volumes in Physical Extents (PE) und Logical Extent (LE) im LVM.

Fordert eine Software ein bestimmtes Byte aus dem LV doc an, so identifiziert das System das zugehörige Logical Extent über dessen ID. Aus der Mapping-Tabelle des LV ist zu entnehmen, wo auf dem PV es liegt und wo sich das passende Physical Extent dazu findet. Das ermöglicht den exakten Zugriff auf die physikalische Position des LV-Speicherplatzes.

Die Beispielkonfiguration arbeitet mit drei Physical Volumes, eine VG darf aber auch aus nur einem PV bestehen. Am Anfang jedes PVs findet sich im ersten PE die Volume Group Descriptor Area (VGDA) mit den Metadaten der LVM-Konfiguration. Sie übernimmt quasi die Aufgaben einer Partitionstabelle und besteht aus vier Informationsbereichen: je einer für PV, VG und LV und die PEs. Im Verzeichnis /etc/lvm/backup liegt normalerweise ein automatisches Backup der VGDA.

Stars and Stripes

Es gibt zwei Mapping-Methoden, um die Daten auf die PVs zu verteilen: Linear und Striping (RAID 0). Der lineare Modus ist als Vorgabe eingestellt. Das System schreibt dann die Daten der LEs hintereinander auf die PEs des Physical Volume. Auch wenn mehrere PVs zu einer Volume Group gehören, füllt LVM zunächst das erste mit Daten und schreibt erst dann auf dem zweiten weiter.

Beim Striping teilt sich der Inhalt des LEs auf die PEs mehrerer PVs auf. In bestimmten Situationen beeinflusst diese Strategie die Performance ganz erheblich im positiven Sinne.

Abbildung 3: Die Physical Extents (PE) und Logical Extent (LE) im Striping Modus (RAID 0) aufgeteilt.

Abbildung 3: Die Physical Extents (PE) und Logical Extent (LE) im Striping Modus (RAID 0) aufgeteilt.

Snapshot

Die Snapshot-Funktion des LVM2 eignet sich besonders für Backups. Sie ermöglicht es, zu jedem fixen Zeitpunkt eine Kopie eines Logical Volumes anzulegen, das sich nicht mehr verändert. Das so entstandene neue Snapshot Block Device ist eine exakte eingefrorene Kopie (“frozen image”). Seit LVM2 besteht sogar die Möglichkeit, dieses Image les- und schreibbar einzuhängen.

Das Logical Volume bleibt während des Snapshot weiterhin beschreibbar und speichert veränderte Daten auf den Datenträgern (Abbildung 4). Eine detaillierte Anleitung hierzu finden Sie im LVM-Howto [2].

Abbildung 4: Ein Snapshot sichert die Daten vom Logical Volume <code srcset=

mp3.” width=”300″ height=”192″ /> Abbildung 4: Ein Snapshot sichert die Daten vom Logical Volume mp3.

Administration

Suse 10.0, Mandriva 2006 und Fedora Core 5 bringen jeweils eigene Tools zur LVM-Administration mit, die je nach Konzeption unterschiedliche Stärken und Schwächen aufweisen.

Suse 10.0

Schon die Suse-Installationsroutine erlaubt es, Logical Volumes über das benutzerdefinierte Partitions-Setup zu erstellen. Auf einem installierten System stellt KDE über Yast2 unter dem Menüpunkt SystemPartitionieren das notwendige Tool bereit. Nach dem Anlegen der gewünschten Anzahl von LVM-Partitionen (Typ 0x8e) führt Yast2 den Benutzer unter LVM durch ein übersichtlich aufgebautes LVM-Setup.

Zuerst gilt es im Dialog Setup für Physical Volumes die einzelnen Geräte zu einer Volume Group zusammenzufassen. Der Dialog Logische Volumes zeigt den freien Speicher der angelegten Volume Group mit deren Namen an, und über Hinzufügen entstehen die LVs /mp3 und /doc aus unserem Beispiel inklusive Ext3-Dateisystem. Abbildung 5 zeigt das Ergebnis. Es folgt noch die Sicherheitsabfrage, ob das Programm die Änderungen tatsächlich vornehmen soll.

Abbildung 5: Eine mit Suse Yast2 erstellte LVM-Installation.

Abbildung 5: Eine mit Suse Yast2 erstellte LVM-Installation.

Im Yast2 Kontrollzentrum finden Sie unter LVM ein Modul, mit dem Sie die gesamte LVM-Konfiguration (Abbildung 6) einsehen und bei Bedarf verändern. Damit ermöglicht Suse 10.0 die LVM-Konfiguration komplett über grafische Tools abzuwickeln, ohne in die Tiefen der Kommandozeile abtauchen zu müssen.

Abbildung 6: Yast2 präsentiert die LVM-Konfiguration auf einen Blick.

Abbildung 6: Yast2 präsentiert die LVM-Konfiguration auf einen Blick.

Mandriva 2006

Mandriva 2006 richtet auf Wunsch während der Installation Logical Volumes über die “Experten”-Einstellungen von Diskdrake ein. Zum nachträglichen Anlegen bietet das Mandriva-Kontrollzentrum unter EinhängepunkteErstellen, löschen von FestplattenpartitionenPartitionen einen entsprechenden Punkt an.

Nach dem Starten des Tools erscheint der Hinweis, erst eine Sicherheitskopie der Daten anzufertigen. Jedes Device erreicht man in einem eigenen Reiter mit dessen Namen, die Festplattenbereiche erscheinen dort je nach Dateisystemtyp als verschiedenfarbige Balken.

Durch einen Mausklick auf den unpartitionierten Bereich erzeugen Sie eine neue LVM-Partition, die nach einem Neustart des Rechners zur Verfügung steht. Mit dem Button Zum LVM hinzufügen legen Sie die Volume Group tim an. Sie erhält als neues Device einen eigenen Reiter (Abbildung 7). Jetzt erzeugen Sie unter Angabe der Größe, des Dateisystem und des Mountpoints das Logical Volume.

Die Größe der PE und LE dürfen Sie beim Anlegen jedoch nicht frei wählen; sie beträgt stets 4 MByte. Es existiert auch keine Möglichkeit, das neue LV-Device statt im Linear Mode im Striping Mode anzulegen. Bis auf diese Einschränkungen lässt sich LVM mit dem Diskdrake von Mandriva 2006 jedoch recht komfortabel auf grafischem Weg verwalten.

Abbildung 7: Im Mandriva-Kontrollzentrum steht der Diskdrake für LVM-Einstellungen zur Verfügung.

Abbildung 7: Im Mandriva-Kontrollzentrum steht der Diskdrake für LVM-Einstellungen zur Verfügung.

Fedora Core 5

Der Red-Hat-Spross Fedora Core 5 setzt beim automatischen Partitionieren der Festplatte durch Disk Druid während der Installation voll auf LVM2. Nach dem Einrichten findet sich auf dem Testsystem eine kleine Ext3-Partition mit rund 100 MByte für die Daten unterhalb von /boot. Für diesen Bereich empfiehlt sich immer eine normale Partition, da es sonst beim Systemstart zu Problemen kommt.

Den Rest der Daten packt das Fedora-Setup in eine LVM2-Partition namens VolGroup00, die sich in zwei LVs aufteilen – eine für das Root-Dateisystem mit Ext3 sowie die Swap-Partition. Beim manuellen Partitionieren mit Disk Druid dürfen Sie frei über die Aufteilung entscheiden.

Legen Sie während der Neuinstallation keine LVM-Partition an, erstellen Sie alternativ über das Kommandozeilen-Tool Fdisk eine Partition vom Typ 0x8e in der gewünschten Größe. Jetzt kommt das inzwischen schon recht ausgereifte grafische Tool system-config-lvm zum Einsatz, das Sie unter SystemAdministrationLogische Datenträgerverwaltung (LVM) finden.

Es initialisiert die neu angelegten LVM Partitionen und zeigt die neu erzeugten PVs als rote Balken an. Mit dem Schalter Neue Datengruppe erstellen fügen Sie diese dann zur Volume Group tim zusammen. Anschließend erzeugen Sie nach einem Klick auf den Button Neue logische Datenträger erzeugen die LVs mp3 und doc, wobei Sie die Fragen zur Größe, dem Filesystem und dem Mount-Punkt zu beantworten haben. Die erzeugten Volumes zeigt das Tool dann als blaue Balken an (Abbildung 8).

Abbildung 8: Das Fedora-Tool <code srcset=

system-config-lvm zur LVM-Konfiguration.” width=”300″ height=”175″ /> Abbildung 8: Das Fedora-Tool system-config-lvm zur LVM-Konfiguration.

Insgesamt macht das LVM-Werkzeug von Fedora einen stabilen Eindruck. Gegenüber der Vorgängerversion bietet es einige neue Funktionen wie das Erstellen von Snapshots.

LVM zu Fuß

Das LVM-Paket enthält eine ganze Reihe von Administrationswerkzeugen (siehe Tabelle “Wichtige LVM-Kommandos”), mit denen Sie die verschiedenen Schichten per Kommandozeile erzeugen und manipulieren. Die Tools für die einzelnen Schichten sind zum Teil in ihrer Funktion sehr ähnlich und unterscheiden sich durch die ersten zwei Buchstaben des Namens: pv steht für Physical Volume, vg für Volume Group und lv für Logical Volume.

Die drei Partitionen des Beispiels (hda6, hda7 und hdb1) müssen Sie vorab unter Zuhilfenahme eines entsprechenden Programms wie Fdisk mit dem Partitionstyp 0x8E versehen. Ein pvcreate Device-Datei (Beispiel: pvcreate /dev/hda6) erzeugt aus der Partition ein Physical Volume. Zur Kontrolle zeigt pvdisplay Device-Datei) die Daten des neuen Block Devices an (Listing 1). Mit dem Befehl

vgcreate -s 32M tim /dev/hda6?
 /dev/hda7 /dev/hdb1

entsteht aus den drei einzelnen Devices die Volume Group tim mit insgesamt 21 PEs von je 32 MByte Umfang.

Listing 1

pvdisplay /dev/hda6
 — Physical volume —
  PV Name               /dev/hda6
  VG Name               tim
  PV Size               224,00 MB / not usable 0
  Allocatable           yes (but full)
  PE Size (KByte)       32768
  Total PE              7
  Free PE               0
  Allocated PE          7
  PV UUID               ZojeYW-PXR1-iJuS-4n20-iH4J-0E6q-0ppplo

Jetzt folgen die beiden Logical Volumes, die Sie mit den Befehlen lvcreate -l 700 -n mp3 tim und lvcreate -l 200 -n doc tim erstellen. Die tatsächliche Größe der LVs ist immer etwas kleiner, da LVM nur ganze Logical Extents mit 32 MByte verwendet. Auch hier zeigt ein lvdisplay /dev/tim/mp3 die Früchte der Arbeit an (Listing 2).

Listing 2

— Logical volume —
  LV Name                /dev/tim/mp3
  VG Name                tim
  LV UUID                3YsKEl-69Wn-42l9-rm33-fclF-OUG1-k2a5tu
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                576,00 MB
  Current LE             18
  Segments               3
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:0

Nun fehlt noch der Eintrag in der /etc/fstab, damit das System die Devices beim Booten automatisch mountet (Listing 3). Die Boot-Skripte der drei besprochenen Distributionen brauchen Sie nicht anzupassen: Das System scannt automatisch nach LVM-Devices. Probeweise bindet der Eintrag beide LVs ein, um beim nächsten Neustart keine böse Überraschung zu erleben. Der Befehl df zeigt das Arbeitsergebnis (Listing 4).

Listing 3

/dev/tim/doc    /doc    ext3    acl,user_xattr  1 2
/dev/tim/mp3    /mp3    ext3    acl,user_xattr  1 2

Listing 4

Dateisystem          1K-Blöcke   Benutzt Verfügbar Ben% Eingehängt auf
/dev/hdc1             19840892   2942252  15874500  16% /
/dev/shm                257660         0    257660   0% /dev/shm
/dev/mapper/tim-mp3     580540     16852    534200   4% /mp3
/dev/mapper/tim-doc      95195      5664     84616   7% /doc

Mehr Platz, bitte!

Läuft der Speicherplatz in /mp3 langsam voll? Dann bietet sich das Erweitern mittels LVM an. Dazu legen Sie zuerst eine neue Partition /dev/hdb2 vom Typ 0x8e über Fdisk an. Mit pvcreate /dev/hdb2 machen Sie dann daraus ein Physical Volume. Mit dem Befehl vgextend tim /dev/hdb2 erweitern Sie die Volume Group um den neu gewonnen Speicherplatz. Zum Logical Volume fügen Sie mit lvextend -L 300M /dev/tim/mp3 die zusätzliche Kapazität hinzu. Mit resize2fs /dev/tim/mp3 passen Sie dann das Ext3-Dateisystem auf die neue Größe an – schon lässt sich der neue Speicherplatz nutzen.

Fazit

Die grafischen Tools der wichtigsten Distributionen arbeiten mit LVM2 mittlerweile gut zusammen. Optimalerweise sorgen zusätzlich ein RAID-System und regelmäßige Backups für den Havariefall vor. Als weiterführende Lektüre empfehlen sich ein Artikel von LVM-Maintainer Gerd Mauelshagen [5] sowie ein Beitrag unserer Schwesterzeitschrift Linux-Magazin [6].

Infos

[1] Datenkoppler, LVM und RAID, Linux-Magazin 03/2004 S.54

[2] Desktop-RAID: Marcus Nasarek, “Easy Raider”, LinuxUser 04/2006, S. 42

[3] LVM-Howto: http://www.tldp.org/HOWTO/LVM-HOWTO/

[4] LVM2-Projektseite: http://sources.redhat.com/lvm2/

[5] LVM2-Artikel von Gerd Mauelshagen: http://redhat.com/magazine/009jul05/features/lvm2/

[6] LVM-Fallstricke: L. Köhler und C. Kühnast, “Über alle Fallen”, Linux-Magazin 10/2005, S. 48

Der Autor

Carsten Wiese ist seit 1999 begeisterter Linux-Anhänger. Er hofft, das sich die Hildesheimer Linux User Group (HiLUG) in diesem Jahr wieder belebt. Sie erreichen ihn unter mailto:carsten_wiese_de@yahoo.de.

LinuxUser 07/2006 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben