Tip: LVM pvresize online - auch mit multipath Disks

german
lvm

#1

Hallo Community,

das auf einem Dateisystem gelegentlich der Platz ausgeht, kann vorkommen. Wie man Systeme mit LVM vergrößert, dazu finden man eigentlich reichlich Artikel im Netz. Was mir bei den meisten gefundenen Anleitungen nicht gefallen hat, sind diese Sachen:

  • beziehen sich meist nur auf DAS (Direct Attach Storage), Multipath wird nicht erwähnt
  • Nach Änderung des Physikalischen Speichers (SAN/ISCSI) wird behauptet, ein reboot wäre nötig
  • Anstückeln von Logical Volumes
  • bzw. löschen und neu erstellen einer Partition mit fdisk, womit ich schon mal einen Server zerstört habe

Vergrößern des UCS Rootlaufwerk im laufenden Betrieb - getestet mit UCS 4.2 und HP EVA 4400:

zunächst überblick verschaffen und die (SAN) Disk vergrößern

multipath -l   #listet Multipath Geräte auf
pvs   #listet LVM Physical Volumes auf
lvs   #listet LVM logical Volumes auf
lsblk   #listet Block Geräte auf
blkid   #listet IDs zu den Blockgeräten auf


Kernel mitteilen, dass sich was geändert hat. Rescan aller SCSI Geräte
for dev in /sys/bus/scsi/devices/*/rescan; do echo $dev; echo 1 > "$dev"; done

alternativ geht auch

   sudo apt-get install scsitools
   sudo rescan-scsi-bus --forcerescan


jetzt muss das Multipath Modul die Änderung mitkriegen (nur nötig, wenn man ein Multipath Device hat)
multipath -r

ID der extended Partition anzeigen lassen und ggf. in den nächsten zwei Kommandos anpassen. Mapper Adresse stammt von: multipath -l
parted -s /dev/mapper/3600508b4000cae0900044000014b0000 print free

extented Partition auf 100% erweitern (ID wird bei UCS Standardinstallation vermutlich 2 sein)
parted -s /dev/mapper/3600508b4000cae0900044000014b0000 resizepart 2 '100%'

logisches Laufwerk 100% erweitern (ID wird bei UCS Standardinstallation vermutlich 5 sein)
parted -s /dev/mapper/3600508b4000cae0900044000014b0000 resizepart 5 '100%'

Physical Volume auf max. Größe erweitern. Pfad prüfen mit: pvs
pvresize /dev/mapper/3600508b4000cae0900044000014b0000-part5

Logical Volume auf max. Größe erweitern. Pfad ggf. an eigene Umgebung anpassen!
lvextend -l +95%FREE /dev/vg_ucs/root #man kann auch 100% nehmen, ich lasse etwas platz für LVM Snapshots

Dateisystem erweitern. Pfad ggf. an eigene Umgebung anpassen!
resize2fs /dev/vg_ucs/root

Fertig. Alle Schichten ohne Neustart und gefährliche Kommandos erweitert.


Wenn man mehr als eine LVM Volume Group nutzen möchte, geht es auch ohne primäre oder erweiterte Partition. Dann braucht man kein Disklabel, keine Partitiontable, kein fdisk oder cfdisk oder gdisk und auch kein parted - Nur LVM.

Zum Beispiel…
neue (SAN) Disk an Server zuweisen (Pfade an eigene Umgebung anpassen!)
pvcreate /dev/mapper/3600508b4000cae090004400001550000 #schreibt direkt Typ 8e auf (SAN) Disk

neue Volumegroup anlegen
vgcreate vg_kvm /dev/mapper/3600508b4000cae090004400001550000

logical Volume anlegen
lvcreate --name lv_kvm_pool --size 200GB vg_kvm

Dateisystem erstellen
mkfs -t ext4 /dev/vg_kvm/lv_kvm_pool

#zum vergrößern braucht man dann nur noch…

for dev in /sys/bus/scsi/devices/*/rescan; do echo $dev; echo 1 > "$dev"; done
multipath -r
pvresize /dev/mapper/3600508b4000cae090004400001550000
lvextend -l +95%FREE /dev/vg_kvm/lv_kvm_pool
resize2fs /dev/vg_kvm/lv_kvm_pool


Gutes gelingen!
Dirk