Breve anatomia di LVM (Logical Volume Management)

Avevo pensato di scrivere un post sullo standard di cifratura LUKS, supportato nativamente dal kernel Linux, che permette di proteggere i dati criptando partizioni di un disco. Prima, però, voglio fare un breve accenno a un altro strumento nativo, che può tornarci utile quando scegliamo di cifrare l’intero sistema: LVM, o Logical Volume Manager.

Per “gestione logica dei volumi” s’intende una forma di allocazione dinamica dello spazio. L’idea di base è quella di superare i limiti imposti dai tradizionali metodi di partizionamento come MBR, “sganciando” il livello logico dal livello fisico e fornendo uno strato di astrazione tra un file-system e i dischi o le partizioni che si utilizzano.

Questo consente di creare i cosiddetti logical volumes (LVs), ognuno dei quali può estendersi su più dispositivi di storage in maniera del tutto trasparente, cioè senza provocare interruzioni del servizio. Un logical volume, infatti, è costruito sopra un’entità che funge da disco rigido virtuale, il volume group (VG), formato da uno o più dispositivi fisici chiamati physical volumes (PVs):

lvmschema

Con LVM, poiché la configurazione reale dei dischi è nascosta dal software, diventa possibile gestire i dati a un livello più alto, unificando lo spazio di archiviazione disponibile sul sistema per definire un numero arbitrario di unità logiche. In questo modo, se un file-system si riempie, un nuovo physical volume (disco o partizione) potrà essere aggiunto al volume group così da espandere facilmente il volume logico.

Esempio:

voglio incrementare le dimensioni della partizione LVM di root. In primo luogo, verifico le informazioni relative allo spazio occupato dal file-system che m’interessa:

dfht111

Lancio i comandi pvsvgs lvs per capire com’è organizzato il mio LVM:

lvmstruct4444

Al momento ho:

  • un physical volume in /dev/mapper/sda5_crypt;
  • un unico volume group chiamato ubuntu-vg;
  • due logical volumes, di cui uno riservato alla partizione di root (quella che voglio espandere) e l’altro riservato alla partizione di swap

Poiché nel volume group non c’è più spazio, dovrò collegare un altro physical volume. Tramite fdisk -l posso vedere il mio nuovo device:

fdisknew1111

A questo punto, vado a creare una partizione con i seguenti comandi:

partalter111

Ora possiamo finalmente inizializzarla come physical volume:

pvcreate111

E allocare spazio aggiungendo il physical volume appena creato al volume group:

volgroupext

Procediamo quindi ad espandere il logical volume, che da 47,52gb passerà a 54,52gb:

lvextend111111111111

E per concludere, andiamo a ridimensionare il file-system affinché possa gestire lo spazio appena ottenuto:

resizefilesys111

Il risultato sarà visibile lanciando il comando df -hT:

dmfilesys

 

 

Breve anatomia di LVM (Logical Volume Management)ultima modifica: 2017-06-01T18:40:22+02:00da kith_straworth