LVM Misc
Version vom 16. Juli 2024, 18:03 Uhr von Thomas.will (Diskussion | Beiträge)
Volumen Gruppe aktivieren
root@zero:~# vgchange -a y
Erweiterte LVM-Aufgaben
Snapshots
Erstellen eines Snapshots des Logical Volumes "speicher"
- lvcreate --size 1G --snapshot --name speicher_snapshot /dev/daten/speicher
- mkdir /mnt/speicher_snapshot
- mount /dev/daten/speicher_snapshot /mnt/speicher_snapshot
Überprüfen des Inhalts des Snapshots
- ls /mnt/speicher_snapshot
Ändern einiger Dateien im Original-Logical-Volume
- echo "Test" > /daten/speicher/testfile
Überprüfen, ob die Änderungen im Snapshot sichtbar sind
- ls /mnt/speicher_snapshot/testfile
Löschen des Snapshots
- umount /mnt/speicher_snapshot
- lvremove /dev/daten/speicher_snapshot
Spiegelung
Erstellen einer Spiegelung des Logical Volumes "speicher"
- lvconvert --type mirror --mirrors 1 /dev/daten/speicher
Überprüfen des Status der Spiegelung
- lvdisplay /dev/daten/speicher
Simulieren des Ausfalls einer der Festplatten
- pvcreate /dev/sdf1
- vgextend daten /dev/sdf1
- lvconvert --replace /dev/sde1 /dev/daten/speicher
Überprüfen, ob die Spiegelung weiterhin funktioniert
- lvdisplay /dev/daten/speicher
Reparieren der Spiegelung
- lvconvert --repair /dev/daten/speicher
Stripesets
Erstellen eines Stripeset-Logical-Volumes
- lvcreate --size 10G --stripes 2 --name stripeset /dev/daten
Überprüfen der Leistung des Stripesets
- fio --name=write_test --size=1G --filename=/dev/daten/stripeset --bs=4k --rw=write --direct=1
Erweitern des Stripesets um eine weitere Partition
- lvextend --size +5G /dev/daten/stripeset
Erneutes Überprüfen der Leistung
- fio --name=write_test --size=1G --filename=/dev/daten/stripeset --bs=4k --rw=write --direct=1
Komprimierung
Erstellen eines Logical Volumes mit Komprimierung
- lvcreate --size 10G --name compress_lv /dev/daten
- mkfs.btrfs /dev/daten/compress_lv
- mount -o compress /dev/daten/compress_lv /daten/compress_lv
Überprüfen des Speicherplatzgewinns durch Komprimierung
- cp /path/to/large/file /daten/compress_lv
- df -h /daten/compress_lv
Migration
Migrieren eines Logical Volumes zu einer anderen Volume Group
- vgcreate neue_vg /dev/sdg1
- lvconvert --splitmirrors 1 --name speicher_mirror /dev/daten/speicher
- vgextend neue_vg /dev/speicher_mirror
- lvconvert --merge /dev/neue_vg/speicher_mirror
Überprüfen der Integrität der Daten nach der Migration
- ls /daten/speicher
Erstellen eines Backups des Logical Volumes und Wiederherstellen auf einer anderen Maschine
- dd if=/dev/daten/speicher of=/path/to/backup.img
- scp /path/to/backup.img user@remote:/path/to/remote/backup.img
- dd if=/path/to/remote/backup.img of=/dev/remote_vg/remote_lv
Automatisierung
Schreiben eines Shell-Skripts zur automatischen Erstellung, Formatierung und Mounten eines Logical Volumes
- !/bin/bash
lvcreate --size 10G --name autoscript_lv /dev/daten mkfs.ext4 /dev/daten/autoscript_lv mkdir -p /mnt/autoscript_lv mount /dev/daten/autoscript_lv /mnt/autoscript_lv
Fügen Sie Funktionen hinzu, um regelmäßig Snapshots zu erstellen und diese nach einer bestimmten Zeit zu löschen
- !/bin/bash
lvcreate --size 1G --snapshot --name autoscript_snapshot /dev/daten/autoscript_lv sleep 3600 umount /mnt/autoscript_snapshot lvremove /dev/daten/autoscript_snapshot
Performance-Tuning
Untersuchen der Auswirkungen verschiedener Stripe-Größen auf die Leistung
- lvcreate --size 10G --stripes 2 --stripesize 4K --name stripe4k_lv /dev/daten
- lvcreate --size 10G --stripes 2 --stripesize 64K --name stripe64k_lv /dev/daten
- fio --name=write_test --size=1G --filename=/dev/daten/stripe4k_lv --bs=4k --rw=write --direct=1
- fio --name=write_test --size=1G --filename=/dev/daten/stripe64k_lv --bs=4k --rw=write --direct=1
Erweiterung über mehrere Volumes
Erstellen einer Volume Group mit Partitionen von mehreren physischen Festplatten
- vgcreate multi_vg /dev/sdh1 /dev/sdi1 /dev/sdj1
Erstellen und Erweitern eines Logical Volumes über diese Partitionen
- lvcreate --size 15G --name multi_lv /dev/multi_vg
- lvextend --size +5G /dev/multi_vg/multi_lv
- resize2fs /dev/multi_vg/multi_lv
Überprüfen der Performance
- fio --name=write_test --size=1G --filename=/dev/multi_vg/multi_lv --bs=4k --rw=write --direct=1