Menu Chiudi

Pillola #50: Rimuovere snapshots LVM piene e bloccate.

Lo scenario

Supponiamo di avere un Gruppo di Volumi VG contenente un volume logico LV.

Il device sarà:

/dev/VG/LV

oppure, usando i devices sotto /dev/mapper:

/dev/mapper/VG-LV

Si noti che nell’uno e nell’altro caso si tratta di link simbolici ai device veri e propri gestiti dal device mapper: /dev/dm-* .

Se si crea una snapshot LVSNAP il device relativo sarà:

/dev/VG/LVSNAP

alias

/dev/mapper/VG-LVSNAP

Se LV (e quindi LVSNAP) è partizionato (supponiamo contenga per semplicità una sola partizione), posso usare il comando kpartx per ottenere i device relativi alle partizioni.

kpartx -av /dev/mapper/VG-LVSNAP

ottenendo il device:

/dev/mapper/VG-LVSNAPp1

La situazione è usuale se LV è usato come storage per macchina virtuale, ed è stato partizionato dall’interno della stessa.

In tal caso l’uso di kpartx sulla snapshot permette di montare sul virtualizzatore ed accedere da lì al filesystem (per backup a livello di filesystem, ad esempio) sulla partizione senza impattare sul normale funzionamento della macchina virtuale.

 

Il problema, e la soluzione.

Se per sventura  LVSNAP si riempie, lvremove sulla stessa non funziona, perchè il device /dev/mapper/VG-LVSNAP è bloccato a causa del riferimento al device relativo alla partizione: /dev/mapper/VG-LVSNAPp1.
Non è nemmeno possibile rimuovere la partizione, perchè anche kpartx -dv /dev/mapper/VG-LVSNAP va in errore.

Per uscire dallo stallo, ci viene in soccorso il comando “dmsetup remove“:

dmsetup remove /dev/mapper/VG-LVSNAPp1

che rimuove a livello di device mapper il device relativo alla partizione.

A questo punto si può dare con successo:

lvremove /dev/mapper/VG-LVSNAP

WordPress Appliance - Powered by TurnKey Linux