Правильно удаляем multipath диск в Linux. Естественно, делаем это без перезагрузки, как мы и любим.
Для начала посмотрим на список дисков в multipath:
multipath -ll
В нашем примере подключено три массива. Допустим, удалять мы собираемся только один — mpathc. Запомним блочные устройства, созданные для этого массива:
- sde
- sdn
- sdh
- sdk
Запомним device map:
- 3600c0ff0002814c1361e975e01000000
Проводим подготовительные работы.
Если mount
Если массив куда-то смонтирован, демонтируем.
umount /mount_point
Если LVM
Если у нас массив использован в LVM, вычищаем.
pvmove /dev/mapper/mpathc
vgreduce volume_group /dev/mapper/mpathc
Если группа больше не нужна, деактивируем её.
vgchange -a -n volume_group
vgremove volume_group
Удаляем метаданные тома.
pvremove /dev/mapper/mpathc
В зависимости от ваших настроек процесс выкорчёвывания массива из LVM может отличаться.
Удаляем устройство multipath
Если устройство назначено в /etc/multipath.conf, то убираем его из конфигурационного файла или комментируем.
vi /etc/multipath.conf
Если устройство дохлое и имеет статус "failed faulty running", то удаляем device map.
dmesetup remove -f 3600c0ff0002814c1361e975e01000000
Удаляем устройство multipath.
multipath -f mpathc
Проверяем что всё удалилось.
multipath -ll
Удаляем блочные устройства
Чистим буферы.
blockdev --flushbufs /dev/sde
blockdev --flushbufs /dev/sdn
blockdev --flushbufs /dev/sdh
blockdev --flushbufs /dev/sdk
Удаляем блочные устройства.
echo 1 > /sys/block/sde/device/delete
echo 1 > /sys/block/sdn/device/delete
echo 1 > /sys/block/sdh/device/delete
echo 1 > /sys/block/sdk/device/delete