Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi1:lvm

Dies ist eine alte Version des Dokuments!


Aufbau eines logical volumes (LV)

Ein LV besteht aus mehreren Ebenen. Die unterste Ebene bilden die sogenannten physical volumes ( PV ).
Mehrere PVs kann man nun zusammenfassen zu einer logischen Einheit, der sogenannten volume group ( VG ).
Auf der VG kann man nun logical volumes ( LV ) erzeugen, die eine beliebige Größe haben können.
In der Summe können die LVs die Größe der VG natürlich nicht überschreiten.

LVM einrichten

Pakete installieren ( Debian ):

apt install lvm2 parted

Boot-Initialisierung einrichten: ( SuSE )

/etc/init.d/boot.lvm start
chkconfig boot.lvm on

Boot-Initialisierung einrichten: ( Debian -6)

service lvm2 start
/etc/init.d/lvm2 start

LVM-Partition anlegen:

parted /dev/sda print
parted /dev/sda set 2 lvm on
parted /dev/sda set 3 lvm on

Alte Metadaten löschen:

wipefs -af /dev/sda2
wipefs -af /dev/sda3

Partitionen anzeigen:

fdisk -l | grep -i lvm

in der Ausgabe sollten 2 LVM-Partitionen erscheinen:

/dev/sda2   30212096  59572223 29360128    14G Linux LVM
/dev/sda3   59572224  90114190 30541967  14,6G Linux LVM

LV anlegen

erstes Physical Volume anlegen:

pvcreate /dev/sda2

Bestehende Physical Volumes anzeigen:

pvs

Volume Group anlegen ( bestehend aus den zwei physical volumes ): 1) vg_system ist hier der Name der VolumeGroup

vgcreate vg_system /dev/sda2

Volume Group aktivieren:

vgchange -a y vg_system

Bestehende Volume Groups anzeigen:

vgs

Logical Volume anlegen: lv_test ist hier der Name des LogicalVolume

lvcreate --size 5G --name /dev/vg_system/lv_test

Bestehende Logical Volumes anzeigen:

lvs

Formatieren ( hier mit ext4-FilesSystem ):

mkfs.ext4 /dev/vg_system/lv_test

Testen

Mount-Point erstellen:

mkdir /mnt/lv_test

logical volume an Mount-Point in Dateisystem einhängen:

mount /dev/vg_system/lv_test /mnt/lv_test

Testweise /usr/bin-Verzeichnis kopieren:

cp -a /usr/bin/. /mnt/lv_test

LV vergrößern / verkleinern

Der Vorteil eines LV ist, daß es zur Laufzeit vergrößert werden kann. Ein LV kann auch verkleinert werden, dass geht aber nur bei ext4 und auch da nur nach umount.

Volume Group um PV vergrößern

nur falls auf Volume Group nicht mehr genug Platz

vgextend <Name Volume group> <Name physical volume>
vgextend vg_system /dev/sda5

Logical Volume & Dateisystem vergrößern

lvresize --size +1g --resizefs /dev/vg_system/lv_test

oder

lvextend -L +2g /dev/vg_system/lv_test

Dateisystem vergrößern:

  • ext3/4
resize2fs /dev/vg_system/lv_test
  • xfs
xfs_growfs /mnt/lv_test

Snapshot erstellen

2)

lvcreate --snapshot --size 100M --name lv_snapshot1 /dev/vg_system/lv_test
mkdir /mnt/snapshot1
mount -o ro /dev/vg_system/lv_snapshot1 /mnt/snapshot1

3) 4)

Snapshot entfernen

wie jedes lv

lvremove /dev/vg_system/lv_snapshot1

Physical Volume entfernen

zweites Physical Volume anlegen:

pvcreate /dev/sda3
vgextend vg_system /dev/sda3
pvmove /dev/sda2
vgreduce vg_system /dev/sda2
pvremove /dev/sda2

Hinweise

Falls man vergessen hat das LVM in die Fstab einzutragen, sind diese nach einem Neustart verschwunden.

lvdisplay

listet die LVMs dann als „LV Status NOT available“ auf.

Lösung: Vgs von Hand aktivieren:

lvchange -a y vg_system

Es kann praktisch sein, die extent size zu ändern, z.B. um sie passend für ein RAID-stripe set zu machen

vgchange -s 1m
vgs -v

Links

1)
- ( Minus ) in VG und LV Namen besser vermeiden
2)
Falls das Kernel Modul dm-snapshot noch nicht geladen ist:
modprobe dm-snapshot
3)
bei XFS
mount -o ro,nouuid /dev/vg_system/lv_snapshot /mnt/snapshot1
oder (falls es ohne norecovery nicht geht)
mount -o ro,nouuid,norecovery /dev/vg_system/lv_snapshot /mnt/snapshot1
4)
Vorsicht bei XFS, das Snapshot wird nicht lesbar sein. Generell eine gute Idee, das Volume vorher read-only zu mounten Ich glaube das stimmt nicht mehr. Siehe man fsfreeze.
lpi1/lvm.1562082318.txt.gz · Zuletzt geändert: 2019/07/02 15:45 von ingo_wichmann