Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
lpi1:lvm [2019/07/02 15:47] ingo_wichmann |
lpi1:lvm [2020/12/03 16:36] |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== 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. | ||
- | |||
- | {{ :admin_grundlagen:lvm.png?200 |}} | ||
- | ====== LVM einrichten ====== | ||
- | Pakete installieren ( Debian ): | ||
- | apt install lvm2 parted | ||
- | |||
- | Boot-Initialisierung einrichten: ( SuSE ) | ||
- | /etc/init.d/boot.lvm start | ||
- | chkconfig boot.lvm on | ||
- | |||
- | 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: | ||
- | <file> | ||
- | /dev/sda2 30212096 59572223 29360128 14G Linux LVM | ||
- | /dev/sda3 59572224 90114190 30541967 14,6G Linux LVM | ||
- | </file> | ||
- | |||
- | ====== LV anlegen ====== | ||
- | erstes Physical Volume anlegen: | ||
- | pvcreate /dev/sda2 | ||
- | |||
- | Bestehende Physical Volumes anzeigen: | ||
- | pvs | ||
- | |||
- | Volume Group anlegen ( bestehend aus den zwei physical volumes ): | ||
- | (( ''-'' ( Minus ) in VG und LV Namen besser vermeiden )) | ||
- | ''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 ====== | ||
- | |||
- | (( Falls das Kernel Modul dm-snapshot noch nicht geladen ist: | ||
- | modprobe dm-snapshot | ||
- | )) | ||
- | 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 | ||
- | |||
- | (( 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 | ||
- | )) | ||
- | (( <del>Vorsicht bei XFS, das Snapshot wird nicht lesbar sein. Generell eine gute Idee, das Volume vorher read-only zu mounten</del> Ich glaube das stimmt nicht mehr. Siehe ''man fsfreeze''. )) | ||
- | |||
- | == 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 ====== | ||
- | * http://tldp.org/HOWTO/LVM-HOWTO | ||
- | * http://www.linux-magazin.de/heft_abo/ausgaben/2005/10/ueber_alle_fallen | ||
- | * https://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/Cluster_Logical_Volume_Manager/index.html | ||
- | * http://www.novell.com/documentation/sles10/sles_admin/data/cha_advdisk.html | ||