LVM: Logical Volume Manager

lvm2

Nel 2010 ho avuto una esperienza su HP-UX in HP dove si utilizza moltissimo LVM. In questa occasione sono venuto in contatto con LVM..

LVM (gestore logico dei volumi) è un software di gestione dei dischi disegnato per essere più flessibile del normale partizionamento fisico.
Si potrebbe pensare ad LVM come un sottile strato software in cima ai dischi rigidi ed alle partizioni che crea una illusione di continuità e semplicità per la gestione delle sostituzioni, dei ripartizionamenti e delle copie di sicurezza dei dischi rigidi.

lvm-strati

Nell’ambito casalingo, il classico partizionamento usato nella maggior parte delle installazioni è quello basato su MBR (Master Boot Record) e tabella delle partizioni MSDOS.
Con questo sistema è possibile avere un massimo di 4 partizioni primarie oppure fino a 3 partizioni primarie, una partizione estesa e all’interno di quest’ultima infinite partizioni logiche.
Il limite principale di questa architettura è dato dalla rigidità di questa organizzazione delle risorse. Le partizioni sono fisse e non possono essere separate in più dischi, non possono essere modificate senza smontarle e lo spazio per il file system è quello prefissato, non può né crescere né diminuire senza smontare tutto e rifare le partizioni.
Immaginando un’installazione multiutente, se il disco viene completamente riempito l’unica soluzione è quella di acquistare un disco nuovo e travasare i dati in quello, reimpostando i permessi com’erano in origine con elevati costi di tempo, oppure spostare i dati altrove, soluzione ovviamente non facilmente applicabile in multiutenza.
LVM rivoluziona il concetto di organizzazione dello spazio fornendo un sistema di allocazione dinamica dello spazio.

Nell’ambito aziendale, LVM può gestire grandi batterie di dischi rigidi consentendo l’aggiunta di dischi, la sostituzione, la copia e la condivisione di contenuti da un disco a un altro senza interruzione del servizio.
E’ in grado di effettuare dei backup facendo degli snapshot, puo’ mostrare n dischi fisici come uno unico, oppure 1 solo disco fisico (o LUN o altro) come tanti volumi logici (LV) raggruppati a piacimento dentro diversi gruppi di volume (VG).

Caratteristiche:
– ridimensionare i Gruppi di Volume online assorbendo nuovi Volumi Fisici oppure espellendo quelli facentene parte
– ridimensionare i Volumi Logici online concatenando le ampiezze su di loro o troncando le ampiezze da loro
– creare fotografie Volumi Logici
– ripartire per intero o in parte Volumi Logici attraverso multipli Volumi Fisici, in modo simile al Raid 0
– fare una copia per intero o in parte di Volumi Logici, in modo simile al Raid 1
– spostare online i Volumi Logici tra i Volumi Fisici

I passi per creare un volume logico sono:
– preparare i dischi: si preparano i PhysicalVolume (PV); LVM marchia i dischi fisici come suoi col comando pvcreate
– creare un gruppo: si definisce un VolumeGroup (VG) ossia un contenitore/gruppo per i LV col comando vgcreate
– creare i volumi: dentro il gruppo (VG) si definiscono i LogicalVolume (LV), in pratica l’equivalente della partizioni nel sistema classico. I LV sono i nostri device su cui lavoreremo, ovvero ove creeremo i FS.
– ceazione file system: dentro il LogicalVolume (LV) creiamo il filesystem che preferiamo!

Sembra complicato, ma fissata la struttura bene in testa, si apprezzerà moltissimo la potenza e flessibilità di LVM!

Struttura:

La struttura del LVM è, come intuito dai passi per crearlo, come segue:
– ogni disco fisico ha delle partizioni
– su ogni partizione si crea un PV
– raggruppo i PV in un VG (definento la sua dimensione massima, di default uguale alla somma dei PV)
– dentro il VG creo diversi LV, di diversa dimensione, al massimo fino alla dimensione del VG
– sul LV creo il FS che desidero della dimensione che desidero (anche inferiore alla dimensione del LV)

Legenda da imparare a memoria:
PV: PhysicalVolume
VG: VolumeGroup
LV: LogicalVolume
FS: FileSystem

pv-vg

Se volessimo analizzare la struttura di LVM ad un livello più basso:
– ogni PV viene spezzettatto in piccoli PE (PhysicalExtends) di dimensione tutti uguale per ogni PV, di default 4 MB
– ogni LV viene diviso in senso logico, in pezzetti detti LE (LogicalExtends) i quali sono associati ad un unico PE

Legenda da imparare a memoria:
PE: PhysicalExtend
LE: LogicalExtend

pvle

Ad esempio:
il LE1 del LV “Pippo” punta al PE1 del PV1
il LE2 del LV “Pippo” punta al PE2 del PV1
il LE3 del LV “Pippo” punta al PE3 del PV3
il LE4 del LV “Pippo” punta al PE1 del PV2
il LE5 del LV “Pippo” punta al PE2 del PV2
il LE1 del LV “Pluto” punta al PE4 del PV1

Questa associazione è necessaria per svincolare i volumi fisici (PV) da quelli logici. Necessario ad esempio quando viene aggiunto un nuovo PV e si vuole espandere il LV. Una situazione frammentata come quella dell’esempio si ha infatti proprio con variazioni come l’aggiunta o sottrazione di PV, altrimenti in genere si ha una situazione abbastanza lineare, cioè LEx->PEx.
HP-UX (su cui è stato creato LVM) ha alcuni comandi di basso livello per mostrare la distribuzione dei LE e PE.

Laboratorio di LVM

in lavorazione…

Luca
Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: