Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi1: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
Letzte Überarbeitung Beide Seiten, nächste Überarbeitung
lpi1:lvm [2016/03/10 14:02]
ingo_wichmann [Logical Volume vergrößern]
lpi1:lvm [2024/03/19 10:33]
ingo_wichmann [Deduplizierung]
Zeile 7: Zeile 7:
 {{ :​admin_grundlagen:​lvm.png?​200 |}} {{ :​admin_grundlagen:​lvm.png?​200 |}}
 ====== LVM einrichten ====== ====== LVM einrichten ======
-Pakete installieren ​Debian ​)+===== Pakete installieren ​====== 
-  ​aptitude ​install lvm2 parted+Debian: 
 +  ​apt install lvm2 parted
  
-Kernel Modul laden (Ubuntu)+openSuSE
-  ​modprobe dm_mod +  ​zypper install ​lvm
- +
-Boot-Initialisierung einrichten: ( SuSE ) +
-  /​etc/​init.d/​boot.lvm start +
-  chkconfig boot.lvm on +
- +
-Boot-Initialisierung einrichten: ( Debian -6) +
-  service lvm2 start +
-  /​etc/​init.d/​lvm2 start+
  
 +===== Partitionierung =====
 LVM-Partition anlegen: LVM-Partition anlegen:
   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:
 +<​file>​
 +/​dev/​sda2 ​  ​30212096 ​ 59572223 29360128 ​   14G Linux LVM
 +/​dev/​sda3 ​  ​59572224 ​ 90114190 30541967 ​ 14,6G Linux LVM
 +</​file>​
  
 ====== LV anlegen ====== ====== LV anlegen ======
-Physical Volume anlegen:+erstes ​Physical Volume anlegen:
   pvcreate /dev/sda2   pvcreate /dev/sda2
-  pvcreate /dev/sda3 
  
 Bestehende Physical Volumes anzeigen: Bestehende Physical Volumes anzeigen:
   pvs   pvs
  
-Volume Group anlegen ​( bestehend aus den zwei physical volumes ):+Volume Group mit Namen ''​vg_system'' ​anlegen:
 (( ''​-''​ ( Minus ) in VG und LV Namen besser vermeiden )) (( ''​-''​ ( Minus ) in VG und LV Namen besser vermeiden ))
-''​vg_system''​ ist hier der Name der VolumeGroup +  ​vgcreate vg_system /dev/sda2
-  ​vgcreate vg_system /​dev/​sda2 ​/dev/sda3+
  
-Volume Group aktivieren:+Volume Group aktivieren: ​(optional)
   vgchange -a y vg_system   vgchange -a y vg_system
  
Zeile 45: Zeile 49:
   vgs   vgs
  
-Logical Volume ​anlegen: +Logical Volume ​mit Namen ''​lv_test'' ​anlegen: 
-''​lv_test'' ​ist hier der Name des LogicalVolume +  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:
   lvs   lvs
  
-Formatieren ( hier mit ext3-FilesSystem ​): +Formatieren ( hier mit ext4-Dateisystem ​): 
-  mkfs.ext3 /​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 bin-Verzeichnis kopieren: 
-  cp -a /home/. /​mnt/​lv_test 
  
-====== LV vergrößern ​verkleinern ====== +Testweise Daten aus ''​/usr/​bin''​-Verzeichnis kopieren: 
-Der Vorteil eines LV ist, daß es zur Laufzeit vergrößert und verkleinert werden kann.\\ +  cp -a /usr/bin//​mnt/​lv_test
  
-===== 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 ​& Dateisystem ​vergrößern ===== 
-  lvextend -L +2g /​dev/​vg_system/​LogVol00 +==== Volume und Dateisystem ​in einem Schritt ​==== 
-  lvresize --size +1g --resizefs /​dev/​vg_system/​LogVol01 +(geht nicht bei btrfs) 
-====Dateisystem ​vergrößern ===== +  ​lvresize --size +2g --resizefs ​/​dev/​vg_system/​lv_test
-==== ext3 ==== +
-  ​resize2fs ​/​dev/​vg_system/​LogVol00+
  
