-
( Minus ) in VG und LV Namen besser vermeiden Dies ist eine alte Version des Dokuments!
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.
Debian:
apt install lvm2 parted
openSuSE:
zypper install lvm
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
erstes Physical Volume anlegen:
pvcreate /dev/sda2
Bestehende Physical Volumes anzeigen:
pvs
Volume Group mit Namen vg_system
anlegen:
1)
vgcreate vg_system /dev/sda2
Volume Group aktivieren: (optional)
vgchange -a y vg_system
Bestehende Volume Groups anzeigen:
vgs
Logical Volume mit Namen lv_test
anlegen:
lvcreate --size 5G --name /dev/vg_system/lv_test
Bestehende Logical Volumes anzeigen:
lvs
Formatieren ( hier mit ext4-Dateisystem ):
mkfs.ext4 /dev/vg_system/lv_test
Mountpoint erstellen:
mkdir /mnt/lv_test
Logical Volume am Mountpoint einhängen:
mount /dev/vg_system/lv_test /mnt/lv_test
Testweise Daten aus /usr/bin
-Verzeichnis kopieren:
cp -a /usr/bin/. /mnt/lv_test
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.
(geht nicht bei btrfs)
lvresize --size +2g --resizefs /dev/vg_system/lv_test
lvextend -L +2g /dev/vg_system/lv_test
resize2fs /dev/vg_system/lv_test
xfs_growfs /mnt/lv_test
btrfs filesystem resize max /mnt/lv_test
geht nur mit ext2/3/4 Dateisystem
cd /mnt df -hT . lv_test
Backup erstellen:
tar -cf lv_test.tar.zstd --use-comp zstd lv_test/
ext4-Dateisystem aushängen & prüfen:
umount /mnt/lv_test fsck.ext4 -f /dev/mapper/vg_system-lv_test
ext4-Dateisystem verkleinern:
resize2fs /dev/mapper/vg_system-lv_test 3G
LV verkleinern:
lvreduce --size 3G /dev/mapper/vg_system-lv_test
Dateisystem wieder einhängen:
mount /dev/mapper/vg_system-lv_test /mnt/lv_test
Wenn die Daten ok sind, Backup löschen:
rm lv_test.tar.zstd
lvcreate --snapshot --size 200M --name lv_snapshot1 /dev/vg_system/lv_test mkdir /mnt/snapshot1 mount -o ro,noatime /dev/vg_system/lv_snapshot1 /mnt/snapshot1
5)
→ jetzt könnte man eine Kopie von /mnt/snapshot1
auf einen anderen Datenträger ziehen
umount /mnt/snapshot1 lvremove /dev/vg_system/lv_snapshot1
lvcreate --snapshot --size 200M --name lv_snapshot2 /dev/vg_system/lv_test
rm -rf /mnt/lv_test/s*
lvconvert --mergesnapshot /dev/vg_system/lv_snapshot2 lvs lvdisplay /dev/vg_system/lv_test ls /mnt/lv_test/s*
Dateisystem aushängen:
umount /mnt/lv_test
LV deaktivieren & wieder aktivieren:
lvchange -an /dev/vg_system/lv_test lvchange -ay /dev/vg_system/lv_test
Dateisystem wieder einhängen:
mount /dev/vg_system/lv_test /mnt/lv_test
Prüfen, ob Dateien wieder da sind:
ls /mnt/lv_test/s*
zweites Physical Volume anlegen:
pvcreate /dev/sda3 vgextend vg_system /dev/sda3
pvmove /dev/sda2 vgreduce vg_system /dev/sda2 pvremove /dev/sda2
zweites Physical Volume anlegen:
pvcreate /dev/sda2 vgextend vg_system /dev/sda2
Logical Volume zu RAID 1 konvertieren:
lvconvert --type raid1 /dev/vg_system/lv_test journalctl -kf
(warten bis „recovery done“ erscheint)
Debian: Kernel Modul noch nicht mainline und nicht in Debian stable
-
( Minus ) in VG und LV Namen besser vermeiden modprobe dm-snapshot
uuid=$(uuid) xfs_admin -U "$uuid" /dev/vgsystem/lvtest1oder Mount-Option
nouuid
(ohne Änderung am Snapshot)mount -o ro,noatime,nouuid /dev/vg_system/lv_snapshot /mnt/snapshot1oder (falls es ohne
norecovery
nicht geht)mount -o ro,noatime,nouuid,norecovery /dev/vg_system/lv_snapshot /mnt/snapshot1
lvconvert --raidintegrity y /dev/vg_system/lv_test blkdiscard /dev/sda6