Tivemos uma falha de disco em um servidor e o substituímos antes de remover a unidade do LVM.
O servidor possui 4 unidades físicas (PVs), cada uma com seu próprio grupo de volumes (VG). Cada VG possui 2 ou mais volumes lógicos (LV). Agora o LVM está reclamando da falta da unidade. Portanto, temos um VG (vg04) com dois LVs que ficaram órfãos e que precisamos eliminar do sistema.
O problema é que toda vez que executamos qualquer comando LVM, obtemos estes erros de 'falha na leitura':
# 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
Os VG e LV ausentes não são importantes, só queremos removê-los.
Como você pode ver, tentamos todas as sugestões apresentadas, até agora sem sorte.
A saída de 'lvm dumpconfig' pode ser verificada emhttp://pastebin.com/MHiBzrLJ
Responder1
A solução foi rodar dmsetup, neste caso os dois comandos
dmsetup remove vg04-vz
dmsetup remove vg04-swap
Antes de fazer isso, verifiquei com o comando 'dmsetup info' se a 'contagem aberta' para ambos os LVs era zero.
AVISO:dmsetup pode causar sérios estragos em seus discos, portanto, qualquer pessoa que usar essas informações no futuro, certifique-se de ler a página de manual.
Responder2
Eu experimentei algo semelhante depois de remover um disco VMware /dev/sdb
.
Use lsscsi
para determinar qual dispositivo está sendo usado (pode ser necessário instalar o programa) e execute 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
Agora escreva o arquivo excluído redirecionando 1
para ele.
# echo 1 > '/sys/class/scsi_device/2:0:1:0/device/delete'
O dispositivo desapareceu imediatamente.
Responder3
vgchange -an /dev/vg04
Se você tiver volumes lógicos ainda ativos, talvez seja necessário
lvchange -a n /dev/vg04/swap
lvchange -a n dev/vg04/vz
etc.