SUCKUP.de

LVM – Logical Volume Manager

This blog post has been published on 2010-02-07 and may be out of date.

LVM steht für »Logical Volume Manager« und bezeichnet eine Funktion, die seit der Version 2.4 im Standard-Kernel integriert ist. Mittels LVM lässt sich eine logische Schicht zwischen Dateisystem und der Partition einer physikalischen Festplatte schieben.

Was kann LVM?

– hoch verfugbare Systeme
– Verlagern von Speicherplatz
– Snapshots
– Großenanderung
– Striping & Concatenation
– nabhangig von Plattenposition


LVM


Bei Kernel < 2.4 muss man noch das passende Modul nachladen:

modprobe lvm-mod

Bei der Standard-Ubuntu Version muss man noch das folgende Paket nachinstallieren um LVM nutzen zu können:

aptitude install lvm2

LVM einrichten:

1.) Eine Partition mit der Partitions-ID »8e« für LVM kennzeichnen

fdisk /dev/sdb

oder

cfdisk /dev/sdb

2.) Partition nach LVM durchsuchen und ggf. dafür benötigte Dateien anlegen

vgscan -v

3.) Physical Volume anlegen

pvcreate /dev/sdb1

4.) Volume Group anlegen
(man könnte an dieser Stelle auch mehrere “Physical Volume” zu einer “Volume Group” zusammenfassen)

vgcreate /dev/sdb1 (/dev/sdb2)

5.) Logical Volume anlegen
z.B.:

lvcreate -n "home" -L 10G lvcreate -n "tmp" -L 2G lvcreate -n "swap" -L 1G lvcreate -n "var" -L 30G

6.) Dateisysteme anlegen

mkfs -t xfs /dev/mapper/-home
mkfs -t xfs /dev/mapper/-var
mkfs -t xfs /dev/mapper/-tmp
mkfs -t xfs /dev/mapper/-boot
mkswap /dev/mapper/-swap

LVM Infos:

1.) Infos vom “Physical Volume” anzeigen lassen

pvdisplay

2.) “Volume Group” Infos anzeigen, z.B. wie viel Platten-Platz man noch auf die “Logical Volume” verteilen kann

vgdisplay

3.) Anzeigen welche “Logical Volume” zu welcher “Volume Group” gehören und z.B. dessen momentane Größe

lvdisplay

LVM vergrößern:

1.) Logical Volume Größe angeben oder um X vergrößern

lvextend -L 2G /dev/mapper/-swap

oder

lvextend -L +1G /dev/mapper/-swap

2.) unmounten der Partition bzw. swapoff

umount /LVM-Partition

bzw. in diesem Beispiel

swapoff -v /dev/mapper/-swap

3.) nun das Dateisystem prüfen

fsck -f /dev/mapper/-swap

4.) nun wird das Dateisystem selber vergrößert

xfs_growfs /dev/mapper/-X
resize_reiserfs /dev/mapper/-X
resize2fs /dev/mapper/-X
ntfsresize /dev/mapper/-X

bzw. in diesem Beispiel

mkswap /dev/mapper/-swap

5.) Mounten der Partition bzw. swapon

mount -t xfs /dev/mapper/-home /home
swapon -av

LVM verkleinern:

In aktuellen Implementierungen ist es nicht möglich, ein XFS-Dateisystem zu verkleinern, daher nehmen wir als Beispiel ein “ext3”-Dateisystem

1.) unmounten der Partition

umount /dev/mapper/-var

2.) nun das Dateisystem checken

e2fsck -f /dev/mapper/-var

3.) neue Dateisystem-Größe in KB angeben

resize2fs /dev/volg1/logv1 15728640

4.) anschließend LVM entsprechend reduzieren

lvreduce -L -15GB /dev/mapper/-var

5.) und wieder mounten, fertig

mount -t ext3 /dev/mapper/-var /var

Volume Group vergrößern:

1.) ein neues Physical Volume anlegen

pvcreate /dev/sdb3

2.) das neue “Physical Volume” zur Volume Group hinzufügen

vgextend volg1 /dev/sdb3

Volume Group verkleinern:

1.) überprüfen ob das betreffende Physical Volume Daten enthält

pvdisplay -v /dev/sdb3

2.)das neue “Physical Volume” von der Volume Group entfernen

vgreduce volg1 /dev/hdb7

weitere Infos und Anleitungen findest du auf linuxhaven.de