Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:lvm

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:lvm [2022/04/08 13:54]
ingo_wichmann alte Version wiederhergestellt (2022/04/06 13:12)
admin_grundlagen:lvm [2024/03/19 10:37] (aktuell)
Zeile 7: Zeile 7:
 {{ :​admin_grundlagen:​lvm.png?​200 |}} {{ :​admin_grundlagen:​lvm.png?​200 |}}
 ====== LVM einrichten ====== ====== LVM einrichten ======
-Pakete installieren ​Debian ​):+===== Pakete installieren ​====== 
 +Debian:
   apt install lvm2 parted   apt install lvm2 parted
  
 +openSuSE:
 +  zypper install lvm
 +
 +===== Partitionierung =====
 LVM-Partition anlegen: LVM-Partition anlegen:
   parted /dev/sda print   parted /dev/sda print
Zeile 50: Zeile 55:
   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 ===
-Mount-Point ​erstellen:+Mountpoint ​erstellen:
   mkdir /​mnt/​lv_test   mkdir /​mnt/​lv_test
  
-logical volume an Mount-Point in Dateisystem ​einhängen:+Logical Volume am Mountpoint ​einhängen:
   mount /​dev/​vg_system/​lv_test /​mnt/​lv_test   mount /​dev/​vg_system/​lv_test /​mnt/​lv_test
  
-Testweise /​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
  
-====== LV vergrößern ​/ verkleinern ​======+====== 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. ​
- 
  
 ===== Logical Volume & Dateisystem vergrößern ===== ===== Logical Volume & Dateisystem vergrößern =====
-  ​lvresize --size +1g --resizefs /​dev/​vg_system/​lv_test +==== Volume und Dateisystem in einem Schritt ==== 
-oder+(geht nicht bei btrfs) 
 +  ​lvresize --size +2g --resizefs /​dev/​vg_system/​lv_test 
 + 
 +==== 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))
   xfs_growfs /​mnt/​lv_test   xfs_growfs /​mnt/​lv_test
  
-====== Snapshot erstellen ======+== btrfs == 
 +((Volume muss nach ''/​mnt/​lv_test''​ gemountet sein)) 
 +  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 -cf lv_test.tar.zstd --use-comp zstd 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
 +LV verkleinern:​
 +  lvreduce --size 3G /​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:
 +  rm lv_test.tar.zstd
 +++++
 +====== Snapshots ======
 (( Falls das Kernel Modul dm-snapshot noch nicht geladen ist: (( Falls das Kernel Modul dm-snapshot noch nicht geladen ist:
   modprobe dm-snapshot   modprobe dm-snapshot
 )) ))
-  lvcreate --snapshot --size 100M --name lv_snapshot1 /​dev/​vg_system/​lv_test +===== Snapshot erstellen & löschen ===== 
-  mkdir /​mnt/​snapshot1 +==== Snapshot erstellen ====
-  mount -o ro /​dev/​vg_system/​lv_snapshot1 /​mnt/​snapshot1+
  
 +  lvcreate --snapshot --size 200M --name lv_snapshot1 /​dev/​vg_system/​lv_test
 +  mkdir /​mnt/​snapshot1
 +  mount -o ro,noatime /​dev/​vg_system/​lv_snapshot1 /​mnt/​snapshot1
 (( bei XFS (( bei XFS
-  ​mount -o ro,nouuid /​dev/​vg_system/​lv_snapshot /​mnt/​snapshot1+UUID vor dem Mounten anpassen: (verändert den Snapshot) 
 +  uuid=$(uuid) 
 +  xfs_admin -U "​$uuid"​ /​dev/​vgsystem/​lvtest1 
 +oder Mount-Option ''​nouuid''​ (ohne Änderung am Snapshot) 
 +  ​mount -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 -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
  
-== Snapshot entfernen == +==== Snapshot entfernen ====
-wie jedes lv+
   umount /​mnt/​snapshot1   umount /​mnt/​snapshot1
   lvremove /​dev/​vg_system/​lv_snapshot1   lvremove /​dev/​vg_system/​lv_snapshot1
 +
 +===== Snapshot erstellen & wiederherstellen =====
 +++++ Snapshot erstellen & wiederherstellen |
 +==== Snapshot erstellen ====
 +  lvcreate --snapshot --size 200M --name lv_snapshot2 /​dev/​vg_system/​lv_test
 +==== Daten im Original LV ändern/​löschen ====
 +  rm -rf /​mnt/​lv_test/​s*
 +==== Zustand aus Snapshot wiederherstellen ====
 +  lvconvert --mergesnapshot /​dev/​vg_system/​lv_snapshot2
 +  lvs
 +  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*
 +++++
 ====== Physical Volume entfernen ====== ====== Physical Volume entfernen ======
 zweites Physical Volume anlegen: zweites Physical Volume anlegen:
Zeile 108: Zeile 167:
   vgreduce vg_system /dev/sda2   vgreduce vg_system /dev/sda2
   pvremove /dev/sda2   pvremove /dev/sda2
-====== Hinweise ====== 
  
-Falls man vergessen hat das LVM in die Fstab einzutragen,​ sind diese nach einem Neustart verschwunden. +====== Logical Volume spiegeln (RAID 1) ====== 
-  ​lvdisplay +++++ Logical Volume spiegeln (RAID 1) | 
-listet die LVMs dann als "LV Status ​             NOT available"​ auf.+zweites Physical Volume anlegen: 
 +  ​pvcreate /dev/sda2 
 +  ​vgextend vg_system /dev/sda2
  
-Lösung: Vgs von Hand aktivieren:+Logical Volume zu RAID 1 konvertieren: 
 +  lvconvert --type raid1 /​dev/​vg_system/​lv_test 
 +  journalctl -kf 
 +(warten bis "​recovery done" erscheint)
  
-  lvchange ​-vg_system +((Unter CentOS 8 testen: 
- +  lvconvert ​--raidintegrity ​y /dev/vg_system/lv_test 
-Es kann praktisch sein, die //extent size// zu ändern, z.B. um sie passend für ein RAID-stripe set zu machen +  ​blkdiscard /dev/sda6 
- +)) 
-  ​vgchange -s 1m +++++ 
-  vgs -v +====== ​Deduplizierung ​====== 
- +++++ Deduplizierung | 
-====== ​Links ====== +Debian: [[https://github.com/dm-vdo/kvdo/issues/​53|Kernel Modul ab Kernel 6.9 mainline und nicht in Debian stable]] 
-  * http://tldp.org/HOWTO/LVM-HOWTO +  * https://blog.defaultroutes.de/talks/sys4-storage
-  * http://www.linux-magazin.de/​heft_abo/​ausgaben/​2005/​10/​ueber_alle_fallen +  * RedHat Doku
-  * https://www.redhat.com/docs/manuals/​enterprise/​RHEL-5-manual/Cluster_Logical_Volume_Manager/​index.html +
-  * http://​www.novell.com/​documentation/​sles10/​sles_admin/​data/​cha_advdisk.html+
  
 +++++
admin_grundlagen/lvm.1649426049.txt.gz · Zuletzt geändert: 2022/04/08 13:54 von ingo_wichmann