-==== xfs ==== +++++ Volume und Dateisystem in zwei Schritten | 
-  ​xfs_growfs ​/home+==== Volume und Dateisystem in zwei Schritten ​==== 
 +=== LV vergrößern ​=== 
 +  ​lvextend -L +2g /​dev/​vg_system/lv_test
  
 +=== Dateisystem vergrößern ===
 +== ext3/4 ==
 +  resize2fs /​dev/​vg_system/​lv_test
  
-====== Snapshot erstellen ======+== xfs == 
 +((Volume muss nach ''/​mnt/​lv_test''​ gemountet sein)) 
 +  xfs_growfs /​mnt/​lv_test
  
 +== 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
 )) ))
-  mount -o remount,ro /​dev/​vg_system/​lv_test +===== Snapshot ​erstellen & löschen ​===== 
-  lvcreate --snapshot --size 100M --name lv_snapshot /​dev/​vg_system/​lv_test +==== Snapshot erstellen ​====
-  mount -o ro /​dev/​vg_system/​lv_snapshot /mnt/ +
-(( Vorsicht bei XFS, das Snapshot ​wird nicht lesbar sein. Generell eine gute Idee, das Volume vorher read-only zu mounten )) +
-====== ​Hinweise ​======+
  
-Falls man vergessen hat das LVM in die Fstab einzutragensind diese nach einem Neustart verschwunden. +  lvcreate --snapshot --size 200M --name lv_snapshot1 /​dev/​vg_system/​lv_test 
-  ​lvdisplay +  mkdir /​mnt/​snapshot1 
-listet die LVMs dann als "LV Status ​             NOT available" auf.+  mount -o ro,noatime /​dev/​vg_system/​lv_snapshot1 /​mnt/​snapshot1 
 +(( bei XFS 
 +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) 
 +  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
  
-Lösung: Vgs von Hand aktivieren:+==== Snapshot entfernen ==== 
 +  umount /​mnt/​snapshot1 
 +  lvremove /​dev/​vg_system/​lv_snapshot1
  
-  ​lvchange -a y vg_system+++++ 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 ====== 
 +zweites Physical Volume anlegen: 
 +  pvcreate /dev/sda3 
 +  vgextend ​vg_system ​/dev/sda3
  
-Es kann praktisch sein, die //extent size// zu ändern, z.B. um sie passend für ein RAID-stripe set zu machen+  pvmove ​/dev/sda2 
 +  vgreduce vg_system ​/dev/sda2 
 +  pvremove /dev/sda2
  
-  vgchange ​-s 1m +++++ Logical Volume spiegeln (RAID 1) | 
-  ​vgs -v+====== 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 /​dev/​vg_system/​lv_test 
 +  ​journalctl ​-kf 
 +(warten bis "​recovery done" erscheint) 
 + 
 +((Unter CentOS 8 testen: 
 +  lvconvert --raidintegrity y /​dev/​vg_system/​lv_test 
 +  blkdiscard /dev/sda6 
 +)) 
 +++++ 
 +++++ Deduplizierung |
  
-====== ​Links ====== +====== ​Deduplizierung ​====== 
-  * http://tldp.org/HOWTO/LVM-HOWTO +Debian: [[https://github.com/dm-vdo/kvdo/issues/53|Kernel Modul noch nicht mainline und nicht in Debian stable]] 
-  * http://www.linux-magazin.de/​heft_abo/​ausgaben/​2005/​10/ueber_alle_fallen +  * https://blog.defaultroutes.de/talks/sys4-storage
-  * https://www.redhat.com/docs/manuals/​enterprise/​RHEL-5-manual/Cluster_Logical_Volume_Manager/​index.html +  * RedHat Doku
-  * http://​www.novell.com/​documentation/​sles10/​sles_admin/​data/​cha_advdisk.html+
  
 +++++
lpi1/lvm.txt · Zuletzt geändert: 2024/03/19 10:37 von ingo_wichmann