Nous avons eu une défaillance de disque sur un serveur et l'avons remplacé avant de retirer le lecteur de LVM.
Le serveur dispose de 4 disques physiques (PV), chacun avec son propre groupe de volumes (VG). Chaque VG a 2 volumes logiques ou plus (LV). Maintenant LVM se plaint du disque manquant. Nous avons donc un VG (vg04) avec deux LV qui sont devenus orphelins que nous devons éliminer du système.
Le problème est que chaque fois que nous exécutons une commande LVM, nous obtenons ces erreurs de lecture qui ont échoué:
# 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
Les VG et LV manquants ne sont pas importants, nous voulons juste les supprimer.
Comme vous pouvez le voir, nous avons essayé toutes les suggestions faites jusqu'à présent sans succès.
La sortie de 'lvm dumpconfig' peut être vérifiée sur http://Pastebin.com/MHiBzrLJ
La solution était d'exécuter dmsetup, dans ce cas les deux commandes
dmsetup remove vg04-vz
dmsetup remove vg04-swap
Avant de faire cela, j'ai vérifié avec la commande "dmsetup info" que le "nombre ouvert" pour les deux LV était nul.
AVERTISSEMENT: dmsetup peut faire des ravages sérieux sur vos disques. Si vous utilisez ces informations à l'avenir, assurez-vous de lire la page de manuel.
J'ai rencontré des problèmes similaires après avoir supprimé un disque VMware /dev/sdb
.
Utilisez lsscsi
pour déterminer quel périphérique est utilisé (vous devrez peut-être installer le programme), puis exécutez 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
Maintenant, écrivez le fichier de suppression avec
# echo 1 > /sys/class/scsi_device/2\:0\:1\:0/device/delete
L'appareil est immédiatement parti.
vgchange -a n/dev/vg04
Si vous avez encore des volumes logiques actifs, vous devrez peut-être
lvchange -a n /dev/vg04/swap
lvchange -a n dev/vg04/vz
etc.