6.4. Recupero dei metadati del volume fisico
Se l'area dei metadati del gruppo di volumi di un volume fisico viene accidentalmente sovrascritta o distrutta, sarà possibile visualizzare un messaggio d'errore il quale indica che l'area interessata è incorretta, o che il sistema non è stato in grado di trovare un volume fisico con un UUID particolare. È possibile recuperare i dati del volume fisico creando una nuova area per i metadati sul volume fisico stesso specificando un UUID uguale a quello dei metadati precedentemente persi.
Avvertimento
Non eseguite questa procedura con un volume logico LVM in funzione. In tal caso protreste perdere i vostri dati se specificate l'UUID incorretto.
Il seguente esempio mostra un tipo di output che potreste visualizzare se l'area dei metadati viene persa o se risulta corrotta.
[root@link-07 backup]# lvs -a -o +devices
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find all physical volumes for volume group VG.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find all physical volumes for volume group VG.
...
È possibile localizzare l'UUID per il volume fisico sovrascritto controllando la directory
/etc/lvm/archive
. Verificate il file VolumeGroupName_xxxx.vg
per gli ultimi metadati di LVM validi archiviati, per quel gruppo di volumi.
Alternativamente la disattivazione del volume e l'impostazione dell'opzione
partial
(-P
), potrebbe permettervi di trovare l'UUID del volume fisico corrotto mancante.
[root@link-07 backup]# vgchange -an --partial
Partial mode. Incomplete volume groups will be activated read-only.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
...
Utilizzate le opzioni
--uuid
e --restorefile
di pvcreate
per ripristinare il volume fisico. Il seguente esempio etichetta il dispositivo /dev/sdh1
come volume fisico con il seguente UUID, FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk
. Questo comando ripristina le informazioni relative ai metadati presenti in VG_00050.vg
, e cioè i metadati corretti più recenti archiviati per il gruppo di volumi. L'opzione restorefile
indica al comando pvcreate
di rendere il nuovo volume fisico compatibile con quello vecchio presente sul gruppo di volumi, assicurando che la nuova versione dei metadati non venga posizionata dove il volume fisico precedente conteneva i dati (tale comportamento si potrebbe verificare se per esempio, il comando pvcreate
originale avesse usato gli argomenti della linea di comando per controllare il posizionamento dei metadati, o se il volume fisico fosse stato creato originariamente utilizando una versione diversa di software con impostazioni predefinite differenti). Il comando pvcreate
sovrascrive solo le aree dei metadati di LVM e non interessa le aree dei dati esistenti.
[root@link-07 backup]# pvcreate --uuid "FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk" --restorefile /etc/lvm/archive/VG_00050.vg /dev/sdh1
Physical volume "/dev/sdh1" successfully created
Successivamente potrete utilizzare
vgcfgrestore
per ripristinare i metadati del gruppo di volumi.
[root@link-07 backup]# vgcfgrestore VG
Restored volume group VG
Ora è possibile visualizzare i volumi logici.
[root@link-07 backup]# lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
stripe VG -wi--- 300.00G /dev/sdh1 (0),/dev/sda1(0)
stripe VG -wi--- 300.00G /dev/sdh1 (34728),/dev/sdb1(0)
I seguenti comandi attivano i volumi e visualizzano i volumi attivi.
[root@link-07 backup]#lvchange -ay /dev/VG/stripe
[root@link-07 backup]#lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices stripe VG -wi-a- 300.00G /dev/sdh1 (0),/dev/sda1(0) stripe VG -wi-a- 300.00G /dev/sdh1 (34728),/dev/sdb1(0)
Se i metadati LVM sul disco necessitano di una quantità minima di spazio uguale a quella sovrascritta, questo comando è in grado di ripristinare il physical volume. Se la quantità di spazio sovrascritto oltrepassa l'area dei metadati, allora i dati presenti sul volume potrebbero essere stati interessati da questo processo. Per recuperare i dati è possibile utilizzare il comando
fsck
.