Удаление vg и lv после удаления физического диска

32

У нас был сбой диска на сервере, и мы заменили его перед удалением диска из LVM.

Сервер имеет 4 физических диска (PV), каждый со своей группой томов (VG). Каждый VG имеет 2 или более логических тома (LV). Теперь LVM жалуется на отсутствующий диск. Итак, у нас есть VG (vg04) с двумя LV, которые стали сиротами, чем нам нужно вычеркнуть из системы.

Проблема заключается в том, что каждый раз, когда мы запускаем любую команду 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

RCD
источник

Ответы:

46

Решением было запустить dmsetup, в этом случае две команды

dmsetup remove vg04-vz
dmsetup remove vg04-swap

Прежде чем сделать это, я проверил с помощью команды 'dmsetup info', что 'open count' для обоих LV были нулевыми.

ВНИМАНИЕ: dmsetup может нанести серьезный ущерб вашим дискам, поэтому любой, кто использует эту информацию в будущем, обязательно прочитает страницу руководства.

RCD
источник
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