LVM unter Linux
LVM rockt. Gerade mal wieder gemerkt, als in dem von mir betreuten Newsserver die (einzige) Platte ihr Ableben angekündigt hat. 40 GB Daten im laufenden Betrieb von einer alten auf eine neue Platte schieben ist einfach sexy. Die einzige Downtime hatte ich mir dadurch eingehandelt, dass die Overviews durch die kaputte Platte beschädigt waren, und deswegen ein makeh*story fällig war.
Diese Gelegenheit nutze ich, einen alten Artikel zum Thema LVM für mein Blog zu recyceln.
Was ist LVM
Der Logical Volume Manager ist seit späteren 2.4-Versionen Bestandteil des Linux-Kernels. Zusätzlich zum Kernelcode sind Userspace-Tools notwendig, mit denen die Verwaltung durchgeführt wird.
LVM führt zwischen der Plattenpartition (z.B. /dev/hda1) und dem Filesystem (z.B. /usr) zwei weitere Indirektionsebenen ein, die für beeindruckende Flexibilität sorgen.
Beim klassischen Filesystemlayout liegen die Ebenen wie folgt übereinander:
- Mountpoint (z.B. /usr)
- Filesystem (z.B. ext3fs)
- Raw Device (z.B. /dev/hda1)
- Plattenpartition
- Platte
Eine Veränderung des Filesytems schlägt sofort bis auf die Physik der Platte durch.
Bei einem LVM-System sieht der Stapel wie folgt aus:
- Mountpoint (z.B. /usr)
- Filesystem (z.B. ext3fs)
- Logical Volume [LV] (z.B. /dev/vg0/usr)
- Volume Group [VG] (z.B. /dev/vg0)
- Physical Volume [PV] (z.B. /dev/hda1)
- Raw Device (z.B. /dev/hda1)
- Platte
In Text gesprochen:
- Auf einem Mountpoint ist ein Filesystem eingehängt.
- Ein Filesystem liegt auf einer Logical Volume.
- Auf einer Logical Volume liegt immer genau ein Filesystem!
- Eine Logical Volume ist Element einer Volume Group.
- Eine Volume Group hat ein oder mehrere logical Volumes.
- Eine Volume Group besteht aus einer oder mehreren Physical Volumes.
- Eine Physical Volume ist eine Festplattenpartition mit Partitionstyp 8e.
- Bei einheitlicher Aufteilung auf logical volumes sind die Namen der logical volumes überall gleich, unabhängig vom Plattentyp und deren Organisation.
- Host-based intrusion detection einheitlich konfigurierbar
- Plattenplatzüberwachung einheitlich konfigurierbar.
Vorteile
LVM
- Nimmt Verantwortung aus der Plattenpartitionierung
- Ermöglicht die Partitionierung von Software-RAID-Devices
- Symbolische Namen für filesystem tragende Volumes (/dev/vg0/usr) sorgen für übersichtliche /etc/fstab und fließend interpretierbare /proc/mounts
- nie wieder unpassende Namen, da Umbenennen möglich
- Vergrößern und verkleinern von Volumes ist möglich
- mit einem online resizebaren Filesystem ist Größenänderung von Dateisystemen im laufenden Betrieb möglich.
- Kopieren einer Volume (z.B. zum Plattenwechsel) ist im laufenden Betirieb möglich
- Bei Erweiterungen muss der Rechner nur zweimal kurz (zum Einbau der neuen und nach dem Kopieren zum Ausbau der alten Platte) ausser Betrieb gehen, bei hotplug-tauglichen Systemen gar nicht.
- Während des Kopiervorgangs ist Lese- und Schreibzugriff auf die Platte möglich.
- Migration von unter Kernel 2.4 erzeugten Volumes auf Kernel 2.6 ist - inklusive eines schmerzfreien Rückwegs möglich.
Nachteile
- Funktioniert nicht mit älteren Kernels
- Braucht die Userspace-Tools, die sich obendrein auch noch von der Kernelversion abhängig unterscheiden
- Root-File-System auf LVM funktioniert nur mit initrd. Deswegen lege ich das Root-File-System nicht auf eine LVM-Volume. Das tut mir nicht weh, da das root-FS auf meinen Sstemen eh "winzig (200 MB)" ist.
Comments
Display comments as Linear | Threaded
Sven Hartge on :
Einen Nachteil hast du vergessen: Overhead.
In bestimmten Lastsituationen scheint der LVM-"Stapel" eine deutliche Bremse zu sein.
So mochte der Spool des Squids meiner FH auf einer LV nicht wirklich gut performen, erst als ich ihn auf eine normale Partition verlagerte, erreichte der Rechner eine bessere Performance in Hochlastsituationen (sprich in der Zeit von 10-14 Uhr).
Im Gegensatz dazu hat ein INN selbst mit Tradspool auf ext3 (auch ohne dir_index) wenig Probleme mit einem LVM-Setup.
Irgendwas in den Zugriffsmustern des Squid scheinen also ungünstig zu sein.
Marti Körfer on :
Frage: Debian 3.1, lvm2 auf "hda*-Platten" istalliert. Habe Daten-Platten in eine LV-group , 2 Logical Volumes (>10 Terra_Byte je LV) gesteckt. Wo liegt die Adressierung dieser Logical Volumes ? Kann ich bei einem Crash der Systemplatte nach Aufsetzen eines neuen Systems die LV-Informationen meiner Daten-Platten wieder bekommen ??
Danke
Martin
Marc 'Zugschlus' Haber on :
Vorab: Dies hier ist kein Supportmedium. Für Support gegen Geld kann mein Arbeitgeber kontaktiert werden. Sonst bist Du mit solchen Fragen auf den passenden Mailinglisten oder im Usenet an einer viel besseren Adresse.
Grundsätzlich würde ich erwarten, dass die LVs eines Systems beim Systemstart mit installierten LVM-Userspace-Tools grundsätzlich alle erkannt werden.
SeP on :
Die Antwort: ja das ist sehr wohl ohne weiteres moeglich sofern die datenplatten nicht angetastet worden sind, aber denk daran: Wenn der Kittel brennt komm auch ich nur gegen Geld. Scientia est potentia.