Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung | |||
|
lpi1:lvm [2024/03/19 10:37] ingo_wichmann |
lpi1:lvm [2025/10/15 10:05] (aktuell) |
||
|---|---|---|---|
| Zeile 15: | Zeile 15: | ||
| ===== Partitionierung ===== | ===== Partitionierung ===== | ||
| - | LVM-Partition anlegen: | + | Partition mit Typ LVM anlegen: |
| parted /dev/sda print | parted /dev/sda print | ||
| parted /dev/sda set 2 lvm on | parted /dev/sda set 2 lvm on | ||
| Zeile 33: | Zeile 33: | ||
| ====== LV anlegen ====== | ====== LV anlegen ====== | ||
| - | erstes Physical Volume anlegen: | + | LVM-Blockdevice zum Physical Volume machen: |
| pvcreate /dev/sda2 | pvcreate /dev/sda2 | ||
| - | Bestehende Physical Volumes anzeigen: | + | Bestehende Physical Volumes anzeigen: (( oder ausführlicher mit |
| + | pvdisplay | ||
| + | )) | ||
| pvs | pvs | ||
| Zeile 46: | Zeile 48: | ||
| vgchange -a y vg_system | vgchange -a y vg_system | ||
| - | Bestehende Volume Groups anzeigen: | + | Bestehende Volume Groups anzeigen: (( oder ausführlicher mit |
| + | vgdisplay | ||
| + | )) | ||
| vgs | vgs | ||
| Logical Volume mit Namen ''lv_test'' anlegen: | Logical Volume mit Namen ''lv_test'' anlegen: | ||
| - | lvcreate --size 5G --name /dev/vg_system/lv_test | + | lvcreate --size 5G --name lv_test vg_system |
| - | Bestehende Logical Volumes anzeigen: | + | Bestehende Logical Volumes anzeigen: (( oder ausführlicher mit |
| + | lvdisplay | ||
| + | )) | ||
| lvs | lvs | ||
| Zeile 59: | Zeile 65: | ||
| === Testen === | === Testen === | ||
| - | Mountpoint erstellen: | ||
| - | mkdir /mnt/lv_test | ||
| - | |||
| Logical Volume am Mountpoint einhängen: | Logical Volume am Mountpoint einhängen: | ||
| - | mount /dev/vg_system/lv_test /mnt/lv_test | + | mount -m /dev/vg_system/lv_test /mnt/lv_test |
| Testweise Daten aus ''/usr/bin''-Verzeichnis kopieren: | Testweise Daten aus ''/usr/bin''-Verzeichnis kopieren: | ||
| cp -a /usr/bin/. /mnt/lv_test | cp -a /usr/bin/. /mnt/lv_test | ||
| + | df -h /mnt/lv_test | ||
| ====== LV vergrößern ====== | ====== LV vergrößern ====== | ||
| Zeile 73: | Zeile 77: | ||
| ===== Logical Volume & Dateisystem vergrößern ===== | ===== Logical Volume & Dateisystem vergrößern ===== | ||
| ==== Volume und Dateisystem in einem Schritt ==== | ==== Volume und Dateisystem in einem Schritt ==== | ||
| - | (geht nicht bei btrfs) | + | ((geht nicht bei btrfs)) |
| lvresize --size +2g --resizefs /dev/vg_system/lv_test | lvresize --size +2g --resizefs /dev/vg_system/lv_test | ||
| + | df -h /mnt/lv_test | ||
| ==== Volume und Dateisystem in zwei Schritten ==== | ==== Volume und Dateisystem in zwei Schritten ==== | ||
| ++++ Volume und Dateisystem in zwei Schritten | | ++++ Volume und Dateisystem in zwei Schritten | | ||
| Zeile 100: | Zeile 104: | ||
| df -hT . lv_test | df -hT . lv_test | ||
| Backup erstellen: | Backup erstellen: | ||
| - | tar -cf lv_test.tar.zstd --use-comp zstd lv_test/ | + | tar -caf lv_test.tar.zst lv_test/ |
| ext4-Dateisystem aushängen & prüfen: | ext4-Dateisystem aushängen & prüfen: | ||
| umount /mnt/lv_test | umount /mnt/lv_test | ||
| fsck.ext4 -f /dev/mapper/vg_system-lv_test | fsck.ext4 -f /dev/mapper/vg_system-lv_test | ||
| - | ext4-Dateisystem verkleinern: | + | (( ext4-Dateisystem verkleinern: |
| resize2fs /dev/mapper/vg_system-lv_test 3G | resize2fs /dev/mapper/vg_system-lv_test 3G | ||
| - | LV verkleinern: | + | )) |
| - | lvreduce --size 3G /dev/mapper/vg_system-lv_test | + | ext4-Dateisystem und LV verkleinern: |
| + | lvreduce --size 3G --resizefs /dev/mapper/vg_system-lv_test | ||
| Dateisystem wieder einhängen: | Dateisystem wieder einhängen: | ||
| mount /dev/mapper/vg_system-lv_test /mnt/lv_test | mount /dev/mapper/vg_system-lv_test /mnt/lv_test | ||
| - | Wenn die Daten ok sind, Backup löschen: | + | Wenn die Daten ok sind, Backup löschen: ((TODO: tar check command)) |
| rm lv_test.tar.zstd | rm lv_test.tar.zstd | ||
| ++++ | ++++ | ||
| Zeile 120: | Zeile 125: | ||
| ==== Snapshot erstellen ==== | ==== Snapshot erstellen ==== | ||
| - | lvcreate --snapshot --size 200M --name lv_snapshot1 /dev/vg_system/lv_test | + | lvcreate --snapshot --extents 10%ORIGIN --name lv_snapshot1 /dev/vg_system/lv_test |
| - | mkdir /mnt/snapshot1 | + | mount -m -o ro,noatime /dev/vg_system/lv_snapshot1 /mnt/snapshot1 |
| - | mount -o ro,noatime /dev/vg_system/lv_snapshot1 /mnt/snapshot1 | + | |
| (( bei XFS | (( bei XFS | ||
| UUID vor dem Mounten anpassen: (verändert den Snapshot) | UUID vor dem Mounten anpassen: (verändert den Snapshot) | ||
| Zeile 128: | Zeile 132: | ||
| xfs_admin -U "$uuid" /dev/vgsystem/lvtest1 | xfs_admin -U "$uuid" /dev/vgsystem/lvtest1 | ||
| oder Mount-Option ''nouuid'' (ohne Änderung am Snapshot) | oder Mount-Option ''nouuid'' (ohne Änderung am Snapshot) | ||
| - | mount -o ro,noatime,nouuid /dev/vg_system/lv_snapshot /mnt/snapshot1 | + | mount -m -o ro,noatime,nouuid /dev/vg_system/lv_snapshot /mnt/snapshot1 |
| oder (falls es ohne ''norecovery'' nicht geht) | oder (falls es ohne ''norecovery'' nicht geht) | ||
| - | mount -o ro,noatime,nouuid,norecovery /dev/vg_system/lv_snapshot /mnt/snapshot1 | + | mount -m -o ro,noatime,nouuid,norecovery /dev/vg_system/lv_snapshot /mnt/snapshot1 |
| )) | )) | ||
| -> jetzt könnte man eine Kopie von ''/mnt/snapshot1'' auf einen anderen Datenträger ziehen | -> jetzt könnte man eine Kopie von ''/mnt/snapshot1'' auf einen anderen Datenträger ziehen | ||
| Zeile 141: | Zeile 145: | ||
| ++++ Snapshot erstellen & wiederherstellen | | ++++ Snapshot erstellen & wiederherstellen | | ||
| ==== Snapshot erstellen ==== | ==== Snapshot erstellen ==== | ||
| - | lvcreate --snapshot --size 200M --name lv_snapshot2 /dev/vg_system/lv_test | + | lvcreate --snapshot --extents 10%ORIGIN --name lv_snapshot2 /dev/vg_system/lv_test |
| ==== Daten im Original LV ändern/löschen ==== | ==== Daten im Original LV ändern/löschen ==== | ||
| rm -rf /mnt/lv_test/s* | rm -rf /mnt/lv_test/s* | ||
| Zeile 158: | Zeile 162: | ||
| Prüfen, ob Dateien wieder da sind: | Prüfen, ob Dateien wieder da sind: | ||
| ls /mnt/lv_test/s* | ls /mnt/lv_test/s* | ||
| + | ++++ | ||
| + | ====== Speicherplatz überbuchen mit Thinpool ====== | ||
| + | ++++ Speicherplatz überbuchen mit Thinpool | | ||
| + | ===== Speicherplatz für Thinpool reservieren ===== | ||
| + | lvcreate --thinpool thinpool --size 100G vg_system | ||
| + | Prüfen: | ||
| + | lvs | ||
| + | lvdisplay /dev/vg_system/thinpool | ||
| + | ===== thin LV anlegen ===== | ||
| + | lvcreate --thin --virtualsize 10T --name my_thin_lv --thinpool thinpool vg_system | ||
| + | -> Meldungen lesen | ||
| + | mkfs.ext4 /dev/mapper/vg_system-my_thin_lv | ||
| + | mount -m /dev/mapper/abi--vg-my_thin_lv /mnt/thin_air | ||
| + | df -h /mnt/thin_air | ||
| ++++ | ++++ | ||
| ====== Physical Volume entfernen ====== | ====== Physical Volume entfernen ====== | ||
| Zeile 167: | Zeile 185: | ||
| vgreduce vg_system /dev/sda2 | vgreduce vg_system /dev/sda2 | ||
| pvremove /dev/sda2 | pvremove /dev/sda2 | ||
| + | wipefs -af /dev/sda2 | ||
| + | |||
| ====== Logical Volume spiegeln (RAID 1) ====== | ====== Logical Volume spiegeln (RAID 1) ====== | ||