Unsere neue Linux-Serie beschreibt die verschiedenen Facetten der Administration des Dateisystems. Mit Ausnahme der ersten beiden Teile richtet sich die Serie explizit an Linux-Profis. Die achtteilige Artikelreihe behandelt dabei folgende Themen:
-
Dateisystemtypen: Dieser Abschnitt gibt einen Überblick über die von Linux unterstützten Dateisystemtypen.
-
Verwaltung des Dateisystems: In diesem Abschnitt lernen Sie, wie Sie Linux- und Windows-Partitionen, Disketten, Daten-CDs und -DVDs, USB-Memory-Sticks et cetera nutzen können. Der Abschnitt gibt auch Tipps, was zu tun ist, wenn sich eine Festplattenpartition als zu klein herausstellt.
-
Partitionierung der Festplatte: Die Partitionierung der Festplatte ist ein zentraler Bestandteil der Installation von Linux. Manchmal ist es aber auch im Betrieb von Linux erforderlich, eine neue Partition hinzuzufügen.
-
Dateisysteme: ext3 ist das wichtigste Linux-Dateisystem. Es ist abwärtskompatibel zu seinem Vorgänger ext2, enthält aber zusätzliche Journaling-Funktionen. reiserfs ist eine Alternative zu ext3. Das Dateisystem unterstützt ebenfalls Journaling und ist vor allem für den Umgang mit kleinen Dateien optimiert.
-
RAID: Mit RAID (Redundant Array of Inexpensive / Independent Disks) verknüpfen Sie die Partitionen mehrerer Festplatten miteinander, um auf diese Weise ein zuverlässigeres und/oder schnelleres Gesamtsystem zu erreichen. Dieser Abschnitt geht kurz auf die Grundlagen von RAID ein und beschreibt dann die Einrichtung eines RAID-0-Systems (Striping).
-
LVM: Der LogicalVolumeManager (kurz LVM) ermöglicht eine flexiblere Verwaltung von Partitionen. Mit LVM können Sie beispielsweise Partitionen mehrerer Festplatten zu einer virtuellen Partition vereinen. Zudem lässt sich die Größe der virtuellen Partition im laufenden Betrieb ändern.
-
DMA-Modus für IDE-Festplatten: Der so genannte Bus-Master-DMA-Modus kann den Zugriff auf IDE-Festplatten erheblich beschleunigen. Aus Kompatibilitätsgründen wird dieser Modus aber oft per Default nicht aktiviert.
Die Artikelserie basiert auf dem Kapitel 25 des Standardwerks "Linux - Installation, Konfiguration, Anwendung" von Michael Kofler aus dem Verlag Addison-Wesley. Sie können dieses über 1200 Seiten starke Buch auch in unserem Buchshop versandkostenfrei bestellen oder als PDF-eBook herunterladen.
Teil 1 |
|
---|---|
Teil 2 |
|
Teil 3 |
|
Teil 4 |
|
Teil 5 |
|
Teil 6 |
|
Teil 7 |
|
Teil 8 |
Der LVM als logische Schicht
Die Beschreibung als logische Schicht klingt vielleicht abstrakt, die Vorteile in der Praxis sind jedoch sehr real und leicht verständlich:
-
Im Rahmen des von LVM verwalteten Festplattenbereichs können Sie im laufenden Betrieb Partitionen anlegen, vergrößern und verkleinern. Das Problem einer zu kleinen Partition, die sich nicht oder nur mehr mit riesigem Backup-Aufwand vergrößern lässt, gehört damit der Vergangenheit an.
-
Sie können dank LVM Bereiche mehrerer Festplatten zu einer einzigen, riesigen Partition zusammenfassen.
-
Sie können mit LVM auch RAID-0 realisieren. (Hintergrundinformationen zu RAID finden Sie vorangegangenen Beitrag der Serie.)
-
Sie können sehr einfach einen so genannten Snapshot eines Dateisystems erstellen (ideal für Backups im laufenden Betrieb).
-
LVM ist sehr schnell. Sie müssen für die höhere Flexibilität nicht mit einer spürbar verringerten Geschwindigkeit bezahlen. (Der Geschwindigkeitsunterschied gegenüber dem direkten Ansprechen einer Festplattenpartition ist kaum messbar. Die CPU-Belastung ist ganz geringfügig höher.)
Grundsätzlich bietet LVM so viele Vorteile, dass sich der Einsatz nicht nur für große Server-Systeme, sondern eigentlich auch für private Linux-PCs empfiehlt. Dennoch müssen zur richtigen Einschätzung des LVM gleich auch ein paar Einschränkungen genannt werden:
-
LVM kann nicht dazu verwendet werden, um eine herkömmliche Partition zu vergrößern, die ohne LVM erzeugt wurde. (Sie können LVM also nicht erst dann einsetzen, wenn es schon zu spät ist).
-
LVM kümmert sich nur um Partitionen, nicht um die darauf enthaltenen Dateisysteme. Nachdem Sie die Größe einer Partition verändert haben, müssen Sie auch die Größe des Dateisystems ändern. Das funktioniert bei den meisten Linux-Dateisystemen nur, wenn das Dateisystem zurzeit nicht verwendet wird (
umount
). -
Wenn Sie ein Dateisystem mit LVM über mehrere Festplatten verteilen, steigt die Fehlerwahrscheinlichkeit. Der Ausfall einer einzigen Festplatte macht alle Daten des Dateisystems unbrauchbar.
-
LVM ist kein Ersatz für RAID (Ausnahme: RAID-0). Es ist aber möglich, LVM und RAID zu kombinieren. Dazu richten Sie zuerst RAID ein und nutzen dann die /dev/md-Devices für LVM.
-
Auch wenn LVM bei der Verwaltung von Partitionen mehr Flexibilität gestattet, macht es doch die Administration als Ganzes komplizierter. Das gilt insbesondere dann, wenn etwas schief geht und Sie mit einem Rescue-System, Knoppix etc. auf Ihre Daten zugreifen möchten.
-
Es ist ziemlich kompliziert, LVM auch für die Systempartition (Root-Partition) zu verwenden.
Mit anderen Worten: LVM bietet viele interessante Funktionen, ist aber für Linux-Einsteiger nicht optimal geeignet.
LVM-Versionen
Versionen: Es gibt momentan zwei LVM-Versionen: 1 und 2. In Kernel 2.4 ist LVM1 integriert, in Kernel 2.6 LVM2. Auch im aktuellen 2.4-Kernel ist zum Teil schon LVM2 verfügbar. Beispielsweise können Sie unter SUSE 9.0 sowohl LVM1 als auch LVM2 nutzen. Wenn Sie LVM2 nutzen möchten, müssen Sie lediglich darauf achten, dass Sie die LVM2-Tools verwenden (Paket lvm2).
Die internen Änderungen zwischen LVM1 und LVM2 betreffen einerseits ein Kernelmodul (lvm-mod bei LVM1, dm-mod bei LVM2), andererseits das Format der Konfigurationsdateien, die Metadaten über die durch LVM verwalteten Datenmengen enthalten. Für LVM-Anwender hat sich hingegen nur wenig geändert. Zur Konfiguration und Administration werden weiterhin diverse lv-, pv- und vg-Kommandos verwendet.
Laut Dokumentation ist LVM2 abwärtskompatibel zu LVM1, d. h., dass LVM1-Systeme weiter ohne Änderungen genutzt werden können. Für die umgekehrte Richtung gilt das aber nicht! Vorhandene LVM1-Datenmengen (volume groups, siehe das Glossar etwas weiter unten) können mit vgconvert -M2 vgname in das LVM2-Format konvertiert werden. Ich habe allerdings weder die Kompatibilität noch die Konversion von LVM1 nach LVM2 selbst getestet.
Ob Ihre Distribution LVM2 unterstützt, können Sie mit lvm version feststellen. Gegebenenfalls müssen Sie vorher die LVM2-Tools installieren und das Kernelmodul dmmod laden. Dieses Modul stellt den so genannten Device-Mapper zur Verfügung, auf dem LVM2 aufbaut.
root# modprobe dm-mod
root# lvm version
LVM version: 2.00.07 (2003-09-16)
Library version: 1.00.05-ioctl-cvs (2003-09-01)
Driver version: 4.0.1
Konfigurationshilfen: Dieser Abschnitt beschreibt die manuelle Konfiguration von LVM. Manche Distributionen erleichtern diese Arbeit mit eigenen Konfigurations-Tools. Deren Anwendung setzt aber voraus, dass Sie verstehen, was Sie tun. Insofern ist es durchaus eine gute Idee, zuerst einmal ein bisschen mit LVM zu experimentieren.
Red Hat/Fedora: LVM kann bereits während der Installation konfiguriert werden. Danach sind Sie allerdings auf sich selbst gestellt und müssen zur weiteren LVM-Administration die in diesem Abschnitt vorgestellten Kommandos verwenden.
SUSE: Auch hier kann ein LVM-System schon während der Installation eingerichtet werden. Im laufenden Betrieb sind Veränderungen mit dem YaST-Modul SYSTEM|LVM möglich. Beachten Sie, dass bei Größenänderungen nur die logicalvolumes geändert werden, nicht aber die darauf eventuell enthaltenen Dateisysteme. Deren Größe müssen Sie bei Verkleinerungen vor der Verwendung des YaST-Moduls, bei Vergrößerungen nachher selbst verändern.
Dieser Abschnitt gibt eine erste Einführung in die Funktion und Konfiguration von LVM2. Den entsprechenden LVM1-Abschnitt aus der sechsten Auflage dieses Buchs finden Sie auf meiner Website als PDF-Dokument:
http://www.kofler.cc/linux.html
Zahlreiche weitere Informationen finden Sie unter:
http://www.sistina.com/products_lvm.htm
http://tldp.org/HOWTO/LVM-HOWTO/
http://litefaden.com/lite00/lvm/lvm-howto-de.html
Eine interessante Alternative zu LVM ist EVMS (Enterprise Volume Management System), ein von IBM unterstütztes Open-Source-Projekt. EVMS geht über die Funktionen von LVM hinaus und bietet darüber hinaus eine ausgezeichnete Benutzeroberfläche zur Konfiguration und Administration. Zu EVMS gibt es ein LVMPlugin, das eine Kombination von LVM und EVMS ermöglicht. EVMS ist allerdings nicht in den Standardkernel integriert und setzt momentan voraus, dass Sie den Kernel selbst patchen und neu kompilieren. (Möglicherweise werden einzelne Distributionen in Zukunft mit einem EVMS-kompatiblen Kernel ausgeliefert oder EVMS wird in Kernel 2.7.n integriert.).
Weitere Informationen gibt es unter: http://evms.sourceforge.net/
LVM-Glossar
Das, was den Einstieg in die LVM-Welt so schwer macht, ist die Fülle ähnlich lautender Begriffe und Abkürzungen. Um die Konfusion nicht noch zu vergrößern, wird in diesem Abschnitt auf eine Übersetzung der Begriffe bewusst verzichtet. (Alle LVM-Kommandonamen enthalten die Abkürzungen der englischen Begriffe.)
Zwischen der Festplatte und dem Dateisystem stehen drei Ebenen: physical volumes, volume groups und logical volumes:
-
Physical volume (PV): Ein PV ist im Regelfall eine von LVM verwaltete Partition der Festplatte. (Es kann sich auch um eine ganze Festplatte oder um ein RAID-Device handeln.) Der Zweck von PVs besteht lediglich darin, die Partition eindeutig zu kennzeichnen, sodass die unterschiedlichen LVM-Kommandos die Partition anerkennen.
-
Volume group (VG): Ein oder mehrere physical volumes können zu einer Gruppe zusammengefasst werden. Auf diese Weise ist es möglich, Partitionen unterschiedlicher Festplatten quasi zusammenzuhängen, also einheitlich zu nutzen. Die volume group stellt eine Art Speicherpool dar, der alle zur Verfügung stehenden physikalischen Speichermedien vereint. Dieser Pool kann jederzeit um weitere physical volumes erweitert werden.
-
Logical volume (LV): Ein logical volume ist ein Teil der volume group. Für den Anwender wirkt ein logical volume wie eine virtuelle Partition. Im logical volume wird das Dateisystem angelegt. (Das heißt, anstatt ein Dateisystem in /dev/hda7 anzulegen, geben Sie jetzt den Device-Namen des logical volume an.)
Soweit in der volume group noch Speicher verfügbar ist, können logical volumes jederzeit vergrößert werden.
In der LVM-Dokumentation kommen oft zwei weitere Begriffe vor, die zwar nicht ganz so wichtig sind, aber beim Verständnis der Texte helfen:
-
Physical device (PD): Dabei handelt es sich ganz einfach um eine Festplatte. LVM kann wahlweise die gesamte Festplatte oder auch mehrere Partitionen dieser Festplatte in Form von physical volumes nutzen.
-
Physical extent (PE): Bei volume groups und logical volumes kann nicht jedes einzelne Byte einzeln verwaltet werden. Die kleinste Dateneinheit ist vielmehr ein physical extent (per Default: 4 MByte).Logical volumes können maximal 65.536 derartige Dateneinheiten umfassen.
Ein einfaches LVM-System einrichten
LVM kann wahlweise ganze Festplatten, einzelne Festplattenpartitionen oder /dev /mdn-Devices (also RAID-Devices) verwalten. Diese Anleitung geht davon aus, dass Sie vorerst nur eine Festplattenpartition für LVM nutzen möchten.
Partitions-ID einstellen: Richten Sie mit fdisk die Partition für LVM ein, und geben Sie als Partitions-ID-Nummer 8e an (fdisk-Kommando „T“ ). Dieses Beispiel geht davon aus, dass die Partition /dev/hdb11, die für LVM verwendet werden soll, bereits existiert.
root# fdisk /dev/hdb
Command (m for help): t
Partition number (1-11): 11
Hex code (type L to list codes): 8e
Changed system type of partition 11 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/hdb: 255 heads, 63 sectors, 2055 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
...
/dev/hdb11 1334 1525 1542208+ 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Konfigurationsdateien: Die einzige LVM-Konfigurationsdatei, die Sie selbst ändern dürfen, hat den Namen /etc/lvm/lvm.conf. Sie enthält diverse Defaulteinstellungen, die nur selten geändert werden müssen.
Alle anderen LVM-Einstellungen werden direkt in den durch LVM verwalteten Datenmengen gespeichert. Diese Einstellungen sind nicht direkt zugänglich. Allerdings enthält /etc/lvm/backup für jede volume group eine Kopie der Einstellungen. Außerdem enthält /etc/lvm/archiv ein Protokoll aller Änderungen, die am LVM-System durchgeführt wurden.
Um es nochmals zu betonen: Mit der Ausnahme von lvm.conf werden die Konfigurationsdateien nicht wie sonst üblich durch einen Editor verändert! Vielmehr führen Sie die unten beschriebenen Kommandos (pvcreate, vgcreate etc.) aus, um das LVM-System einzurichten. Die Konfigurationsdateien (bzw. deren Backups) werden dadurch automatisch erzeugt.
LVM einrichten II
LVM-Initialisierung: Zur Initialisierung führen Sie die beiden folgenden Kommandos aus. Sobald ein LVM-System eingerichtet ist, werden diese Kommandos bei LVM2kompatiblen Distributionen automatisch während des Rechnerstarts ausgeführt. Die manuelle Ausführung ist also nur beim ersten Mal erforderlich:
root# modprobe dm-mod
root# vgscan
vgscan --reading all physical volumes (this may take a while...)
vgscan --no volume groups found
Physical volume einrichten: Bevor LVM die Partition /dev/hdb11 verwalten kann, muss die Partition als physical volume deklariert werden. (Beachten Sie, dass Sie damit alle Daten verlieren, die sich bisher auf dieser Partition befunden haben.)
root# pvcreate /dev/hdb11
pvcreate --physical volume "/dev/hdb11" successfully created
Volume group einrichten: Nun müssen alle physical volumes zu einer volume group zusammengefasst werden. In diesem Beispiel gibt es zwar vorerst nur ein einziges PV, der Schritt ist aber dennoch erforderlich. An das Kommando vgcreate muss auch der gewünschte Name der VG übergeben werden. In diesem Beispiel bekommt die VG den Namen myvg1:
root# vgcreate myvg1 /dev/hdb11
vgcreate --volume group "myvg1" successfully created and activated
Sie können nun einen Blick in die Datei /etc/lvm/backup/myvg1 werfen: Sie enthält eine Menge Informationen über die neu eingerichtete VG.
Logical volume einrichten: myvg1 stellt jetzt eine Art Datenpool dar, der aber noch ungenutzt ist. Zur Nutzung müssen Sie innerhalb von myvg1 ein logical volume einrichten, also eine Art virtuelle Partition. Dazu müssen Sie an das Kommando lvcreate drei Informationen übergeben: die gewünschte Größe des logical volume, den Namen des neuen logical volume und den Namen der existierenden volume group.(lvcreate kennt unzählige weitere Parameter - siehe die man-Seite.)
root# lvcreate -L 100M -n myvol1 myvg1
Logical volume "lvol0" created
Durch das Kommando wird gleichzeitig auch die Datei /dev/myvg1/myvol1 erzeugt. Dabei handelt es sich wiederum um einen Link auf die Datei /dev/mapper/myvg1-myvol1.Das logical volume kann jetzt unter einem dieser beiden Device-Namen wie eine gewöhnliche Festplattenpartition verwendet werden.
LVM einrichten III
Dateisystem im logical volume einrichten: Um in einem logical volume ein Dateisystem einzurichten, verwenden Sie beispielsweise mke2fs (ext2) oder mkreiserfs:
root# mke2fs -j /dev/myvg1/myvol1
...
Writing superblocks and filesystem accounting information: done
Mit mount können Sie sich davon überzeugen, dass alles geklappt hat:
root# mkdir /test
root# mount -t ext3 /dev/myvg1/myvol1 /test
Jetzt können Sie im neuen Dateisystem, das über das Verzeichnis /test angesprochen wird, Dateien speichern.
LVM beenden: LVM wird beim Herunterfahren des Rechners selbstständig beendet. Sie können diese Operation aber auch manuell mit vgchange durchführen:
root# umount /test
root# vgchange -a n
0 logical volume(s) in volume group "myvg1" now active
Wenn Sie LVM wieder verwenden möchten, müssen Sie abermals vgchange ausführen, diesmal mit der Option -a y:
root# vgchange -a y
vgchange --volume group "myvg1" successfully activated
Falls aus irgendeinem Grund die LVM-Konfigurationsdateien nicht mehr zur Verfügung stehen, müssen Sie diese vorher mit vgscan neu erstellen.
Dateisysteme vergrößern und verkleinern
Dateisystem vergrößern: Der Hauptgrund, LVM überhaupt zu verwenden, besteht darin, ein Dateisystem nachträglich vergrößern zu können, ohne die Festplatte anzurühren:
root# df -T /test
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/myvg1-myvol1
ext3 99150 7998 86032 9% /test
Im folgenden Beispiel wird das im vorigen Abschnitt eingerichtete Dateisystem (/dev /myvg1/myvol1 via /test) von ursprünglich 100 MByte auf 200 MByte vergrößert. Dazu muss zuerst das logical volume vergrößert werden. Zu diesem Zweck müssen Sie den Device-Namen und die neue Größe an lvextend übergeben:
root# lvextend -L 200M /dev/myvg1/myvol1
Extending logical volume myvol1 to 200.00 MB
Logical volume myvol1 successfully resized
Damit ist erst die virtuelle Partition des Dateisystems verändert. Um auch das Dateisystem selbst zu vergrößern, wird es mit umount aus dem Verzeichnisbaum entfernt, mit e2fsck überprüft, mit resize2fs vergrößert und dann wieder eingebunden:
root# umount /test
root# e2fsck -f /dev/myvg1/myvol1
e2fsck 1.34 (25-Jul-2003)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/myvg1/myvol1: 72/25688 files (2.8% non-contiguous),
11248/102400 blocks
root# resize2fs /dev/myvg1/myvol1
resize2fs 1.34 (25-Jul-2003)
Resizing the filesystem on /dev/myvg1/myvol1 to 204800 (1k) blocks.
The filesystem on /dev/myvg1/myvol1 is now 204800 blocks long.
root# mount /dev/myvg1/myvol1 /test
df beweist, dass alles funktioniert hat:
root# df -T /test
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/myvg1-myvol1
ext3 198562 7998 180324 5% /test
Dateisystem verkleinern
Wenn Sie ein Dateisystem verkleinern möchten, müssen Sie es zuerst mit resize2fs oder resizereiserfs verkleinern. Bei resize2fs müssen Sie dabei die neue Größe in Blöcken angeben. (Wie groß ein Datenblock im Dateisystem ist, können Sie bei ext2 mit tune2fs -l feststellen.) Erst dann dürfen Sie auch das logical volume mit lvreduce verkleinern. Achten Sie darauf, dass Sie die korrekte Größe angeben. (Bei diesem Beispiel ist die Blockgröße des Dateisystems genau 1 KByte, sodass keine Umrechnung erforderlich ist. Das ist aber nicht immer so.)
root# resize2fs /dev/myvg1/myvol1 150000
resize2fs 1.34 (25-Jul-2003)
Resizing the filesystem on /dev/myvg1/myvol1 to 150000 (1k) blocks.
The filesystem on /dev/myvg1/myvol1 is now 150000 blocks long.
root# lvreduce --size 150000k /dev/myvg1/myvol1
Rounding up size to full physical extent 148.00 MB
WARNING: Reducing active logical volume to 148.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvol1? [y/n]: y
Logical volume myvol1 successfully resized
Volume group vergrößern
Solange im Speicherpool (in der volume group) noch Platz ist, können virtuelle Partitionen (also logical volumes) leicht vergrößert werden. Aber was tun Sie, wenn auch die VG voll ist? In diesem Fall legen Sie auf einer beliebigen Festplatte Ihres Rechners eine neue Partition an, richten diese Partition als physical volume ein und fügen sie mit vgextend der volume group hinzu.
Die beiden folgenden Kommandos demonstrieren dies für die 500 MByte große Partition /dev/hdb12. myvg1 bekommt damit eine Gesamtkapazität von beinahe 2 GByte, wovon 568 MByte frei sind:
root# pvcreate /dev/hdb12
root# vgextend myvg1 /dev/hdb12
root# vgdisplay myvg1
...
VG Size 1.96 GB
Alloc PE / Size 359 / 1.4 GB
Free PE / Size 142 / 568 MB
Administration
/etc/fstab: Damit die via LVM verwalteten Dateisysteme automatisch in den Verzeichnisbaum eingebunden werden, müssen sie in /etc/fstab eingetragen werden. Das erfolgt auf dieselbe Weise wie bei gewöhnlichen Linux-Partitionen. Einzig die Device-Namen sehen anders aus.
# /etc/fstab: Linux-Dateisysteme (LVM)
/dev/myvg1/myvol1 /test ext3 defaults 0 1
LVM-Scans: Um den Überblick über die definierten und genutzten volumes und groups zu behalten, gibt es vier Scan-Kommandos:
-
lvmdiskscan erstellt eine Liste aller Festplatten und ihrer Partitionen und gibt an, welche Partitionen von LVM als physical volumes verwaltet werden.
-
pvscan erstellt eine Liste aller physical volumes und gibt an, welchen volume groups sie zugeteilt sind und wie viel Speicher darin noch frei ist.
-
vgscan erstellt eine Liste aller volume groups.
-
lvscan erstellt schließlich eine Liste aller logical volumes
root# lvscan
ACTIVE '/dev/myvg1/myvol1' [148.00 MB] next free (default)
Wenn Sie genauere Informationen zu einem PV, einer VG oder einem LV benötigen, setzen Sie die Kommandos pvdisplay, vgdisplay bzw. lvdisplay ein:
root# vgdisplay myvg1
--- Volume group ---
VG Name myvg1
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 256
Cur LV 1
Open LV 0
Max PV 256
Cur PV 2
Act PV 2
VG Size 11.18 GB
PE Size 4.00 MB
Total PE 2862
Alloc PE / Size 37 / 148.00 MB
Free PE / Size 2825 / 11.04 GB
VG UUID 6z40g0-4jxx-A5B9-hXtZ-83ck-K3n8-LNL0vU
Weitere LVM-Kommandos: Neben den hier beschriebenen LVM-Kommandos gibt es noch ca. zwei Dutzend weitere. Damit können Sie PVs, VGs und LVs anlegen, verschieben, umbenennen, vereinen, zerlegen, löschen, Backups der internen Strukturen (nicht der eigentlichen Daten!) durchführen, Snapshots für Daten-Backups erstellen etc. Eine genaue Beschreibung finden Sie in den man-Seiten oder auf der LVM-Website.
LVM-Sonderfälle (root, SWAP, RAID etc.)
LVM für die Systempartition (Root-Partition): Häufig wird LVM (wie übrigens auch RAID) nur für die Datenpartitionen verwendet, nicht aber für die Root-Partition. Dafür gibt es mehrere Gründe:
-
Die Konfiguration ist komplizierter und fehleranfälliger.
-
Falls etwas schief geht, ist es sehr schwierig, die Systempartition mit einem Notfallwerkzeug anzusprechen.
-
Der Hauptvorteil von LVM, nämlich die Möglichkeit, Partitionen im laufenden Betrieb zu verändern, trifft für die Root-Partition nur mit Einschränkungen zu. (Bei den meisten Dateisystemen setzt das Kommando zur Vergrößerung des Dateisystems voraus, dass das Dateisystem gerade nicht in Betrieb ist. Für die Root-Partition kann aber nicht einfach umount ausgeführt werden.)
Grundsätzlich ist LVM aber durchaus in der Lage, auch die Systempartition zu verwalten. Die einzige Einschränkung besteht darin, dass der Kernel bereits unmittelbar nach dem Booten auf diese Partition zugreifen muss, also noch bevor das LVM-Kernelmodul vom Dateisystem gelesen werden kann (und das Dateisystem ist ja nur via LVM zugänglich!). Dazu müssen Sie mit GRUB oder LILO eine Initial-RAM-Disk an den Kernel übergeben, die das Device-Mapper-Modul dm-mod enthält.
LVM für Swap-Partitionen: Generell ist es keine gute Idee, LVM für Swap-Partitionen zu verwenden - aber grundsätzlich ist es möglich. Dazu formatieren Sie ein logical volume mit mkswap und aktivieren die neue Swap-Partition mit swapon.
Diese Vorgehensweise hat zwei Nachteile: Erstens ist die Geschwindigkeit möglicherweise nicht optimal. (Bei einer normalen Swap-Partition liegen alle Daten nahe nebeneinander auf der Festplatte. Bei einer LVM-Swap-Partition kann es sein, dass die Daten über unterschiedliche Bereiche der Festplatte verteilt sind, was den Zugriff verlangsamt.) Zweitens treten dieselben Probleme wie bei einer Root-Partition auf: Die Swap-Partition wird während des Systemstarts zu einem frühen Zeitpunkt im Init-V-Prozess aktiviert. Zu diesem Zeitpunkt muss LVM aber bereits laufen.
LVM und RAID
LVM und RAID-0: LVM unterstützt selbst den RAID-Level 0. Um diese Funktion nutzen zu können, müssen Sie auf zwei oder mehr Festplatten jeweils ein physical volume einrichten. Diese PVs werden zu einer volume group vereint. Nun können Sie mit lvcreate ein logical volume einrichten, das die Daten auf mehrere PVs (und damit auf mehrere Festplatten) verteilt.
Das folgende Beispiel erzeugt ein zwei GByte großes logical volume in der volume group myvg1. Die Daten werden über drei physical volumes verteilt (-i 3). Das Kommando kann nur ausgeführt werden, wenn myvg1 aus mindestens drei physical volumes zusammengesetzt ist.
root# lvcreate -L 2G -i 3 myvg1
Mit der Option -I können Sie die Blockgröße für die Verteilung der Daten einstellen. Der Defaultwert beträgt 4 kByte. Damit werden große Dateien also in 4-kByte-Segmenten über die Festplatten verteilt.
lvcreate verwendet für das Striping einfach mehrere physical volumes, ohne dabei zu berücksichtigen, auf welcher Festplatte sich die PVs befinden. Theoretisch können Sie auch drei PVs auf nur einer Festplatte einrichten – lvcreate wird sich darüber nicht beklagen. Statt des erwarteten Geschwindigkeitsgewinns werden Dateioperationen dann aber allerdings wesentlich langsamer!
Wenn Sie RAID-0 sinnvoll nutzen möchten, müssen Sie darauf achten, dass Sie in einer volume group nur physical volumes unterschiedlicher Festplatten zusammenfassen!
LVM und andere RAID-Level: LVM unterstützt von sich aus keine anderen RAID-Level. LVM kann aber auch für RAID-Devices /dev/mdn verwendet werden. Wenn Sie also beispielsweise RAID-5 und LVM kombinieren möchten, dann richten Sie zuerst RAID-5 ein und definieren dann das resultierende /dev/mdn-Device als physical volume.
Eine normale Datenpartition in eine LVM-Partition umwandeln: Der Wunsch nach LVM entsteht meistens dann zum ersten Mal, wenn sich eine Datenpartition als zu klein erweist. Leider ist dann eine Umwandlung in ein LVM-System nicht ohne weiteres möglich. Sie müssen eine neue LVM-Partition erzeugen und Ihre Dateien dann kopieren.
Ausblick
Nachdem wir in diesem Teil die dynamische Verwaltung von Festplatten mit LVM besprochen haben, geht es im letzten Teil der Festplattenserie um die richtige Konfiguration des DMA-Betriebs. Zwar sollte dieser schnelle Übertragungsmodus inzwischen Standard sein, doch mitunter ist Handarbeit angesagt, bis die Daten mit Höchstgeschwindigkeit zur Platte übertragen werden.
Diese Artikelserie basiert auf dem Kapitel 25 des Standardwerks "Linux - Installation, Konfiguration, Anwendung" von Michael Kofler aus dem Verlag Addison-Wesley. Sie können dieses über 1200 Seiten starke Buch auch in unserem Buchshop versandkostenfrei bestellen oder als eBook herunterladen. (ala)
Teil 1 |
|
---|---|
Teil 2 |
|
Teil 3 |
|
Teil 4 |
|
Teil 5 |
|
Teil 6 |
|
Teil 7 |
|
Teil 8 |