El problema
Después de reiniciar, el sistema no se iniciará ni activará uno de los grupos de volúmenes LVM. Intentar activar el grupo manualmente produce el mensaje:
Couldn't find device with uuid '[UUID]'
La solución
La cadena LABELONE en la ubicación de metadatos marca el dispositivo como parte de un dispositivo LVM. Sin esta cadena, lvm3 no intentará utilizar el dispositivo como un volumen físico. Los metadatos del dispositivo físico se pueden sobrescribir debido a un error del sistema o una acción manual deliberada.
Para las versiones 4 o 5 de Linux, el área de metadatos predeterminada es de 192 Kb. Para la versión 6 de Linux, los metadatos predeterminados son 1 Mb. Antes de intentar cualquier actividad de recuperación o reparación, le recomendamos encarecidamente que haga una copia de seguridad de esta área:
# /bin/dd if=/dev/xvdd of=/root/xvdd.metadata bs=1K count=[192_or_1024]
Para verificar la firma LVM, haga esto:
# /bin/strings /root/xvdd.metadata | /bin/fgrep LABELONE
Si no se produce ningún resultado, los metadatos están corruptos.
Revisa la información en:
/etc/lvm/backup /etc/lvm/archives
para cambios Si se han cambiado o son incoherentes, es posible que la actividad de restauración dañe todos los datos del volumen. Verifique que el dispositivo físico o LUN aún esté disponible o que aún se presente a este servidor.
Sea diligente para realizar copias de seguridad periódicas de todos los volúmenes LVM. Si bien pueden recuperarse, también es posible que una mala configuración corrompa por completo todo el conjunto de datos.
1. Tenga en cuenta que este elemento es importante solo si también tiene algún dispositivo multirruta en su sistema. Si no usa LVM y rutas múltiples en el mismo servidor, puede omitir este elemento sin problemas.
Durante el inicio del sistema, se notifica al subsistema LVM cada vez que un dispositivo de bloque, como una unidad de disco o LUN, puede usarse para construir un volumen LVM. Este es un proceso asíncrono; no hay garantía de que los dispositivos se detecten en el mismo orden cada vez que se inicia el sistema. Esto significa que es probable que las rutas físicas de un dispositivo de rutas múltiples se descubran antes de que se complete el dispositivo lógico compuesto, lo que lleva a que el subsistema LVM reclame la ruta física antes de que se le ofrezca el dispositivo al subsistema de rutas múltiples. Hay dos resultados indeseables de esta condición:
una. LVM solo utiliza y reclama una única ruta al dispositivo de múltiples rutas, lo que deja al sistema vulnerable a una falla de un solo punto que causa una pérdida catastrófica de conectividad con el almacenamiento.
b. Dado que LVM obtiene la propiedad exclusiva de la ruta física, la capa de múltiples rutas informa que el dispositivo está ocupado y no puede construir el dispositivo de múltiples rutas. Esto deja el almacenamiento sujeto a una falla de un solo punto que impide el acceso al almacenamiento. La solución es obligar al LVM a considerar solo aquellos dispositivos de bloque que en realidad van a contener parte de un volumen LVM. La forma de hacerlo es buscar en el archivo /etc/lvm/lvm.conf:
# /bin/fgrep -n -e 's/#.*//' -e '/filter/p' /etc/lvm/lvm.conf filter = [ "a/.*/" ]
Si su salida se parece a la anterior, tiene un problema de configuración de LVM que probablemente dañará cualquier dispositivo de múltiples rutas, si los usa en su sistema. Cambiar este parámetro está fuera del alcance de esta nota. Procederemos asumiendo que ha corregido este valor.
2. A veces, el almacenamiento que contiene los datos LVM tarda en reconocerse y puede montarse correctamente si se accede después de que el sistema se haya estabilizado. Para comenzar, haremos un inventario de los dispositivos de bloque disponibles y determinaremos los UUID:
# /sbin/vgscan Reading all physical volumes. This may take a while... Couldn't fine device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. Found volume group "data_vg" using metadata type lvm2
Ahora que tenemos el UUID que causa el problema, debemos encontrar el dispositivo asociado:
# /sbin/pvs -o +uuid Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. PV VG Fmt Attr PSize PFree PV UUID /dev/xvdc data_vg lvm2 a-- 996.00M 0 VrVT1L-CTcT-9Nn9-oIAx-BnEA-X7sv-vJO6RE /dev/xvde data_vg lvm2 a-- 996.00M 428.00M tGIqvd-lsYv-7JmV-1bfD-t7BL-HaGi-rmIYW0 unknown device data_vg lvm2 a-m 996.00M 0 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt
3. Podemos ver la distribución de los volúmenes lógicos en los dispositivos físicos de esta manera:
# /sbin/lvs -o +devices Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices data_vg_lv data_vg -wi-a- 2.50G /dev/xvdc(0) data_vg_lv data_vg -wi-a- 2.50G unknown device(0) data_vg_lv data_vg -wi-a- 2.50G /dev/xvde(0) =
4. Intenta activar el grupo de volumen:
# /sbin/vgchange -a y data_vg Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. Refusing activation of partial LV data_vg_lv. Use --partial to override. 1 logical volume(s) in volume group "data_vg" now active
5. Intente reducir el grupo de volumen y elimine el dispositivo que falta:
# /sbin/vgreduce --removemissing data_vg Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. WARNING: Partial LV data_vg_lv needs to be repaired or removed. WARNING: There are still partial LVs in VG data_vg. To remove them unconditionally use: vgreduce --removemissing --force. Proceeding to remove empty missing PVs.
# /sbin/vgreduce --removemissing data_vg --force Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. Removing partial LV data_vg_lv. Logical volume "data_vg_lv" successfully removed Wrote out consistent volume group data_vg
6. Con el dispositivo faltante eliminado del grupo, el dispositivo LVM debería activarse:
# /sbin/pvs PV VG Fmt Attr PSize PFree /dev/xvdc data_vg lvm2 a-- 996.00M 996.00M /dev/xvde data_vg lvm2 a-- 996.00M 996.00M
# /sbin/lvs -o +devices #
# /sbin/vgscan Reading all physical volumes. This may take a while... Found volume group "data_vg" using metadata type lvm2
# /sbin/vgdisplay --- Volume group --- VG Name data_vg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.95 GB PE Size 4.00 MB Total PE 498 Alloc PE / Size 0 / 0 Free PE / Size 498 / 1.95 GB VG UUID yTOvvd-ZjUe-gXP0-41BT-qUIk-8uPR-lpr9Pw
7. Podemos intentar restaurar el grupo de volúmenes utilizando la información almacenada en el directorio /etc/lvm/archive/:
# /sbin/vgcfgrestore -f data_vg_00003-1023778751.vg data_vg Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. Cannot restore Volume Group data_vg with 1 PVs marked as missing. Restore failed.
8. Intentar sobrescribir o solicitar la información del dispositivo en función de la configuración de UUID derivada de la información del grupo de volúmenes:
# /sbin/pvcreate --restorefile /etc/lvm/archive/data_vg_00003-1023778751.vg --uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt /dev/xvdd Couldn't find device with uuid 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt. Writing physical volume data to disk "/dev/xvdd" Physical volume "/dev/xvdd" successfully created
9. Abra la información del grupo de volúmenes, por ejemplo /etc/lvm/archive/data_vg_00003-1023778751.vg usando un editor de texto y elimine la cadena "MISSING" de la entrada de indicadores para que se vea así:
flags = [ ]
10. Restaure el LVM utilizando esta entrada modificada:
# /sbin/ vgcfgrestore -f /etc/lvm/archive/data_vg_00003-1023778751.vg data_vg Restored volume group data_vg
11. Verificar el entorno:
# /sbin/vgscan Reading all physical volumes. This may take a while... Found volume group "data_vg" using metadata type lvm2
# /sbin/ pvs -o +uuid PV VG Fmt Attr PSize PFree PV UUID /dev/xvdc data_vg lvm2 a-- 996.00M 0 VrVT1L-CTcT-9Nn9-oIAx-BnEA-X7sv-vJO6RE /dev/xvdd data_vg lvm2 a-- 996.00M 0 70FBaa-3QKh-HTAF-gUzZ-u3mu-2RRs-hI3BIt /dev/xvde data_vg lvm2 a-- 996.00M 428.00M tGIqvd-lsYv-7JmV-1bfD-t7BL-HaGi-rmIYW0
12. Verifique la disponibilidad de LVM:
# /sbin/lvs -o +devices LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices data_vg_lv data_vg -wi--- 2.50G /dev/xvdc(0) data_vg_lv data_vg -wi--- 2.50G /dev/xvdd(0) data_vg_lv data_vg -wi--- 2.50G /dev/xvde(0)