Questa pagina mostra come creare modificare, ampliare e restringere un volume LVM. Mostra anche come montarli in un sistema diverso dall'originale e come ripristinarlo/recuperarlo in caso di emergenza.
Salvo indicazioni diverse, tutto quanto riportato qui è stato provato con Mandriva GNU/Linux 2009, e dovrebbe valere per qualsiasi altra distribuzione gnu/linux recente, come Ubuntu.
Creare con fdisk o cfdisk le partizioni da aggiungere al volume. Le
partizioni devono essere di tipo "Linux LVM", ossia 8E.
Vanno creati i Physical Volume in queste partizioni:
pvcreate /dev/sda1 /dev/sdb1
Va creato il Volume Group dal nome arbitrario (io ho usato backupVG0):
vgcreate -s 32M backupVG0 /dev/sda1 /dev/sdb1
L'opzione -s definisce la dimensione degli extent. Poiché il numero massimo degli extent è fisso, per volumi più grandi è necessario fissare extent più grandi. Il default è 4M, che fissa il massimo per un volume a 256 GB. 16M fissa il massimo a 1 TB. 32M fissa il massimo a 2 TB. È un parametro che non si può modificare dopo.
Finalmente va creato il Logical Volume dal nome arbitrario (io ho usato backupLV0):
lvcreate -l 100%VG -n backupLV0 backupVG0
Il parametro -l controlla la dimensione iniziale del volume creato, che può essere inferiore allo spazio disponibile, ed eventualmente aumentare quando verranno aggiunti nuovi Physical Volume al Volume Group. Si può dare la dimensione esatta (es. 40G), oppure si può indicare una dimensione percentuale (100%VG == usa tutta la capacità del Volume Group).
Formatto il Logical Volume:
mkfs.ext3 -m 0.1 -L backup -O dir_index /dev/backupVG0/backupLV0
/dev/backupVG0/backupLV0 è il nome del device associato al Logical Volume,
costruito a partire dal nome del Volume Group e dal nome del Logical Volume
stabiliti prima (per il logical volume, come per le partizioni, si possono
usare label e uuid per farvi riferimento nei file di configurazione).
In alternativa si può accedere al volume logico anche con
/dev/mapper/backupVG0-backupLV0
Monto il Logical Volume:
mount /dev/backupVG0/backupLV0 /mnt/backup/
È possibile ampliare un volume logico, aggiungendo nuovi volumi fisici a un gruppo pre-esistente ed estendendo il volume logico sul nuovo spazio disponibile, senza dover riavviare il sistema.
Inoltre con il kernel 2.6 e versioni recenti di e2fsprogs è possibile ridimensionare una partizione ext2/ext3 anche senza smontarla (Brrr...). Questo è posibile perché con lvm il kernel vede subito l'aumento di dimensioni del volume anche se montato (con le partizioni fisiche, al contrario, è necessario smontare la partizione).
cfdisk.pvcreate.vgextend.lvextend.resize2fs.Di solito è una buona idea controllare il file system con e2fsck prima di
ridimensionarlo (procedura non provata).
Per restringere un logical volume a una dimensione inferiore alle dimensioni del file system che contiene è comunque necessario smontare il file system e prima ridimensionare questo (ammesso che ci sia sufficiente spazio vuoto).
e2fsck -fresize2fslvreduceSe dobbiamo rimuovere un physical volume dal volume group, dobbiamo prima
spostare i dati su un altro physical volume con pvmove e poi rimuovere il
physical volume con vgreduce (procedura non provata).
I metadati descrivono il LV e consentono di montarlo correttamente. Senza di questi il LV non funziona.
È possibile fare un backup dei metadati con il comando:
vgcfgbackup -f backupVG0.lvm
Per ripristinare i metadati da un file di backup si usa il comando
vgcfgrestore. Prima elenchiamo i volume group salvati nel file di backup:
vgcfgrestore -f backupVG0.lvm -l
Ripristiniamo un volume group dando il suo nome a vgcfgrestore:
vgcfgrestore -f backupVG0.lvm backupVG0
In alternativa, è utile fare un backup di /etc/lvm (il file equivalente è /etc/lvm/system o /etc/lvm/backup, sono file di testo modificabili secondo le esigenze). Per ripristinare i metadati sui physical volume usare:
pvcreate --restorefile backupVG0
(procedura non provata)
Per accedere al Logical Volume da un live-cd, devono essere disponibili i tool lvm2. Sono presenti in SystemRescueCD e in Knoppix. Nel live-cd di Ubuntu si possono installare e rendere usabili con il comando:
apt-get install lvm2
modprobe dm-mod
Identifichiamo le partizioni esistenti, e quelle che potrebbero essere PV:
fdisk -lu
Cerchiamo i physical volume esistenti:
pvscan
cerchiamo i volume group esistenti:
vgscan
attiviamo tutti i volume group disponibili:
vgchange -a y
cerchiamo i logical volume:
lvscan
montiamo i logical volume trovati su una directory.
pvdisplay mostra i volumi fisici disponibilivgdisplay mostra i volume group disponibilivgrename rinomina un volume grouplvdisplay mostra i logical volume disponibililvrename rinomina un logical volumeparted crea pv, ridimensiona e copia lvAttenzione: gparted, programma di partizionamento derivato da parted, non supporta LVM!
LVM supporta gli snapshot, "immagini congelate" di un logical volume, che si possono montare e usare così come il volume originale, la differenza è che al momento della creazione bisogna specificare quanto possono "crescere". L'idea è che per quel che rimane uguale all'originale, si usano i dati dell'originale, mentre le differenze vengono scritte nello spazio indicato, e perciò non è necesario avere sui volumi fisici uno spazio pari al doppio dell'originale. Gli snapshot sono molto utili per fare backup online di sistemi attivi.
lvcreate -L500 -s -n mysnapshot /dev/backupVG0/backupLV0
crea un logical volume snapshot dal nome mysnapshot
mkdir /mnt/mysnapshot
mount /dev/backupVG0/mysnapshot /mnt/mysnapshot
monta lo snapshot
umount /dev/backupVG0/mysnapshot
lvremove /dev/backupVG0/mysnapshot
smonta lo snapshot e lo rimuove
Le pagine man dei tool di LVM sono esaurienti e molto amichevoli. Un buon punto
di partenza è man lvm.
LVM HOWTO
How To Create Linux LVM In 3 Minutes
A simple introduction to working with LVM
A Beginner's Guide To LVM
Mounting LVM Disk using Ubuntu livecd
ext3 online resizing
commenti
GUI per LVM
Neanche ho finito di scrivere questo articolo, e scopro che diskdrake, lo strumento di partizionamento "di serie" nel pannello di controllo di Mandriva, dotato di una gradevole e funzionale interfaccia grafica, è finalmente in grado di creare e gestire file system su LVM!
Avevo già sperimentato con diskdrake prima di scrivere questa pagina, ma senza mai far caso alle funzioni per LVM, e anche quando sono tornato a vedere se supportava LVM, mi ero imbattuto in un bug che mi aveva convinto a usare solo la riga di comando.
Oggi, scopro con piacere che Mandriva ha risolto i bug che riguardavano la gestione di volumi LVM, e finalmente abbiamo un programma ad interfaccia grafica ben fatto (meglio del più famoso gparted, imho), in grado di gestire volumi LVM!
Ci tengo a far rilevare che, ad oggi, che io sappia, diskdrake è l'unico programma di partizionamento ad interfaccia grafica in grado di amministrare volumi LVM.
Se lo userò? Non so, probabilmente non lo userò mai, ormai mi è automatico fare molte cose con il terminale, ma è bello sapere che c'è un'interfaccia grafica per i momenti di pigrizia. ;-) In ogni caso:
Ben fatto Mandriva!!!
Invia nuovo commento