Tuvimos un error en un disco en un servidor y lo reemplazamos antes de retirar la unidad de LVM.
El servidor tiene 4 unidades físicas (PV), cada una con su propio grupo de volúmenes (VG). Cada VG tiene 2 o más volúmenes lógicos (LV). Ahora LVM se queja de que falta la unidad. Entonces tenemos un VG (vg04) con dos LV que se han quedado huérfanos y que necesitamos eliminar del sistema.
El problema es que cada vez que ejecutamos cualquier comando LVM obtenemos estos errores de "error de lectura":
# lvscan
/dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
# vgreduce vg04 --removemissing --force
/dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
Volume group "vg04" not found
# vgchange -a n /dev/vg04
/dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
Volume group "vg04" not found
# lvchange -a n /dev/vg04/vz
/dev/vg04/swap: read failed after 0 of 4096 at 4294901760: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4294959104: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/swap: read failed after 0 of 4096 at 4096: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903864832: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 995903922176: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 0: Input/output error
/dev/vg04/vz: read failed after 0 of 4096 at 4096: Input/output error
Volume group "vg04" not found
Skipping volume group vg04
Los VG y LV que faltan no son importantes, sólo queremos eliminarlos.
Como puedes ver hemos probado todas las sugerencias hechas, hasta ahora sin suerte.
La salida de 'lvm dumpconfig' se puede comprobar enhttp://pastebin.com/MHiBzrLJ
Respuesta1
La solución fue ejecutar dmsetup, en este caso los dos comandos
dmsetup remove vg04-vz
dmsetup remove vg04-swap
Antes de hacer esto, verifiqué con el comando 'dmsetup info' que el 'recuento de aperturas' para ambos LV era cero.
ADVERTENCIA:dmsetup puede causar serios estragos en sus discos, por lo que cualquiera que utilice esta información en el futuro asegúrese de leer la página de manual.
Respuesta2
Experimenté algo similar después de quitar un disco de VMware /dev/sdb
.
Utilícelo lsscsi
para determinar qué dispositivo se está utilizando (es posible que necesite instalar el programa) y luego ejecute lsscsi
:
# lsscsi
[1:0:0:0] cd/dvd NECVMWar VMware IDE CDR10 1.00 /dev/sr0
[2:0:0:0] disk VMware Virtual disk 1.0 /dev/sda
[2:0:1:0] disk VMware Virtual disk 1.0 /dev/sdb <== the removed physical disk
[2:0:2:0] disk VMware Virtual disk 1.0 /dev/sdc
Ahora escriba el archivo eliminado redirigiéndolo 1
.
# echo 1 > '/sys/class/scsi_device/2:0:1:0/device/delete'
El dispositivo desaparece inmediatamente.
Respuesta3
vgchange -an /dev/vg04
Si aún tiene volúmenes lógicos activos, es posible que deba
lvchange -a n /dev/vg04/swap
lvchange -a n dev/vg04/vz
etc.