I filesystem di tipo LVM sono molto comodi in quanto permettono di avere delle partizioni di tipo dinamico su ambienti server e non.

Vantaggi dell’uso di LVM

I vantaggi di utilizzare LVM rispetto un partizionamento classico sono numerosi:

  1. Capacità totale espandibile senza spostamento dei dati
  2. Allocazione dinamica dello spazio senza riformattazione, inclusa l’aggiunta, rimozione e sostituzione dei dischi
  3. Associazione di nomi a un gruppo di dispositivi, senza preoccuparsi di quali partizioni vengano usate per fornire un gruppo di volumi
  4. Ripartizione (striping) dei dati su più dischi
  5. Clonazione (mirroring) dei volumi
  6. Creazione di istantanee (snapshot) di un volume logico per avere delle copie dei dati uguali al momento dell’istantanea

Espandere un logical volume LVM

Questo suggerimento spiega come espandere un volume logico esistente con l’aggiunta di un nuovo nuovo volume fisico ad un gruppo di volumi tramite LVM. I pacchetti e2fsprogslvm2 sono richiesti per seguire i seguenti steps, ma questi pacchetti sono obbligatorie sui sistemi che utilizzano ext2/ext3 su un volume logico LVM2.

Situazione

Volume group: TestGroup
Logical volume: TestHome
Physical storage da aggiungere: /dev/sda5 di tipo “Linux LVM”

Aggiungere un device fisico per usarlo con LVM
Aggiungere /dev/sda5 come un physical volume che può essere usato in LVM:

# pvcreate /dev/sda5

Aggiungere il physical volume al volume group
Aggiungere questo physical volume al volume group “TestGroup”:

# vgextend "TestGroup" /dev/sda5
  Volume group "TestGroup" successfully extended

Determinare la dimensione del volume esteso
Recuperare le informazioni del volume group prima:

# vgdisplay
--- Volume group ---
  VG Name               TestGroup
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  4
 VG Access             read/write
  VG Status             resizable
 MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               72.59 GB
  PE Size               32.00 MB
  Total PE              2323
  Alloc PE / Size       1129 / 35.28 GB
 Free  PE / Size       1194 / 37.31 GB
  VG UUID               6OXHId-sean-ZBR2-wuOy-yjVR-cQeB-PJIvrD

Possiamo vedere che 1129 dei 2323 physical extends (PE) sono in uso. Ma ci sono due logical volumes, dobbiamo verificare la dimensione del volume che vogliamo estendere:

# lvdisplay /dev/TestGroup/TestHome
--- Logical volume ---
 LV Name                /dev/TestGroup/TestHome
 VG Name                TestGroup
 LV UUID                RQtp4K-Wca2-uivW-3rVn-GfZE-hYea-KKH5pT
 LV Write Access        read/write
 LV Status              available
 # open                 1
 LV Size                33.34 GB
 Current LE             1067
 Segments               1
 Allocation             inherit
 Read ahead sectors     0
 Block device           253:0

Il size corrente è 1067 e noi abbiamo 1194 free PE, il nuovo volume avrà una dimensione di 1067 + 1194 = 2261.

Extending the volume

Ora possiamo estendere facilmente il volume, specificando il nuovo numero di PEs:

# lvm lvresize -l 2261 /dev/TestGroup/TestHome
Extending logical volume TestHome to 70.66 GB
 Logical volume TestHome successfully resized

Resizing the filesystem

Il volume ora è stato esteso, ma il filesystem continua ad avere la precedente dimensione. Abbiamo 2 opzioni per espanderlo:

  • Eseguire un umount del volume , usare resize2fs ed rieseguire un mount:
# umount /dev/TestGroup/TestHome
# resize2fs /dev/TestGroup/TestHome
# mount /dev/TestGroup/TestHome
  • O eseguire un resize senza eseguire un umount del device (le applicazioni possono continuare a scrivere e leggere i dati sul disco), a.k.a online resizing :

CentOS 4

# ext2online /dev/TestGroup/TestHome

CentOS 5 o Debian 6/7/8

# resize2fs /dev/TestGroup/TestHome