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 [2016/08/16 17:44] – [Snapshot erstellen] ingo_wichmann | admin_grundlagen:lvm [2026/10/07 09:38] (aktuell) – [Speicherplatz überbuchen mit Thinpool] mm2 | ||
|---|---|---|---|
| Zeile 7: | Zeile 7: | ||
| {{ : | {{ : | ||
| ====== LVM einrichten ====== | ====== LVM einrichten ====== | ||
| - | Pakete installieren | + | ===== Pakete installieren |
| - | | + | Debian: |
| + | | ||
| - | Kernel Modul laden (Ubuntu): | + | openSuSE: |
| - | | + | |
| - | Boot-Initialisierung einrichten: ( SuSE ) | + | ===== Partitionierung ===== |
| - | / | + | Partition mit Typ LVM anlegen: |
| - | chkconfig boot.lvm on | + | |
| - | + | ||
| - | Boot-Initialisierung einrichten: ( Debian -6) | + | |
| - | service lvm2 start | + | |
| - | / | + | |
| - | + | ||
| - | LVM-Partition | + | |
| parted /dev/sda print | parted /dev/sda print | ||
| parted /dev/sda set 2 lvm on | parted /dev/sda set 2 lvm on | ||
| parted /dev/sda set 3 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 ====== | ====== LV anlegen ====== | ||
| - | Physical Volume | + | LVM-Blockdevice zum Physical Volume |
| pvcreate /dev/sda2 | pvcreate /dev/sda2 | ||
| - | pvcreate /dev/sda3 | ||
| - | Bestehende Physical Volumes anzeigen: | + | Bestehende Physical Volumes anzeigen: |
| + | pvdisplay | ||
| + | )) | ||
| pvs | pvs | ||
| - | Volume Group anlegen | + | Volume Group mit Namen '' |
| (( '' | (( '' | ||
| - | '' | + | |
| - | | + | |
| - | Volume Group aktivieren: | + | Volume Group aktivieren: |
| vgchange -a y vg_system | vgchange -a y vg_system | ||
| - | Bestehende Volume Groups anzeigen: | + | Bestehende Volume Groups anzeigen: |
| + | vgdisplay | ||
| + | )) | ||
| vgs | vgs | ||
| - | Logical Volume | + | Logical Volume |
| - | lvcreate --size 5G --name | + | lvcreate --size 5G --name lv_test |
| - | Bestehende Logical Volumes anzeigen: | + | Bestehende Logical Volumes anzeigen: |
| + | lvdisplay | ||
| + | )) | ||
| lvs | lvs | ||
| - | Formatieren ( hier mit ext3-FilesSystem | + | Formatieren ( hier mit ext4-Dateisystem |
| - | mkfs.ext3 / | + | mkfs.ext4 / |
| === Testen === | === Testen === | ||
| - | Mount-Point erstellen: | + | Logical Volume am Mountpoint einhängen: |
| - | | + | |
| - | logical volume an Mount-Point in Dateisystem einhängen: | + | Testweise Daten aus ''/ |
| - | | + | |
| + | df -h / | ||
| - | Testweise bin-Verzeichnis kopieren: | + | ====== LV vergrößern ====== |
| - | cp -a /home/. / | + | |
| - | + | ||
| - | ====== 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. | 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 ===== | ===== Logical Volume & Dateisystem vergrößern ===== | ||
| - | | + | ==== Volume und Dateisystem in einem Schritt ==== |
| - | oder | + | ((geht nicht bei btrfs)) |
| - | lvextend -L +2g / | + | |
| + | df -h / | ||
| + | ==== Volume und Dateisystem in zwei Schritten ==== | ||
| + | ++++ Volume und Dateisystem in zwei Schritten | | ||
| + | === LV vergrößern === | ||
| + | lvextend -L +2g / | ||
| - | Dateisystem vergrößern: | + | === Dateisystem vergrößern |
| - | | + | == ext3/4 == |
| + | resize2fs / | ||
| - | resize2fs | + | == xfs == |
| + | ((Volume muss nach '' | ||
| + | xfs_growfs | ||
| - | * xfs | + | == btrfs == |
| + | ((Volume muss nach ''/ | ||
| + | btrfs filesystem resize max / | ||
| - | xfs_growfs | + | ++++ |
| - | + | ====== LV verkleinern ====== | |
| - | ====== | + | ++++ LV verkleinern | |
| - | + | geht nur mit ext2/3/4 Dateisystem | |
| - | (( Falls das Kernel Modul dm-snapshot | + | 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 | ||
| + | ++++ | ||
| + | ====== | ||
| + | (( Falls das Kernel Modul '' | ||
| modprobe dm-snapshot | modprobe dm-snapshot | ||
| )) | )) | ||
| - | mount -o remount,ro / | + | ===== Snapshot erstellen & löschen ===== |
| - | lvcreate --snapshot --size 100M --name lv_snapshot / | + | ==== Snapshot |
| - | mount -o ro / | + | |
| - | (( < | + | |
| + | 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 ====== | ====== Physical Volume entfernen ====== | ||
| + | zweites Physical Volume anlegen: | ||
| + | pvcreate /dev/sda3 | ||
| + | vgextend vg_system /dev/sda3 | ||
| + | |||
| pvmove /dev/sda2 | pvmove /dev/sda2 | ||
| - | vgreduce | + | vgreduce |
| pvremove /dev/sda2 | pvremove /dev/sda2 | ||
| - | ====== Hinweise ====== | + | wipefs -af /dev/sda2 |
| - | Falls man vergessen hat das LVM in die Fstab einzutragen, | ||
| - | lvdisplay | ||
| - | listet die LVMs dann als "LV Status | ||
| - | Lösung: Vgs von Hand aktivieren: | + | ====== Logical Volume spiegeln (RAID 1) ====== |
| + | ++++ Logical Volume spiegeln (RAID 1) | | ||
| + | zweites Physical Volume anlegen: | ||
| + | pvcreate /dev/sda2 | ||
| + | vgextend vg_system /dev/sda2 | ||
| - | lvchange | + | Logical Volume zu RAID 1 konvertieren: |
| + | lvconvert | ||
| + | journalctl -kf | ||
| + | (warten bis " | ||
| - | Es kann praktisch sein, die //extent size// zu ändern, z.B. um sie passend für ein RAID-stripe set zu machen | + | ((Unter CentOS 8 testen: |
| - | + | lvconvert --raidintegrity y /dev/vg_system/lv_test | |
| - | | + | |
| - | vgs -v | + | )) |
| - | + | ++++ | |
| - | ====== | + | ====== |
| - | * http://tldp.org/HOWTO/LVM-HOWTO | + | ++++ Deduplizierung | |
| - | * http://www.linux-magazin.de/ | + | Debian: [[https://github.com/dm-vdo/kvdo/issues/ |
| - | * https://www.redhat.com/docs/manuals/ | + | * https://blog.defaultroutes.de/talks/sys4-storage/ |
| - | * http:// | + | * RedHat Doku |
| + | ++++ | ||
admin_grundlagen/lvm.1471369477.txt.gz · Zuletzt geändert: 2016/08/16 17:44 von ingo_wichmann
