Next Previous Contents

3. Arbeiten mit LVM

Hier werden die wesentlichen Administationsvorgänge beschrieben.

3.1 Booten

Eventuell muss das LVM-Modul geladen werden. Normalerweise können die gespeicherte LVM-Konfiguration in den Dateien/Verzeichnissen /etc/lvmtab, /etc/lvmconf, /etc/lvmtab.d wieder benutzt werden:

vgchange -a y

Sollte die gespeicherten Daten korrupt oder nicht vorhanden sein (z.B. weil eine Platte in ein fremdes System eingebaut wird) können alle potentiellen PV's (alle SCSI- und IDE-Platten, Loop-Devices, etc.) gescannt werden.

vgscan -v

Es ist Zweckmässig vgscan jedesmal beim booten, vor dem Arbeiten mit logischen Volumes automatisch zu starten. Danach ebenfalls mit vgchange -a y aktivieren.

3.2 Shutdown

LVM muß sauber abgeschlossen werden, damit ein Wiederherstellen später möglich ist. Zuerst sind alle Filesysteme auf den LV's zu unmounten. Es dürfen keine geöffneten LV (gemountete Filesysteme, Swap etc.) existieren. Danach die VG als Gesamtes deaktivieren:

vgchange -a n

3.3 Anlegen einer Volume Group (VG)

Einer Volume Group muß beim Anlegen mindestens ein PV zugefügt werden, weitere können später hinzugefügt werden. Anlegen einer VG mit dem Namen vg00:

vgcreate -v vg00 /dev/loop7

3.4 Umbenennen einer Volume Group (VG)

Die VG 'vg00' wird zu 'myvg' umbenannt. Dazu muss die VG erst deaktiviert werden. Nur VGs, die keine offenen LVs haben können deaktiviert werden. Nach dem Umbenennen muss die VG wieder aktiviert werden.

vgchange -a n vg00
vgrename vg00 myvg
vgchange -a y myvg

3.5 Vorbereiten der Physical Volume (PV)

Ein Physical Volume (PV) kann eine Festplatten-Partition, eine gesamte Platte, ein Loop-Device, ein MD-Device oder eine beliebiges anderes Block-Device sein. Das PV muß vor Benutzung durch LVM formatiert werden, d.h. gewisse Datenstrukturen werden darin abgelegt. Wenn eine Partition benutzt wird, muß der Partitionstyp mit fdisk auf 0x8E gesetzt werden. Dies dient lediglich dazu, daß die Partition nicht über andere Wege (z.B. Filesystem) benutzt wird. Aufruf von pvcreate:

pvcreate /dev/loop7

Falls sich dort schon ein PV konfiguriert wurde, zum Überschreiben ev. Parameter -f oder -ff angeben.

3.6 Hinzufügen eines PV zu einer VG

Erstellen Sie die Partition und setzen Sie die Partions ID auf 0x8e um sie als LVM Partition zu kennzeichnen. Beispiel für "sda1" und "vg01":

[FDISK BEISPIEL FEHLT NOCH]
pvcreate /dev/sda1
vgextend vg01
 /dev/sda1

Die erste Partition wird mit 'vgcreate vg01 /dev/sda1' hinzugefügt, da die Volume Group dann ja noch nicht existiert.

3.7 Entfernen eines PV aus einer VG

pvmove /dev/sdx1
vgreduce vg0x /dev/sdx1

3.8 Verlagerung eines PV auf ein anderes PV

Manchmal ist es Notwendig, die Daten von ein einem physikalischen Volume auf ein anderes zu Verschieben. Gründe dafür können sein,

Vorraussetzung für die Verlaferung der PEs eines PV auf ein anderes ist, dass auf den verbleibenden PVs genug Platz vorhanden ist, um die gesamten Daten aufnehmen zu können. Die Verlagerung kann im Online Betrieb erfolgen. (Vertrauen ist gut; Ein Backup ist besser :-)

Beispiel 1: hda1 in vg0x soll "frei gemacht" werden, damit die Festplatte ausgebaut werden kann:

pvmove /dev/hda1
vgreduce vg0x /dev/hda1

Beispiel2: Das PV '/dev/loop7' in VG 'vg00' soll von dem jetzigen provisorischen Loop-Device auf eine neue Partition ('/dev/hda1') verschoben werden. Dies geschieht im Online-Betrieb.

(Ggf. mit fdisk Partition-ID von hda1 auf 0xfe setzen) 
pvcreate -v /dev/hda1
vgextend -v vg00 /dev/hda1
pvmove -v /dev/loop7 /dev/hda1
vgreduce -v vg00 /dev/loop7

