Quickstart LVM-IT

Da PoliArch.
Versione del 14 mag 2012 alle 13:48 di Dennis (discussione | contributi)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Altre Pagine: · Home Page · Documentazione · Downloads · Screenshots · Contatti

Introduzione

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.

Creare un volume LVM

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.

A questo punto 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).

Formattare 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

Montare il Logical Volume:

# mount /dev/backupVG0/backupLV0 /mnt/backup/

Modificare un Logical Volume

Ampliare un LV

È 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).

  • Creiamo una partizione di tipo "Linux LVM" come fatto prima, con cfdisk;
  • Rendiamola un nuovo physical volume con pvcreate.
  • Aggiungiamola ad un volume group esistente con vgextend.
  • Ampliamo il logical volume con lvextend.
  • Ridimensioniamo il file system (solo se ext3) con resize2fs.

Di solito è una buona idea controllare il file system con e2fsck prima di ridimensionarlo.

Ridurre un LV

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).

  • smontare il LV
  • controllare il file system con e2fsck -f
  • ridimensionare il file system con resize2fs
  • restringere il LV con lvreduce

Se 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.

Backup e ripristino dei metadati

Intro

I metadati descrivono il LV e consentono di montarlo correttamente. Senza di questi il LV non funziona.

Backup

È possibile fare un backup dei metadati con il comando:

# vgcfgbackup -f backupVG0.lvm

Restore

Per ripristinare i metadati da un file di backup si usa il comando vgcfgrestore. 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

Accesso da un live-cd

Per accedere al Logical Volume da un live-cd, devono essere disponibili i tool lvm2 (disponibile in PoliArch). 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.

Altri comandi utili di LVM

* pvdisplay → mostra i volumi fisici disponibili
* vgdisplay → mostra i volume group disponibili
* vgrename → rinomina un volume group
* lvdisplay → mostra i logical volume disponibili
* lvrename → rinomina un logical volume
* GNU parted crea pv, ridimensiona e copia lv
Attenzione: gparted, programma di partizionamento derivato da parted, non supporta LVM!

Altre cose interessanti da sapere su 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

Monta lo snapshot

# mount /dev/backupVG0/mysnapshot /mnt/mysnapshot

smonta lo snapshot e lo rimuove

# umount /dev/backupVG0/mysnapshot
# lvremove /dev/backupVG0/mysnapshot

Documentazione utile

Le pagine man dei tool di LVM sono esaurienti e molto amichevoli. Un buon punto di partenza è

# man lvm


Altre Pagine: · Home Page · Documentazione · Downloads · Screenshots · Contatti