In questa mini-guida vi parlo del sistema LVM, una speciale funzionalità del kernel che permette di gestire i volumi in maniera flessibile. Il principale vantaggio di questa tecnologia è la possibilità di effettuare il ridimensionamento dinamico dello spazio sul disco, evitando così ai sysadmin un bel po’ di problemi.
Fondamentalmente è un software avanzato per la gestione dei dischi. Su qualunque server, prima o poi, capita di dover ridimensionare un volume.
Logical Volume Manager (LVM) il tool per sysadmin
Il Logical Volume Manager, permette di creare un filesystem all’interno di un volume logico. Questo è un dispositivo di archiviazione virtuale creato a partire da un sistema di volumi fisici, raggruppati tra loro. Per capirne meglio il funzionamento scomponiamo quindi l’architettura del LVM in tre componenti:
- i volumi fisici, anche denominati PV;
- il gruppo di volumi, GV, che combina più volumi fisici;
- I volumi logici, LV, creati ad hoc.
I volumi logici possono essere ridimensionati a piacere indipendentemente dai dischi sottostanti. Ad esempio, se si esaurisce lo spazio sul disco, basterà comprarne uno aggiuntivo. Senza LVM questo verrebbe montato dal sistema in una nuova directory, grazie al volume manager invece, lo potremo agganciare a quello già in uso per avere un banalissimo incremento dimensionale.
Creazione dei volumi fisici
Il primo step consiste ovviamente nella preparazione dei volumi fisici. I comandi necessari in questa sezione saranno:
- pvs, per stampare a video la lista dei volumi fisici presenti;
- pvcreate PV, per inizializzare un volume fisico;
- pvdisplay PV, per visualizzare le informazioni relative ad un pv.
Tramite il fidato manuale, man pvcreate, leggiamo che questo comando va usato proprio per inizializzare uno o più volumi fisici per l’uso con LVM. La sintassi è molto semplice, faremo seguire al comando il path del file che verrà associato al dispositivo, ad esempio:
pvcreate /dev/sdb /dev/sdc
Creazione di un gruppo
- pvs, per stampare a video la lista dei volumi fisici presenti, e la relazione con il VG;
- vgcreate VG PV1 PV2, per inizializzare il gruppo;
- vgextend VG PV3, per aggiungere altri PV ad un VG esistente;
- vgreduce VG PV3, per eliminare dal gruppo un volume fisico, non in uso;
- vgchange -a y, per attivare i tutti i GV.
Dopo aver inizializzato i pv in base alle nostre esigenze, il secondo step consiste nel combinarli in un gruppo di volumi, come abbiamo spiegato poc’anzi. Il comando che useremo è vgcreate VG PV PV, che andrà anche a creare la directory corrispondente. Ovviamente bisogna sostituire gli acronimi, come nell’esempio:
vgcreate gv_test /dev/sdb /dev/sdc
Una volta creato un gruppo di volumi, possiamo espandere le sue dimensioni aggiungendo altri pv tramite il comando vgextend , che come primo argomento userà il nome del gruppo esistente, seguito dai volumi fisici che si vogliono aggiungere.
Creazione dei volumi logici
- lvreate, creazione dei LV;
- lvdisplay, stampa a video delle caratteristiche di un LV.
Passiamo ora ai volumi logici, le unità di memoria finali nell’architettura del sistema di LVM, che vengono creati a partire da un gruppo di volumi. Il comando lvcreate lo useremo insieme all’opzione -L per importare la dimensione del volume logico e -n per impostarne il nome. Possiamo avere tre tipi differenti di LV:
- linear logical volume, vengono utilizzati per combinare più dischi e creare un’unica unità di memoria.
lvcreate -L 500M -n lv_linear gv_test
- striped logical volume, permette il sezionamento senza ridondanza. L’opzione -i, indica il numero degli stripe, mentre l’opzione -I, imposta la dimensione di una stripe nella distribuzione dei dati su pv, in Kb.
lvcreate -L 500M -i2 -I64 -n lv_stripe gv_test
- mirrored logical volume, funziona praticamente come un RAID-1
lvcreate -L 100M -m1 -n lv_mirror gv_test
Siamo giunti a conclusione di questa mini guida sulle principali istruzioni del sistema LVM, per effettuare operazioni da sysadmin. Come sempre, vi consiglio di approfondire la materia in modo autonomo, partendo dalla lettura approfondita delle pagine relative ai comandi sopra citati, tramite il comando man istruzione.
Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.