Come configurare i volumi logici con LVM
LVM (Logical Volume Manager) è un gestore dello spazio del disco fisso in volumi logici, che possono essere facilmente ridimensionati.
In fondo a questa guida trovate dei link di approfondimento sulla tecnologia e sul funzionamento teorico dell’LVM, mentre di seguito trovate i passi per realizzare in pratico un sistema LVM.
La struttura che utilizzeremo sarà la seguente, configurare l’LVM con 1 Volume Group, 2 Physical Volume, e 3 Logical Volume.
Il S.O. utilizzato è GNU/Debian, ma i comandi riportati sono compatibili con qualsiasi sistema che supporta LVM.
La prima operazione da eseguire è partizionare i nostri dischi e impostarli come PV dell’LVM. Una guida su come partizionare un disco potete trovarla a questo link.
Creazione di un PV
Prima di tutto vediamo alcune info dell’lvm sul nostro sistema con il seguente comando:
vgscan
Questo comando esegue uno scan su tutti i dischi, con un output informativo con tutte le informazioni di eventuali Volume Group presenti e la versione di lvm in uso.
Creazione del PV su entrambi i dischi:
pvcreate /dev/hdc1
Physical volume “/dev/hdc1″ successfully created
pvcreate /dev/hda1
Physical volume “/dev/hda1″ successfully created
Per controllare l’effettiva creazione dei PV
pvdisplay /dev/hdc1
“/dev/hdc1″ is a new physical volume of “38,29 GB”
— NEW Physical volume —
PV Name /dev/hdc1
VG Name
PV Size 38,29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID SzHtKP-IRGs-KVnb-GOA4-hRzb-lBDt-WJRr5v
Riceverete una serie di informazioni sul PV appena creato. Lo stesso potete fare per /dev/hda1.
Creazione del VG
A questo punto dobbiamo creare un VG che conterrà i due PV appena creati:
vgcreate testvg /dev/hdc1 /dev/hda1
Per controllare l’effettiva creazione del Volume Group
vgdisplay testvg
Creazione dei LV
Ora è arrivato il momento di creare i LV all’interno del nostro VG di test. Ad esempio procediamo alla creazione di 3 LVM di 2GB:
lvcreate -L 2000 -n lvdati testvg
lvcreate -L 2000 -n lvbackup testvg
lvcreate -L 2000 -n lvdb testvg
Per controllare l’effettiva creazione di ogni Logical Volume
lvdisplay [Nome LV]
ex. lvdisplay /dev/testvg/lvdati
Creazione dei File Systems
A questo punto ogni LV rappresenta per noi una partizione su cui possiamo creare un File System e salvare i nostri dati. Per la creazione del file system con ext3
mkfs.ext3 /dev/testvg/lvdati
Creazione dei punti di Mount
mkdir /fs1
mount -t ext3 /dev/testvg/lvdati /fs1
Per il montaggio automatico dei File systems all’avvio del sistema modificare il file /etc/fstab
vi /etc/fstab
Inserire al suo interno:
/dev/testvg/lvdati /fs1 ext3 defaults 0 0
Estensione e Riduzione dei LV e dei rispettivi FS
Per tutte le seguenti operazioni è necessario che il FS in questione sia smontato
umount /fs1
Per estendere il LV di 1000M
lvextend -L+1000 /dev/testvg/[NOME LV]
Per impostare direttamente la nuova dimensione dell’LV a 4000M
lvextend -L 4000 /dev/testvg/[NOME LV]
Se proviamo a controllare ora i nostri LV in cui abbiamo aumentato la dimensione, con il comando lvdisplay, potremo constatare che la dimensione è quella impostata con il comando lvextend.
Però se provassimo a montare tale LV vedremo che il FS avrà una dimensione di 2G, cioè la dimensione con cui lo abbiamo creato. Questo perchè è necessario aumentare il nostro FS da 2G alla dimensione attuale. Prima di tutto facciamo un check sul FS:
e2fsck -f /dev/testvg/[NOME LV]
poi facciamo il reale resize del FS:
resize2fs /dev/testvg/[NOME LV]
Solo adesso avremo il nostro FS della dimensione impostata con il comando lvextend. Ovviamente in questa guida ho usato il FS ext3 ma potete usare qualsiasi FS.
Riduzione del LV
In questo caso, bisogna procedere nel seguente modo
e2fsck -f /dev/testvg/[NOME LV]
resize2fs -p /dev/testvg/[NOME LV] 2000M
Ora il nostro FS è di 2G ma il nostro LV è ancora di 4G, prima di ridurlo dobbiamo disattivarlo con il seguente comando
lvchange -a n /dev/testvg/[NOME LV]
poi
lvreduce -L -2000 /dev/testvg/[NOME LV]
Per riattivarlo
lvchange -a y /dev/testvg/[NOME LV]
Possiamo controllare lo stato del LV con il comando lvdisplay in particolare il record LV Status.
Aggiungere un PV ad un VG
vgextend testvg /dev/hdc1
Rimozione di un LV da un VG
Per rimuovere un LV da un VG
lvremove -f /dev/testvg/[NOME LV]
Rimozione di un VG
Per effettuare la rimozione di un VG questo deve essere prima disattivato
vgchange -a n testvg
infine possiamo rimuovere
vgremove testvg
Per chi volesse approfondire:


