Rimozione di vg e lv dopo la rimozione dell'unità fisica


32

Si è verificato un errore del disco in un server e lo abbiamo sostituito prima di rimuovere l'unità da LVM.

Il server ha 4 unità fisiche (PV), ognuna con il proprio gruppo di volumi (VG). Ogni VG ha 2 o più volumi logici (LV). Ora LVM si sta lamentando dell'unità mancante. Quindi abbiamo un VG (vg04) con due LV diventati orfani di cui abbiamo bisogno per liberarci dal sistema.

Il problema è ogni volta che eseguiamo un comando LVM riceviamo questi errori "lettura non riuscita":

# 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

I VG e LV mancanti non sono importanti, vogliamo solo rimuoverli.

Come puoi vedere, abbiamo provato tutti i suggerimenti fatti, finora senza fortuna.

L'output di 'lvm dumpconfig' può essere verificato su http://pastebin.com/MHiBzrLJ

Risposte:


46

La soluzione era eseguire dmsetup, in questo caso i due comandi

dmsetup remove vg04-vz
dmsetup remove vg04-swap

Prima di fare ciò, ho verificato con il comando 'dmsetup info' che il 'conteggio aperto' per entrambi i LV era zero.

ATTENZIONE: dmsetup può rovinare seriamente i tuoi dischi in modo che chiunque usi queste informazioni in futuro, assicurati di leggere la pagina man.


3
Questo ha funzionato. È un peccato che LVM sia un'astrazione così impercettibile, ma immagino che sia buono come si arriva.
Navin

1
Buona chiamata con quell'avvertimento. Se avessi capito bene, il nome simile remove_all --force --deferred --retryavrebbe spazzato via ogni unità gestita da LVM a portata di mano. Continuerebbe a provare e non mollare, come il Terminator. Sono molto curioso di sapere perché una pistola come questa fosse giustificata.
Dan Ross

C'è anche un singolo dispositivo "termina con estremo pregiudizio" (e / o vendetta, se il dispositivo ti ha tenuto impegnato tutta la notte): # dmsetup --force --retry --deferred remove <YOURVG>-<YOURLV>questo è particolarmente vero, se ad esempio un dispositivo iscsi era sospeso e lo hai rimosso con# iscsiadm -m node -U all -T <FQDN>
AdamKalisz

9

Ho riscontrato un'esperienza simile dopo aver rimosso un disco VMware /dev/sdb.

Utilizzare lsscsiper determinare quale dispositivo viene utilizzato (potrebbe essere necessario installare il programma), quindi eseguire 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

Ora scrivi il file di eliminazione con

# echo 1 > /sys/class/scsi_device/2\:0\:1\:0/device/delete

Il dispositivo è sparito immediatamente.


1
Grazie!! Questo ha funzionato perfettamente per me per eliminare errori come "/ dev / sdb: lettura fallita dopo 0 di 4096 a 0: errore di input / output" dopo aver rimosso un vg1-xyz stantio tramite dmsetup.
pantaloni per gatti,

1
Solo questo funziona per me. Mi hai reso felice.
odiszapc,

2

vgchange -an / dev / vg04

Se i volumi logici sono ancora attivi, potrebbe essere necessario

lvchange -a n /dev/vg04/swap
lvchange -a n dev/vg04/vz

eccetera.


2
Sfortunatamente neanche questo risolve il problema, continua a generare lo stesso errore:
RCD

Sul mio sistema lvchange -a n <VGNAME>funziona perfettamente!
zzeroo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.