LVM después de que vgcfgrestore obtuvo: dispositivo-mapper: recargar ioctl en (254:19) falló: no hay datos disponibles

LVM después de que vgcfgrestore obtuvo: dispositivo-mapper: recargar ioctl en (254:19) falló: no hay datos disponibles

El servidor tiene Thin LVM con algunos volúmenes:

vm-130-disk-0 - was deleted and need to be restored.
vm-137-disk-0 - was NOT deleted.

Intentando restaurar /etc/lvm/archive/pve_00336-2034680334.vg que se creó antes de eliminar:

# vgcfgrestore --force --file /etc/lvm/archive/pve_00336-2034680334.vg pve
# vgimport pve
# lvchange -ay /dev/pve/vm-130-disk-0
      Thin pool pve-data-tpool (254:6) transaction_id is 324, while expected 311.
      ...

# lvs -a              
  LV              VG   Attr       LSize   Pool Origin Data%  Meta%
  data            pve  twi---tz--   1.57t      # NOT activated pool data
  [data_tdata]    pve  Twi-a-----   1.57t      # OK  a=Activated
  [data_tmeta]    pve  ewi-a-----  16.00g      # OK  a=Activated                                              
  root            pve  -wi-a-----  10.00g      # OK  a=Activated                                 
  vm-130-disk-0   pve  Vwi---tz--  32.00g data # NOT activated deleted volume
  vm-137-disk-0   pve  Vwi---tz--  22.00g data # NOT activated non-deleted volume
  ...

Bueno, aquí fallamos porque la transacción no coincide entre tmeta y tpool. La mayoría de las personas respondidas en Internet tienen una situación reflejada: tpool=312 y tmeta=324 y parece que la corrección de id_transacción en el archivo .vg les ayuda. Intentemos arreglar el archivo .vg y activarlo:

Changed by hands transaction_id from 311 to 324 in /etc/lvm/archive/pve_00336-2034680334.vg ..

# vgcfgrestore --force --file /etc/lvm/archive/pve_00336-2034680334.vg pve
# vgimport pve
# lvchange -ay /dev/pve/vm-130-disk-0
   device-mapper: reload ioctl on (254:19) failed: No data available

In debug log appears: pve-vm--130--disk--0: Skipping NODE_DEL [trust_udev]

# lvs -a
  LV              VG   Attr       LSize   Pool Origin Data%  Meta%
  data           pve  twi-aotz--   1.57t             5.86   0.44  # OK
  [data_tdata]   pve  Twi-a-----   1.57t                          # OK                      
  [data_tmeta]   pve  ewi-a-----  16.00g                          # OK                      
  root           pve  -wi-a-----  10.00g                          # OK                      
  vm-130-disk-0  pve  Vwi---tz--  32.00g data                     # NOT activated deleted volume
  vm-137-disk-0  pve  Vwi-a-tz--  22.00g data        67.91        # OK activated non-deleted volume
  ...

"No hay datos disponibles" para el volumen eliminado. Triste. AFAIK tpool tiene transacción_id = 324 y necesito de alguna manera revertir tpool a 312. No tengo idea de cómo.

¿Qué puedo hacer para activar pve/vm-130-disk-0?

# lvm version
  LVM version:     2.02.168(2) (2016-11-30)
  Library version: 1.02.137 (2016-11-30)
  Driver version:  4.35.0

# uname -a
Linux adminslotlogicrestoreasap 4.9.0-11-amd64 #1 SMP Debian 4.9.189-3+deb9u2 (2019-11-11) x86_64 GNU/Linux

¡Gracias por leer! Estaré agradecido por cualquier consejo.

Respuesta1

Los archivos de almacenamiento LVM delgados /etc/lvm/archive/*.vg no tienen extensiones físicas en segmentos, sino solo ID de dispositivo. El mapeo entre device_ids y extensiones físicas en el dispositivo de bloque se almacena en metadatos de LVM y se puede volcar desde el grupo inactivo:

vgimport pve
lvchange --yes -ay pve/data_tmeta
thin_dump  /dev/mapper/pve-data_tmeta -o thin_dump_pve-data_tmeta.xml
lvchange       -an pve/data_tmeta

Gracias aeliminarno puede ver ningún ID de dispositivo eliminado.

Por lo tanto, la recuperación delgada no es posible en el caso descrito.

Ver tambiéncomentarios de los desarrolladores (2014).

información relacionada