Suppression de vg et lv après la suppression du lecteur physique

32

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

RCD
la source

Réponses:

46

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.

RCD
la source
3
Cela a fait le tour. C'est dommage que LVM soit une abstraction qui fuit, mais je suppose que c'est aussi bon que possible.
Navin
1
Bon appel avec cet avertissement. Si je comprends bien, le même nom remove_all --force --deferred --retryépaterait tous les disques gérés LVM à portée de main. Il continuerait d'essayer et de ne pas abandonner, comme le Terminator. Je suis très curieux de savoir pourquoi un pistolet comme celui-ci était justifié.
Dan Ross
Il y a aussi un seul appareil "se termine avec un préjudice extrême" (et / ou la vengeance, si l'appareil vous a occupé toute la nuit): # dmsetup --force --retry --deferred remove <YOURVG>-<YOURLV>Cela est particulièrement vrai, par exemple si un appareil iscsi était suspendu et que vous l'avez retiré avec# iscsiadm -m node -U all -T <FQDN>
AdamKalisz
9

J'ai rencontré des problèmes similaires après avoir supprimé un disque VMware /dev/sdb.

Utilisez lsscsipour 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.

Effendi
la source
1
Merci!! Cela a parfaitement fonctionné pour moi pour me débarrasser des erreurs telles que "/ dev / sdb: échec de lecture après 0 sur 4096 à 0: erreur d'entrée / sortie" après avoir supprimé un vg1-xyz périmé via dmsetup.
pantalon pour chat
1
Seul celui-ci fonctionne pour moi. Tu as fait ma journée.
odiszapc
2

vgchange -an / 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.

Rob Shinn
la source
2
Malheureusement, cela ne le résout pas non plus, il continue de lancer la même erreur:
RCD
Sur mon système lvchange -a n <VGNAME>fonctionne parfaitement!
zzeroo du