Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi1:lvm

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.

LVM einrichten

Pakete installieren

Debian:

apt install lvm2 parted

openSuSE:

zypper install lvm

Partitionierung

Partition mit Typ LVM 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:

/dev/sda2   30212096  59572223 29360128    14G Linux LVM
/dev/sda3   59572224  90114190 30541967  14,6G Linux LVM

LV anlegen

LVM-Blockdevice zum Physical Volume machen:

pvcreate /dev/sda2

Bestehende Physical Volumes anzeigen:

pvs

Volume Group mit Namen vg_system anlegen: 1)

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
df -h /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
df -h /mnt/lv_test

Volume und Dateisystem in zwei Schritten

Volume und Dateisystem in zwei Schritten

LV verkleinern

LV verkleinern

Snapshots

4)

Snapshot erstellen & löschen

Snapshot erstellen

lvcreate --snapshot --extents 10%ORIGIN --name lv_snapshot1 /dev/vg_system/lv_test
mkdir /mnt/snapshot1
mount -o ro,noatime /dev/vg_system/lv_snapshot1 /mnt/snapshot1

5) → 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 & wiederherstellen

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
wipefs -af /dev/sda2

Logical Volume spiegeln (RAID 1)

Logical Volume spiegeln (RAID 1)

Deduplizierung

1)
- ( Minus ) in VG und LV Namen besser vermeiden
2) , 3)
Volume muss nach /mnt/lv_test gemountet sein
4)
Falls das Kernel Modul dm-snapshot noch nicht geladen ist:
modprobe dm-snapshot
5)
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
6)
Unter CentOS 8 testen:
lvconvert --raidintegrity y /dev/vg_system/lv_test
blkdiscard /dev/sda6
lpi1/lvm.txt · Zuletzt geändert: 2024/12/11 13:15 (Externe Bearbeitung)