Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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