Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:lvm

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:lvm [2024/02/25 05:00] – [LV anlegen] ingo_wichmannadmin_grundlagen:lvm [2026/10/07 09:38] (aktuell) – [Speicherplatz überbuchen mit Thinpool] mm2
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
  
-Formatieren ( hier mit ext4-FilesSystem ):+Formatieren ( hier mit ext4-Dateisystem ):
   mkfs.ext4 /dev/vg_system/lv_test   mkfs.ext4 /dev/vg_system/lv_test
  
 === Testen === === Testen ===
-Mountpoint erstellen: +Logical Volume am Mountpoint einhängen: 
-  mkdir /mnt/lv_test+  mount -m /dev/vg_system/lv_test /mnt/lv_test
  
-logical volume am Mount-Point einhängen: +Testweise Daten aus ''/usr/share''-Verzeichnis kopieren: 
-  mount /dev/vg_system/lv_test /mnt/lv_test+  cp -a /usr/share/. /mnt/lv_test 
 +  df -h /mnt/lv_test
  
-Testweise Daten aus ''/usr/bin''-Verzeichnis kopieren: +====== LV vergrößern ======
-  cp -a /usr/bin/. /mnt/lv_test +
- +
-====== LV vergrößern / verkleinern ======+
 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. 
- 
  
 ===== 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 +1g --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 |
 +=== LV vergrößern ===
   lvextend -L +2g /dev/vg_system/lv_test   lvextend -L +2g /dev/vg_system/lv_test
  
-Dateisystem vergrößern: +=== Dateisystem vergrößern === 
-=== ext3/4 === +== ext3/4 ==
   resize2fs /dev/vg_system/lv_test   resize2fs /dev/vg_system/lv_test
  
-=== xfs ===+== xfs ==
 ((Volume muss nach ''/mnt/lv_test'' gemountet sein)) ((Volume muss nach ''/mnt/lv_test'' gemountet sein))
   xfs_growfs /mnt/lv_test   xfs_growfs /mnt/lv_test
  
-=== btrfs ===+== btrfs ==
 ((Volume muss nach ''/mnt/lv_test'' gemountet sein)) ((Volume muss nach ''/mnt/lv_test'' gemountet sein))
   btrfs filesystem resize max /mnt/lv_test   btrfs filesystem resize max /mnt/lv_test
  
 +++++
 +====== 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 /mnt/lv_test
 +  fsck.ext4 -f /dev/mapper/vg_system-lv_test
 +(( ext4-Dateisystem verkleinern:
 +  resize2fs /dev/mapper/vg_system-lv_test 3G
 +))
 +ext4-Dateisystem und LV verkleinern:
 +  lvreduce --size 3G --resizefs /dev/mapper/vg_system-lv_test
 +Dateisystem wieder einhängen:
 +  mount /dev/mapper/vg_system-lv_test /mnt/lv_test
 +Wenn die Daten ok sind, Backup löschen: ((TODO: tar check command))
 +  rm lv_test.tar.zst
 +++++
 ====== Snapshots ====== ====== Snapshots ======
-(( Falls das Kernel Modul dm-snapshot noch nicht geladen ist:+(( Falls das Kernel Modul ''dm-snapshot'' nicht automatisch geladen wird:
   modprobe dm-snapshot   modprobe dm-snapshot
 )) ))
Zeile 100: 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)
-  uuid +  uuid=$(uuid) 
-  xfs_admin -U 97194112-5d40-11ee-9311-a7af42c4cc96 /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,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,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 z.B. eine Kopie von ''/mnt/snapshot1'' auf einen anderen Datenträger ziehen
  
 ==== Snapshot entfernen ==== ==== Snapshot entfernen ====
Zeile 118: Zeile 142:
   lvremove /dev/vg_system/lv_snapshot1   lvremove /dev/vg_system/lv_snapshot1
  
-====== Snapshot erstellen & wiederherstellen ======+===== 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 ==== +==== Daten im Original LV ändern/löschen ==== 
- +  rm -rf /mnt/lv_test/s* 
-===== Snapshot wiederherstellen ===== +==== Zustand aus Snapshot wiederherstellen ==== 
- +  lvconvert --mergesnapshot /dev/vg_system/lv_snapshot2 
-  lvconvert --merge /dev/vg_system/lv_snapshot1 +  lvs 
-  lvchange --refresh /dev/vg_system/lv_test +  lvdisplay /dev/vg_system/lv_test 
 +  ls /mnt/lv_test/s* 
 +Dateisystem aushängen: 
 +  umount /mnt/lv_test 
 +LV deaktivieren & wieder aktivieren: 
 +  lvchange -an /dev/vg_system/lv_test 
 +  lvchange -ay /dev/vg_system/lv_test 
 +Dateisystem wieder einhängen: 
 +  mount /dev/vg_system/lv_test /mnt/lv_test 
 +Prüfen, ob Dateien wieder da sind: 
 +  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/vg_system-my_thin_lv /mnt/thin_air 
 +  df -h /mnt/thin_air 
 +++++
 ====== Physical Volume entfernen ====== ====== Physical Volume entfernen ======
 zweites Physical Volume anlegen: zweites Physical Volume anlegen:
Zeile 136: 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) ======
 +++++ Logical Volume spiegeln (RAID 1) |
 zweites Physical Volume anlegen: zweites Physical Volume anlegen:
   pvcreate /dev/sda2   pvcreate /dev/sda2
Zeile 151: Zeile 203:
   blkdiscard /dev/sda6   blkdiscard /dev/sda6
 )) ))
 +++++
 ====== Deduplizierung ====== ====== Deduplizierung ======
-Debian: [[https://github.com/dm-vdo/kvdo/issues/53|Kernel Modul noch nicht mainline und nicht in Debian stable]]+++++ Deduplizierung | 
 +Debian: [[https://github.com/dm-vdo/kvdo/issues/53|Kernel Modul ab Kernel 6.9 mainline und nicht in Debian stable]]
   * https://blog.defaultroutes.de/talks/sys4-storage/   * https://blog.defaultroutes.de/talks/sys4-storage/
   * RedHat Doku   * RedHat Doku
  
 +++++
admin_grundlagen/lvm.1708837222.txt.gz · Zuletzt geändert: 2024/02/25 05:00 von ingo_wichmann