вторник, 30 января 2018 г.

Как правильно удалить multipath диск из ОС


Друзья, коллеги, просто читатели, ОС - это конечно же linux. Еще точнее это rhel 6 или rhel 7. Порядок добавления дисков multipath ни у кого, как правило, не вызывает особых проблем. Тем не менее, если есть желание почитать как — напишите в комментариях. Но при удалении диска/дисков можно допустить досадные промахи. Таким образом порядок следующий:

Посмотрите, какие диски составляют multipath диск:

# multipath -ll
mpathb (360060e802214ab00504114ab00000116) dm-5 HITACHI ,OPEN-V
size=1.0T features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=active
|- 0:0:1:1 sdi 8:128 active ready running
|- 0:0:3:1 sdr 65:16 active ready running
|- 1:0:0:1 sdt 65:48 active ready running
`- 1:0:3:1 sdaj 66:48 active ready running

Отмонтируем раздел:

# umount /mount_point

Теперь необходимо зачистить lvm. В случае удаления одного диска из lvm группы необходимо освободить экстенты:

# pvmove /dev/mapper/mpathb

и далее удалить его из группы:

# vgreduce volume_group /dev/mapper/mpathb

В случае вывода из эксплуатации всех дисков составляющих группу нужно деактивировать volume group:

# vgchange -a -n volume_group

далее, удалить volume group:

# vgremove volume_group

не обязательно, но можно удалить метаданные физического (в терминологии lvm) тома:

# pvremove /dev/mapper/mpathb

И вот теперь можно удалить multipath устройство:

# multipath -f mpathb

Но пока это не все - очистим буфера scsi дисков(sdi, sdr, sdt и т.д.):

# blockdev --flushbufs /dev/sdi

Финальный этап: удаляем все диски, которые составляли multipath устройство, пример:

# echo 1 > /sys/block/sdi/device/delete

3 комментария:

  1. А как удалить, если не хочешь удалять с луна lvm тома - к примеру, хочешь на другой сервер подключить?

    ОтветитьУдалить
  2. #показать нераспределенные блочные устройства
    lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT | grep -i mpath | grep -v 'mpath_member' | sort -k1 | uniq | awk '$2 !~/^LVM2_member/ {print substr($1,3),"\t",$2}'

    ОтветитьУдалить
  3. но лучше делать в такой последовательности
    Но пока это не все - очистим буфера scsi дисков(sdi, sdr, sdt и т.д.):

    # blockdev --flushbufs /dev/sdi

    Финальный этап: удаляем все диски, которые составляли multipath устройство, пример:

    # echo 1 > /sys/block/sdi/device/delete

    И вот теперь можно удалить multipath устройство:

    # multipath -f mpathb

    или одной строкой:
    for disk in $(multipath -ll mpathХХ | awk '$3 ~/^sd/ {print $3} $4 ~/^sd/ {print $4}'); do blockdev --flushbufs /dev/$disk; echo 1 > /sys/block/$disk/device/delete; done && multipath -f mpathХХ

    ОтветитьУдалить