admin_grundlagen:lvm
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| admin_grundlagen:lvm [2022/04/06 13:12] – gelöscht ingo_wichmann | admin_grundlagen:lvm [2026/10/07 09:38] (aktuell) – [Speicherplatz überbuchen mit Thinpool] mm2 | ||
|---|---|---|---|
| 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. | ||
| + | {{ : | ||
| + | ====== LVM einrichten ====== | ||
| + | ===== Pakete installieren ====== | ||
| + | Debian: | ||
| + | apt install lvm2 parted | ||
| + | |||
| + | openSuSE: | ||
| + | zypper install lvm | ||
| + | |||
| + | ===== Partitionierung ===== | ||
| + | Partition mit Typ LVM 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: | ||
| + | < | ||
| + | / | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | ====== LV anlegen ====== | ||
| + | LVM-Blockdevice zum Physical Volume machen: | ||
| + | pvcreate /dev/sda2 | ||
| + | |||
| + | Bestehende Physical Volumes anzeigen: (( oder ausführlicher mit | ||
| + | pvdisplay | ||
| + | )) | ||
| + | pvs | ||
| + | |||
| + | Volume Group mit Namen '' | ||
| + | (( '' | ||
| + | vgcreate vg_system /dev/sda2 | ||
| + | |||
| + | Volume Group aktivieren: (optional) | ||
| + | vgchange -a y vg_system | ||
| + | |||
| + | Bestehende Volume Groups anzeigen: (( oder ausführlicher mit | ||
| + | vgdisplay | ||
| + | )) | ||
| + | vgs | ||
| + | |||
| + | Logical Volume mit Namen '' | ||
| + | lvcreate --size 5G --name lv_test vg_system | ||
| + | |||
| + | Bestehende Logical Volumes anzeigen: (( oder ausführlicher mit | ||
| + | lvdisplay | ||
| + | )) | ||
| + | lvs | ||
| + | |||
| + | Formatieren ( hier mit ext4-Dateisystem ): | ||
| + | mkfs.ext4 / | ||
| + | |||
| + | === Testen === | ||
| + | Logical Volume am Mountpoint einhängen: | ||
| + | mount -m / | ||
| + | |||
| + | Testweise Daten aus ''/ | ||
| + | cp -a / | ||
| + | df -h / | ||
| + | |||
| + | ====== LV vergrößern ====== | ||
| + | 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. | ||
| + | |||
| + | ===== Logical Volume & Dateisystem vergrößern ===== | ||
| + | ==== Volume und Dateisystem in einem Schritt ==== | ||
| + | ((geht nicht bei btrfs)) | ||
| + | lvresize --size +2g --resizefs / | ||
| + | df -h / | ||
| + | ==== Volume und Dateisystem in zwei Schritten ==== | ||
| + | ++++ Volume und Dateisystem in zwei Schritten | | ||
| + | === LV vergrößern === | ||
| + | lvextend -L +2g / | ||
| + | |||
| + | === Dateisystem vergrößern === | ||
| + | == ext3/4 == | ||
| + | resize2fs / | ||
| + | |||
| + | == xfs == | ||
| + | ((Volume muss nach ''/ | ||
| + | xfs_growfs / | ||
| + | |||
| + | == btrfs == | ||
| + | ((Volume muss nach ''/ | ||
| + | btrfs filesystem resize max / | ||
| + | |||
| + | ++++ | ||
| + | ====== LV verkleinern ====== | ||
| + | ++++ LV verkleinern | | ||
| + | geht nur mit ext2/3/4 Dateisystem | ||
| + | cd /mnt | ||
| + | df -hT . lv_test | ||
| + | Backup erstellen: | ||
| + | tar -caf lv_test.tar.zst lv_test/ | ||
| + | ext4-Dateisystem aushängen & prüfen: | ||
| + | umount / | ||
| + | fsck.ext4 -f / | ||
| + | (( ext4-Dateisystem verkleinern: | ||
| + | resize2fs / | ||
| + | )) | ||
| + | ext4-Dateisystem und LV verkleinern: | ||
| + | lvreduce --size 3G --resizefs / | ||
| + | Dateisystem wieder einhängen: | ||
| + | mount / | ||
| + | Wenn die Daten ok sind, Backup löschen: ((TODO: tar check command)) | ||
| + | rm lv_test.tar.zst | ||
| + | ++++ | ||
| + | ====== Snapshots ====== | ||
| + | (( Falls das Kernel Modul '' | ||
| + | modprobe dm-snapshot | ||
| + | )) | ||
| + | ===== Snapshot erstellen & löschen ===== | ||
| + | ==== Snapshot erstellen ==== | ||
| + | |||
| + | lvcreate --snapshot --extents 10%ORIGIN --name lv_snapshot1 / | ||
| + | mount -m -o ro,noatime / | ||
| + | (( bei XFS | ||
| + | UUID vor dem Mounten anpassen: (verändert den Snapshot) | ||
| + | uuid=$(uuid) | ||
| + | xfs_admin -U " | ||
| + | oder Mount-Option '' | ||
| + | mount -m -o ro, | ||
| + | oder (falls es ohne '' | ||
| + | mount -m -o ro, | ||
| + | )) | ||
| + | -> jetzt könnte man z.B. eine Kopie von ''/ | ||
| + | |||
| + | ==== Snapshot entfernen ==== | ||
| + | umount / | ||
| + | lvremove / | ||
| + | |||
| + | ===== Snapshot erstellen & wiederherstellen ===== | ||
| + | ++++ Snapshot erstellen & wiederherstellen | | ||
| + | ==== Snapshot erstellen ==== | ||
| + | lvcreate --snapshot --extents 10%ORIGIN --name lv_snapshot2 / | ||
| + | ==== Daten im Original LV ändern/ | ||
| + | rm -rf / | ||
| + | ==== Zustand aus Snapshot wiederherstellen ==== | ||
| + | lvconvert --mergesnapshot / | ||
| + | lvs | ||
| + | lvdisplay / | ||
| + | ls / | ||
| + | Dateisystem aushängen: | ||
| + | umount / | ||
| + | LV deaktivieren & wieder aktivieren: | ||
| + | lvchange -an / | ||
| + | lvchange -ay / | ||
| + | Dateisystem wieder einhängen: | ||
| + | mount / | ||
| + | Prüfen, ob Dateien wieder da sind: | ||
| + | ls / | ||
| + | ++++ | ||
| + | ====== Speicherplatz überbuchen mit Thinpool ====== | ||
| + | ++++ Speicherplatz überbuchen mit Thinpool | | ||
| + | ===== Speicherplatz für Thinpool reservieren ===== | ||
| + | lvcreate --thinpool thinpool --size 100G vg_system | ||
| + | Prüfen: | ||
| + | lvs | ||
| + | lvdisplay / | ||
| + | ===== thin LV anlegen ===== | ||
| + | lvcreate --thin --virtualsize 10T --name my_thin_lv --thinpool thinpool vg_system | ||
| + | -> Meldungen lesen | ||
| + | mkfs.ext4 / | ||
| + | mount -m / | ||
| + | df -h / | ||
| + | ++++ | ||
| + | ====== 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 | ||
| + | wipefs -af /dev/sda2 | ||
| + | |||
| + | |||
| + | ====== Logical Volume spiegeln (RAID 1) ====== | ||
| + | ++++ Logical Volume spiegeln (RAID 1) | | ||
| + | zweites Physical Volume anlegen: | ||
| + | pvcreate /dev/sda2 | ||
| + | vgextend vg_system /dev/sda2 | ||
| + | |||
| + | Logical Volume zu RAID 1 konvertieren: | ||
| + | lvconvert --type raid1 / | ||
| + | journalctl -kf | ||
| + | (warten bis " | ||
| + | |||
| + | ((Unter CentOS 8 testen: | ||
| + | lvconvert --raidintegrity y / | ||
| + | blkdiscard /dev/sda6 | ||
| + | )) | ||
| + | ++++ | ||
| + | ====== Deduplizierung ====== | ||
| + | ++++ Deduplizierung | | ||
| + | Debian: [[https:// | ||
| + | * https:// | ||
| + | * RedHat Doku | ||
| + | |||
| + | ++++ | ||
admin_grundlagen/lvm.1649250735.txt.gz · Zuletzt geändert: 2022/04/06 13:12 von ingo_wichmann
