Dieses Kapitel soll anhand eines konkreten Beispiels, einem unerfahrenen Admin Anfangsgrössen für die Installation einer Distribution mit LVM geben, sowie eine Idee vermitteln in welcher Reihenfolge die verscheidenen Vorgänge stattfinden.
Es soll ein PC installiert werden, mit 2 IDE Festplatten a 20 GB, die als /dev/hda und /dev/hdb angesprochen werden. Linux ist noch nicht installiert. Sie verwenden eine Distribution, deren Kernel bereits mit LVM kompiliert wurde (z.B. Suse >= 6.3).
Linux kann nicht direkt von einem LVM Volume booten. In diesem einfachen Scenario soll die root Partition auf einer normalen (kleinen) Partition liegen. Alle weiteren Filesysteme werden auf logischen Volumes untergebracht. Der grobe Ablauf der Installation ist wie folgt:
In diesem Beispiel wird nur eine einfache Planung vorgegeben. Weitergehende Überlegungen finden Sie später im Kapitel "komplexere Überlegungen und Planungen".
Wir verwenden nur eine Volume Group. Die Grösse des boot volumes sollte zwischen 20- 30 MB liegen. Das root volumes wird zwischen 300-500 MB gross werden. Die Planung für einen einfachen Server mit 40 GB Plattenplatz könnte also wie folgt aussehen:
Filesystem | Grösse | Mountpoint |
/dev/hda2 | 470 MB | / |
/dev/hda1 | 30 MB | /boot |
/dev/vg01/lvol1 | 1,5 GB | /usr |
/dev/vg01/lvol2 | 500 MB | /opt |
/dev/vg01/lvol3 | 10 GB | /home |
freier Plattenplatz | 27,5 GB | (wird bei Bedarf zur Erweiterung der vorhanden LVs verwendet) |
|
Die Grössen sind natürlich nur als grober Anhaltspunkt zu verstehen. Die exakte Grösse hängt natürlich von Ihrem installierten System ab. Die hier angegeben Grössen beziehen sich auf eine umfangreiche Installation der Suse 6.3.
Im Beispiel werden nur die relevanten Optionen der Befehle erwähnt. Für die komplette Syntax lesen Sie bitte die Man Pages.
Installieren Sie Ihr Linux entsprechend der Anleitung Ihrer Distribution. Halten Sie die ausgewählten Programmpackete minimal, da jetzt die LVM Volumes und damit der komplette Speicherplatz ja noch nicht verfügbar sind. Wenn Sie im Laufe der Installation ihre Festplatten partitionieren, dann müssen Sie die Patitionen zur Verwendung mit LVM einrichten. Die Partions-Id muss auf 0x8e gesetzt werden. Die verhindert das versehentliche überschreiben von nicht LVM Partitionen. In unserem Scenario partitionieren wir die Festplatten wie folgt:
Platte | Partition | Grösse | Id/Typ der Partition |
hda | /dev/hda1 | 30 MB | 0x83 Linux native |
hda | /dev/hda2 | 470 MB | 0x83 Linux native |
hda | /dev/hda3 | 19,5 GB | 0x8e Linux LVM |
hdb | /dev/hdb1 | 100 MB | 0x82 Linux swap |
hdb | /dev/hdb2 | 19,9 GB | 0x8e Linux LVM |
|
Der erste Aufbau von vgscan aktiviert die LVM Funktionalität im Kernel, da die noch nicht vorhandene lvm Datenbank angelegt wird. Dieser Schritt ist in unserem Scenario zwingend, da es sich um ein neu installiertes System handelt. Der Befehl vgscan ermittelt alle LVM PVs und legt die Datei /etc/lvmtab und das Verzeichnis /etc/lvmtab.d an oder aktualisiert sie.
vgscan
Der Befehl pvcreate legt den VGDA Block auf dem PV an. Er muss für jedes PV ausgeführt werden, bevor es von LVM verwendet werden kann:
pvcreate /dev/hda3 pvcreate /dev/hdb2
Jetzt legen wir mit 'vgcreate <VolumeGroup> <Partition(en)>' unsere Volume Group an und nennen sie "vg01":
vgcreate vg01 /dev/hda3 /dev/hdb2
Hier legen wir jetzt alle unsere logischen Volumes an. Als Namen verwenden wir, etwas fantasielos, lvol1, lvol2 und lvol3. Dabei bedienen wir uns mit dem Plattenplatz auf Volume Group vg01, der einzigen Volume Group in diesem Beispiel. Es ist offensichtlich, dass wir hier nicht mehr Plattenplatz "verteilen" können, als wir bei vgcreate in die Volume Group "hineingesteckt" haben, und zwar in Form der beiden Partitionen hda3 und hdb2. (lvcreate -L<Grösse> -n <LogicalVolumeName> <Volume Group>).
lvcreate -L 1500M -n lvol1 vg01 lvcreate -L 500M -n lvol2 vg01 lvcreate -L 10G -n lvol3 vg01
Ab jetzt können die logischen Partitionen, genau so wie gewöhnliche Partitionen, über Ihre Device Files angesprochen werden. Gewöhliche Partitionen werden mit /dev/sd[a-z]* oder /dev/hd[a-z]* bezeichnet; Logische Volumes werden mit /dev/VolumeGroupName/LogicalVolumeName angesprochen. Mit mke2fs <LogicalVolumeName> legen wir die ext2 Filesysteme an:
mke2fs /dev/vg01/lvol1 mke2fs /dev/vg01/lvol2 mke2fs /dev/vg01/lvol3
Trotz der minimalen Linux Installation liegen wahrscheinlich schon eine Dateien in den Ordnern /usr /opt und /home. Wir müssen diese "alten" Verzeichnisse also zuerst umbenennen und dann die Mountpoints anlegen, bevor wir die "neuen" Filesyssteme mounten können. Anschliessend müssen wir die Inhalte der "alten" Verzeichnisse in die "neuen" kompieren. Wenn Sie ganz sicher sind, dass die ganze LVM Installation und das Kopieren funktioniert hat, können Sie die alten Verzeichnisse bei Gelegenheit entfernen.
mv /usr /usr.old mv /opt /opt.old mv /home /home.old mkdir /usr mkdir /opt mkdir /home mount /dev/vg01/lvol1 /usr mount /dev/vg01/lvol2 /opt mount /dev/vg01/lvol3 /home cp -avx /usr.old/* /usr cp -avx /opt.old/* /opt cp -avx /home.old/* /home
Damit die neuen Filesysteme nun bei jedem Systemstart automatisch gemountet werden, müssen wir sie in die Datei /etc/fstab eintragen (siehe 'man fstab'). In unserem Scenario sehen die zusätzlichen Einträge wie folgt aus:
/dev/vg01/lvol1 /usr ext2 defaults 1 2 /dev/vg01/lvol2 /opt ext2 defaults 1 2 /dev/vg01/lvol3 /home ext2 defaults 1 2
Die LVM Installation ist jetzt beendet. Die logischen Volumes und damit der komplette Festplattenplatz stehen zur Verfügung. Jetzt kann die noch minimale Linux Installation um zusätzliche Programmpackete auf den vollen gewünschten Umfang erweitert werden.