Видалення vg та lv після видалення фізичного диска


32

У нас виникла помилка диска на сервері і замінили його перед тим, як видалити диск з LVM.

На сервері є 4 фізичні диски (PV), кожен з яких має власну групу гучності (VG). Кожен VG має 2 або більше логічних томів (НН). Тепер LVM скаржиться на відсутність накопичувача. Отже, у нас є VG (vg04) з двома НН, які стали сиротами, ніж нам потрібно очиститись із системи.

Проблема полягає в тому, що кожного разу, коли ми виконуємо будь-яку команду LVM, ми отримуємо ці помилки "невдалого читання":

# 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

Пропалі VG та LV не важливі, ми просто хочемо їх видалити.

Як бачимо, ми спробували всі зроблені пропозиції, поки що без удачі.

Вихід з 'lvm dumpconfig' можна перевірити на http://pastebin.com/MHiBzrLJ

Відповіді:


46

Рішенням було запустити dmsetup, в даному випадку дві команди

dmsetup remove vg04-vz
dmsetup remove vg04-swap

Перш ніж це зробити, я перевірив командою "dmsetup info", що "відкритий рахунок" для обох LV дорівнював нулю.

ПОПЕРЕДЖЕННЯ: dmsetup може призвести до серйозних руйнувань з вашими дисками, тому будь-хто, хто використовує цю інформацію в майбутньому, переконайтеся, що ви прочитали сторінку man.


3
Це зробило трюк. Дуже погано LVM - це така непрохідна абстракція, але я здогадуюсь, що це так добре, як виходить.
Навін

1
Гарний дзвінок із цим попередженням. Якщо я правильно розумію, аналогічно названий remove_all --force --deferred --retryздуває кожний диск із керованим LVM в межах досяжності. Він би намагався і не здавався, як Термінатор. Мені дуже цікаво, чому такий пістолет був гарантований.
Ден Росс

Існує також один пристрій "припинити з надзвичайними упередженнями" (і / або помститися, якщо пристрій тримав вас зайнятим цілу ніч): # dmsetup --force --retry --deferred remove <YOURVG>-<YOURLV>Це особливо вірно, якщо, наприклад, пристрій iscsi повісив, і ви його зняли# iscsiadm -m node -U all -T <FQDN>
AdamKalisz

9

У мене виникло подібне після видалення диска VMware /dev/sdb.

Використовуйте, lsscsiщоб визначити, який пристрій використовується (можливо, вам доведеться встановити програму), а потім запустіть 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

Тепер напишіть файл видалення за допомогою

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

Прилад одразу зник.


1
Дякую!! Це прекрасно працювало для мене, щоб позбутися помилок на кшталт "/ dev / sdb: помилка читання після 0 з 4096 при 0: помилка вводу / виводу" після видалення застарілого vg1-xyz через dmsetup.
котячі штани

1
Тільки ця працює для мене. Ти зробив мій день.
odiszapc

2

vgchange -an / dev / vg04

Якщо у вас все ще є логічні томи, можливо, доведеться

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

тощо.


2
На жаль, це теж не виправить, він просто кидає ту саму помилку:
RCD

У моїй системі lvchange -a n <VGNAME>працює ідеально!
zzeroo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.