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 [2013/11/06 09:33] – 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) ====== | ====== Aufbau eines logical volumes (LV) ====== | ||
| - | Ein LV besteht aus mehreren Ebenen. Die unterste Ebene bilden die sogenannten physical volumes ( PV ).\\ | + | Ein LV besteht aus mehreren Ebenen. Die unterste Ebene bilden die sogenannten |
| - | Mehrere PVs kann man nun zusammenfassen zu einer logischen Einheit, der sogenannten volume group ( VG ).\\ | + | Mehrere PVs kann man nun zusammenfassen zu einer logischen Einheit, der sogenannten |
| - | Auf der VG kann man nun logical volumes ( LV ) erzeugen, die eine beliebige Größe haben können.\\ | + | 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. | In der Summe können die LVs die Größe der VG natürlich nicht überschreiten. | ||
| + | {{ : | ||
| ====== 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 ) | + | |
| - | 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 |
| - | lvcreate --size | + | |
| - | Bestehende Logical Volumes anzeigen: | + | Bestehende Logical Volumes anzeigen: |
| + | lvdisplay | ||
| + | )) | ||
| lvs | lvs | ||
| - | Formatieren ( hier mit ext3-FilesSystem | + | Formatieren ( hier mit ext4-Dateisystem |
| mkfs.ext4 / | mkfs.ext4 / | ||
| === Testen === | === Testen === | ||
| - | Mount-Point erstellen: | + | Logical Volume am Mountpoint |
| - | mkdir / | + | mount -m / |
| - | logical volume an Mount-Point in Dateisystem | + | |
| - | mount / | + | |
| - | Testweise bin-Verzeichnis kopieren: | + | |
| - | cp -a / | + | |
| - | ====== LV vergrößern | + | Testweise Daten aus '' |
| - | Der Vorteil eines LV ist, daß es zur Laufzeit vergrößert und verkleinert werden kann.\\ | + | cp -a /usr/share/. / |
| + | df -h / | ||
| - | ===== Volume Group um PV vergrößern ===== | + | ====== LV vergrößern |
| - | nur falls auf Volume Group nicht mehr genug Platz | + | 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. |
| - | vgextend <Name Volume group> <Name physical volume> | + | |
| - | vgextend vg_system /dev/sda5 | + | |
| - | ===== Logical Volume vergrößern ===== | + | ===== Logical Volume |
| - | | + | ==== Volume und Dateisystem in einem Schritt ==== |
| - | | + | ((geht nicht bei btrfs)) |
| - | ===== Dateisystem | + | |
| - | ==== ext3 ==== | + | |
| - | | + | ==== Volume und Dateisystem |
| + | ++++ Volume und Dateisystem in zwei Schritten | | ||
| + | === LV vergrößern | ||
| + | | ||
| - | ==== xfs ==== | + | === Dateisystem vergrößern |
| - | | + | == ext3/ |
| + | | ||
| + | == xfs == | ||
| + | ((Volume muss nach ''/ | ||
| + | xfs_growfs / | ||
| - | ====== Snapshot erstellen ====== | + | == btrfs == |
| + | ((Volume muss nach ''/ | ||
| + | btrfs filesystem resize max / | ||
| - | (( Falls das Kernel Modul dm-snapshot | + | ++++ |
| + | ====== 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 | modprobe dm-snapshot | ||
| )) | )) | ||
| - | mount -o remount,ro / | + | ===== Snapshot |
| - | lvcreate --snapshot --size 100M --name lv_snapshot / | + | ==== Snapshot erstellen |
| - | mount -o ro / | + | |
| - | (( Vorsicht bei XFS, das Snapshot | + | |
| - | ====== | + | |
| - | Falls man vergessen hat das LVM in die Fstab einzutragen, sind diese nach einem Neustart verschwunden. | + | lvcreate --snapshot --extents 10%ORIGIN --name lv_snapshot1 / |
| - | | + | mount -m -o ro,noatime / |
| - | listet die LVMs dann als "LV Status | + | (( bei XFS |
| + | UUID vor dem Mounten anpassen: (verändert den Snapshot) | ||
| + | | ||
| + | | ||
| + | oder Mount-Option '' | ||
| + | mount -m -o ro, | ||
| + | oder (falls es ohne '' | ||
| + | mount -m -o ro, | ||
| + | )) | ||
| + | -> jetzt könnte man z.B. eine Kopie von ''/ | ||
| - | Lösung: Vgs von Hand aktivieren: | + | ==== 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 -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 | ||
| + | pvmove /dev/sda2 | ||
| + | vgreduce vg_system /dev/sda2 | ||
| + | pvremove /dev/sda2 | ||
| + | wipefs -af /dev/sda2 | ||
| - | ====== Links ====== | ||
| - | * http:// | ||
| - | * http:// | ||
| - | * https:// | ||
| - | * http:// | ||
| + | ====== 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.1383730401.txt.gz · Zuletzt geändert: 2013/11/06 09:33 (Externe Bearbeitung)
