6.4. Recuperando Metadados de Volume Físico
Se a área de metadados de grupo de volume de um volume físico for sobrescrita acidentalmente ou destruída, você obterá uma mensagem de erro indicando que a área de metadados está incorreta ou que o sistema não pôde encontrar o volume físico com o UUID específico. Você pode conseguir recuperar os dados do volume físico gravando uma nova área de metadados no volume físico, especificando o mesmo UUID como sendo os metadados perdidos.
Atenção
Você não deve tentar este procedimento com um volume lógico LVM funcionando. Você perderá seus dados se especificar o UUID incorreto.
Os exemplos a seguir demonstram o tipo de resultado que você obterá se a área de metadados estiver faltando ou corrompida.
[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.
...
Você pode conseguir encontrar o UUID para o volume físico que foi sobrescrito, olhando no diretório
/etc/lvm/archive
. Procure no arquivo VolumeGroupName_xxxx.vg
pelos últimos metadados LVM conhecidos válidos para aquele grupo de volume.
Alternativamente, você verá que ao desativar o volume e configurar o argumento
partial
(-P
), você conseguirá encontrar o UUID do volume físico corrompido.
[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'.
...
Use os argumentos
--uuid
e --restorefile
do comando pvcreate
para recuperar o volume físico. O exemplo a seguir rotula o dispositivo /dev/sdh1
como volume físico com o UUID indicado acima, FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk
. Este comando restaura o rótulo do volume físico com os metadados contidos em VG_00050.vg
, os metadados corretos arquivados mais recentes para o grupo de volume. O argumento restorefile
instrui o comando pvcreate
a fazer o novo volume físico compatível com o antigo no grupo de volume, certificando que o novo metadado não seja colocado onde o volume físico antigo continha dados (o que poderia acontecer, por exemplo, se o comando original pvcreate
tivesse usado os argumentos da linha de comando que controlam alocação de metadados ou se o volume físico fosse criado originalmente usando uma versão diferente de software que usava padrões diferentes). O comando pvcreate
sobrescreve somente as áreas de metadados LVM e não afeta as áreas de dados existentes.
[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
Você pode então usar o comando
vgcfgrestore
para recuperar os metadados do grupo de volume.
[root@link-07 backup]# vgcfgrestore VG
Restored volume group VG
Você pode agora exibir os volumes lógicos.
[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)
Os seguintes comandos ativam os volumes e exibem os volumes ativos.
[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 os metadados do LVM em disco tomam ao menos o mesmo espaço que o espaço sobrescrito, este comando pode recuperar o volume físico. Se o que sobrescreveu o metadado passou da área de metadados, os dados no volume podem ter sido afetados. Você pode conseguir usar o comando
fsck
para recuperar aquele dado.