6.4. Cómo recuperar los metadatos de un volumen físico

Si el área de metadatos de un volumen físico es accidentalmente destruida o sobrescrita, se recibirá un mensaje de error informando que el área de metadatos es incorrecta o que el sistema fue incapaz de encontrar un volumen físico con un UUID particular. Puede recuperar los datos del volumen físico al escribir una nueva área de metadatos en el volumen físico especificando el mismo UUID de los metadatos perdidos.

Aviso

No intente este procedimiento en un volumen lógico LVM en funcionamiento. Perderá sus datos si especifica el UUID incorrecto.
El siguiente ejemplo muestra el tipo de mensajes de salida que se pueden ver si el área de metadatos se pierde.
[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.
  ...
Puede encontrar el UUID para el volumen físico que fue sobrescrito al mirar en el directorio /etc/lvm/archive. Revise el archivo VolumeGroupName_xxxx.vg para ver el último archivo válido conocido de los metadatos LVM para ese grupo de volúmenes.
Alternativamente, si desactiva el volumen y usa la opción partial (-P) podrá encontrar el UUID del volumen físico corrupto.
[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'.
  ...
Utilice los argumentos --uuid y --restorefile del comando pvcreate para restaurar el volumen físico. El siguiente ejemplo etiqueta el dispositivo /dev/sdh1 como un volumen físico con el UUID indicado arriba, FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk. Este comando restaura la etiqueta del volumen físico con la información de los metadatos contenidos en VG_00050.vg, el archivo más reciente de metadatos para el grupo de volúmenes. El argumento restorefile ordena al comando pvcreate para que el nuevo volumen físico sea compatible con el anterior en el grupo de volúmenes, garantizando que los nuevos metadatos no sean ubicados en donde el antiguo volumen físico contiene los datos (lo cual puede pasar, por ejemplo, si el comando original pvcreate ha utilizado las opciones de la línea de comandos que controlan la ubicación de los metadatos o si el volumen físico fue originalmente creado utilizando una diferente versión del software que utiliza diferentes valores predeterminados). El comando pvcreate sobrescribe solo las áreas de metadatos LVM y no afecta las áreas de datos 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
Puede utilizar el comando vgcfgrestore para restaurar los metadatos del grupo de volúmenes.
[root@link-07 backup]# vgcfgrestore VG
  Restored volume group VG
Ahora puede ver los volúmenes 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)
Los siguientes comandos activan los volúmenes y muestran los volúmenes activos.
[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)
Si los metadatos LVM en disco ocupan por lo menos tanto espacio como los datos sobrescritos, este comando puede recuperar el volumen físico. Si lo que sobrescribió los metadatos pasa el área de metadatos, los datos en el volumen se pueden afectar. Puede utilizar el comando fsck para recuperar los datos.