3.9 Anlegen und Benutzen eines Logical Volume (LV)

In einer gegebenen VG können mehrere Logical Volume's (LV) angelegt werden. Ohne spezielle Parameter wird irgendwo freier Platz belegt. Normalerweise werden die PV's nacheinander, möglichst aneinanderhängend aufgefüllt. Wird kein Name für das LV angegeben, vergibt LVM automatisch einen (lvol1, lvol2, ...). Die Größe der LV wird durch -L gefolgt von einer Zahl mit dem Zusatz K, M oder G (für Kbyte, MByte, GByte) angegeben.

Beispiel: LV mit dem Namen test mit 10 MB in der VG vg00:

lvcreate -v  -L10M -n test vg00

LVM legt damit ein Block-Device /dev/vg00/test an, auf das jetzt normal zugegriffen werden kann:

mkfs -t ext2 /dev/vg00/test 
mount /dev/vg00/test /tmp/lvmtest/mnt0

(... und/oder fstab Eintrag)

3.10 Vergrössern eines Logischen Volumes (LV)

Sie können ein LV /dev/test_vg/test_lv auf 1600MB erweitern, in dem Sie eine relative Grössenangabe verwenden

"lvextend -L+100 /dev/test_vg/test_lv"

oder eine absolute Grössenangabe

"lvextend -L1600 /dev/test_vg/test_lv"

Beispiel zusammen mit Erweiterung des Filesystems:

lvextend -L+3G /dev/vg01/lvol01
e2fsadm -L+3G /dev/vg01/lvol01

Eventuell /var/state/nfs/devtab anpassen falls nfs freigabe bestand. (Warum??? - Bitte um Input - richard)

3.11 Verkleinern eines logischen Volumes (LV)

Das LV '/dev/test_vg/test_lv' soll um 700 LEs auf 900 LEs verkleinert werden. Die logical Extents können relativ angegeben werden:

"lvreduce -l-700 /dev/test_vg/test_lv"

oder die gewünschte Grösse kann in absoluten PEs angegeben werden:

"lvreduce -l900 /dev/test_vg/test_lv"

3.12 Umbenennen eines Logischen Volumes (LV)

Nur geschlossene LVs können umbenannt werden. Vergessen Sie nicht nach dem Umbennen ggf. Ihren Eintrag in '/etc/fstab' zu ändern.

"lvchange -an /dev/whatever/test_lv"
"lvrename  /dev/whatever/test_lv 
 /dev/whatever/whatvolume"
"lvchange -ay /dev/whatever/whatvolume"

Alternativ kann folgender Aufruf von lvrename verwendet werden:

"lvrename  whatever test_lv whatvolume"

3.13 Anpassen der Grösse eine ext2 Filesystems

Wenn Sie das Tool resize2fs besitzen, können Sie ein LV mit ext2-Filesystem dynamisch vergrößern oder verkleinern, ohne die existierenden Daten auf dem Filesystem zu zerstören. Das Programm resize2fs gibt es bei www.powerquest.com

e2fsadm -L+100 /dev/test_vg/another_test_lv

3.14 Anlegen eines Swap-Devices

Es soll ein 50 MB Volume in vg00 zur Verwendung als Swap Partition erzeugt und verwendet werden.

lvcreate -L50M -n swap1 vg00
mkswap /dev/vg00/swap1
swapon /dev/vg00/swap1

Eintrag in /etc/fstab:

/dev/vg00/swap1     swa     swap    defaults      0 0

3.15 Test Konfigurationen mit Loop-Devices

Will man LVM testen, ohne Umpartitionieren zu müssen, kann man Loop-Devices verwenden. Für den produktiven Einsatz empfiehlt sich das natürlich nicht. Mit Loop-Devices kann man auf normale Dateien im Filesystem wie auf ein Block-Device zugreifen. Siehe 'man losetup'. Anmerkung:

Einrichtung:

Datei in bestimmter Größe anlegen:

dd if=/dev/zero of=/tmp/lvmtest/loop bs=1024 count=21000 

Loop-Device konfigurieren:

losetup /dev/loop7 /tmp/lvmtest/loop

Jetzt kann man auf /dev/loop7 wie auf ein normales Block-Device zugreifen. Wird /dev/loop7 nicht mehr gebraucht, mit Loop-Device konfigurieren:

losetup -d /dev/loop7 

die Verbindung lösen; danach kann die Datei /tmp/lvmtest/loop gelöscht werden.


Next Previous Contents