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

admin_grundlagen:lvm [2024/02/25 05:58]
ingo_wichmann [LV verkleinern]
admin_grundlagen:lvm [2024/03/19 10:37]
Zeile 1: Zeile 1:
-====== Aufbau eines logical volumes (LV) ====== 
-Ein LV besteht aus mehreren Ebenen. Die unterste Ebene bilden die sogenannten **physical volumes** ( PV ).\\  
-Mehrere PVs kann man nun zusammenfassen zu einer logischen Einheit, der sogenannten **volume group** ( VG ).\\  
-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. 
- 
-{{ :​admin_grundlagen:​lvm.png?​200 |}} 
-====== LVM einrichten ====== 
-===== Pakete installieren ====== 
-Debian: 
-  apt install lvm2 parted 
- 
-openSuSE: 
-  zypper install lvm 
- 
-===== Partitionierung ===== 
-LVM-Partition anlegen: 
-  parted /dev/sda print 
-  parted /dev/sda set 2 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 ====== 
-erstes Physical Volume anlegen: 
-  pvcreate /dev/sda2 
- 
-Bestehende Physical Volumes anzeigen: 
-  pvs 
- 
-Volume Group mit Namen ''​vg_system''​ anlegen: 
-(( ''​-''​ ( Minus ) in VG und LV Namen besser vermeiden )) 
-  vgcreate vg_system /dev/sda2 
- 
-Volume Group aktivieren: (optional) 
-  vgchange -a y vg_system 
- 
-Bestehende Volume Groups anzeigen: 
-  vgs 
- 
-Logical Volume mit Namen ''​lv_test''​ anlegen: 
-  lvcreate --size 5G --name /​dev/​vg_system/​lv_test 
- 
-Bestehende Logical Volumes anzeigen: 
-  lvs 
- 
-Formatieren ( hier mit ext4-Dateisystem ): 
-  mkfs.ext4 /​dev/​vg_system/​lv_test 
- 
-=== Testen === 
-Mountpoint erstellen: 
-  mkdir /​mnt/​lv_test 
- 
-Logical Volume am Mountpoint einhängen: 
-  mount /​dev/​vg_system/​lv_test /​mnt/​lv_test 
- 
-Testweise Daten aus ''/​usr/​bin''​-Verzeichnis kopieren: 
-  cp -a /usr/bin/. /​mnt/​lv_test 
- 
-====== 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. ​ 
- 
-===== Logical Volume & Dateisystem vergrößern ===== 
-==== Volume und Dateisystem in einem Schritt ==== 
-(geht nicht bei btrfs) 
-  lvresize --size +2g --resizefs /​dev/​vg_system/​lv_test 
- 
-==== 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 
- 
-== 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 ====== 
-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: 
-  modprobe dm-snapshot 
-)) 
-===== Snapshot erstellen & löschen ===== 
-==== Snapshot erstellen ==== 
- 
-  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 
-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 
- 
-==== Snapshot entfernen ==== 
-  umount /​mnt/​snapshot1 
-  lvremove /​dev/​vg_system/​lv_snapshot1 
- 
-===== 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 
- 
-  pvmove /dev/sda2 
-  vgreduce vg_system /dev/sda2 
-  pvremove /dev/sda2 
- 
-====== 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 ====== 
-Debian: [[https://​github.com/​dm-vdo/​kvdo/​issues/​53|Kernel Modul noch nicht mainline und nicht in Debian stable]] 
-  * https://​blog.defaultroutes.de/​talks/​sys4-storage/​ 
-  * RedHat Doku 
- 
  
admin_grundlagen/lvm.txt · Zuletzt geändert: 2024/03/19 10:37 (Externe Bearbeitung)