База знаний VMmanager
Режим фокусировки

Как удалить сетевое multipath LVM-хранилище

В статье используются следующие термины:

Окружение

Вопрос

Как удалить сетевое multipath LVM-хранилище?

Ответ

Внимание!
Перед выполнением описанных действий создайте резервные копии всех данных, хранящихся на удаляемом устройстве. Подробнее см. в статье Создание резервных копий вручную.
  1. Удалите виртуальные диски, которые используют это хранилище:
    1. Перейдите в раздел Виртуальные машины.
    2. Откройте вкладку Диски VM и проверьте наличие дисков на удаляемом хранилище.
    3. Если диски обнаружены, удалите их в меню Удалить диск.

  2. Удалите хранилище:
    1. Перейдите в раздел Кластеры Сетевые хранилища.
    2. Откройте меню нужного хранилища.
    3. Нажмите Удалить.
  3. Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  4. Сохраните текущую топологию multipath:
    1. Выведите список настроенных multipath‑устройств:
      sudo multipath -ll
      Пример вывода
      3520f0c2000010001 dm-3 BAUM,BAUMv4
      size=2.0T features='1 queue_if_no_path' hwhandler='0' wp=rw
      |-+- policy='round-robin 0' prio=50 status=active
      | |- 17:0:0:1 sdh 8:112 active ready running
      | |- 15:0:0:1 sdj 8:144 active ready running
      | `- 16:0:0:1 sdi 8:128 active ready running
      `-+- policy='round-robin 0' prio=10 status=enabled
        |- 19:0:0:1 sdl 8:176 active ready running
        |- 20:0:0:1 sdm 8:192 active ready running
        `- 18:0:0:1 sdk 8:160 active ready running
       
      3520f0c200001000f dm-0 BAUM,BAUMv4
      size=2.0T features='1 queue_if_no_path' hwhandler='0' wp=rw

      Пояснения:

      • 3520f0c2000010001 и 3520f0c200001000fWWID — уникальный идентификатор хранилища, который присваивается на стороне СХД;
      • sdh, sdj, sdi и т.д. — физические пути к LUN, которые система видит как диски.
    2. Сохраните список multipath‑устройств в файл:
      sudo -i
      multipath -ll > /root/multipath-ll_before.txt
  5. Определите WWID удаляемого хранилища одним из указанных способов:
    • из вывода команды:
      sudo multipath -ll
    • выполните команду:
      sudo ls -ashl /dev/mapper/
      Пример вывода
      total 0
      0 crw-------  1 root root 10, 236 Apr  1 10:15 control
      0 lrwxrwxrwx  1 root root        7 Apr  1 10:15 3520f0c2000010001 -> ../dm-3
      0 lrwxrwxrwx  1 root root        7 Apr  1 10:15 3520f0c200001000f -> ../dm-0
      Пояснения:
      • 3520f0c2000010001 и 3520f0c200001000fWWID — уникальный идентификатор хранилища, который присваивается на стороне СХД.
  6. Проверьте, что устройство не используется. Убедитесь, что на удаляемом устройстве нет активных LVM-томов, файловых систем или точек монтирования:
    lsblk | grep <WWID>
    mount | grep <WWID>
    lvs | grep <WWID>

    Ожидаемый результат: пустой вывод. Если вывод содержит данные, значит устройство используется. В этом случае обратитесь в техподдержку по инструкции Служба поддержки.

    Пояснения:
    • WWID — уникальный идентификатор хранилища, который присваивается на стороне СХД.
  7. Проверьте отсутствие активных процессов:
    1. Выполните команды для поиска процессов, работающих с устройством:
      fuser -vm /dev/mapper/<WWID> 2>/dev/null
      lsof /dev/mapper/<WWID> 2>/dev/null
    2. Если команды вернули список процессов, остановите их. Вы можете использовать любые стандартные утилиты для завершения процессов. Например, выполните команду:
      kill -9
  8. Отключите очередь ввода-вывода (I/O queueing). Это предотвратит зависание процессов при потере последнего пути к устройству:
    1. Проверьте статус очередей:
      multipathd -k <<EOF
      show maps status
      EOF
    2. Отключите очереди для целевого устройства:
      multipathd -k <<EOF
      disablequeueing map <WWID>
      EOF

      Пояснения:

      • WWID — уникальный идентификатор хранилища, который присваивается на стороне СХД.
    3. Проверьте, что очереди отключены:
      multipathd -k <<EOF
      show maps status
      EOF

      Ожидаемый результат: для целевого устройства в столбце queueing указано значение off.

      Пример вывода
      name          failback  queueing paths dm-st  write_prot
      <WWID>        immediate off      2     active rw
  9. Получите список дисков. Получите имена всех путей удаляемого WWID из п. 4.a. Например, пути sdh sdi.
  10. Удалите полученные SCSI-пути по одному. Выдерживайте паузу между командами и проверяйте статус multipath после каждой операции:
    1. Выполните команду:
      echo 1 > /sys/block/sdX/device/delete
      sleep 4
      sudo multipath -ll <WWID>

      Пояснения:

      • sdX — имя диска. Все имена получены в п.9;
      • WWID — уникальный идентификатор хранилища, который присваивается на стороне СХД. 
    2. Повторите команду для всех путей, которые относятся к удаляемому устройству:
      Пример для устройства с путями sdh, sdi, sdj, sdk, sdl, sdm
      echo 1 > /sys/block/sdh/device/delete
      sleep 4
      multipath -ll <WWID>
       
      echo 1 > /sys/block/sdi/device/delete
      sleep 4
      multipath -ll <WWID>
       
      echo 1 > /sys/block/sdj/device/delete
      sleep 4
      multipath -ll <WWID>
       
      echo 1 > /sys/block/sdk/device/delete
      sleep 4
      multipath -ll <WWID>
       
      echo 1 > /sys/block/sdl/device/delete
      sleep 4
      multipath -ll <WWID>
       
      echo 1 > /sys/block/sdm/device/delete
      sleep 4
      multipath -ll <WWID>
  11.  Удалите multipath-карту из Device Mapper:
    sudo multipath -f <WWID>

    Если устройство уже было удалено автоматически, команда выдаст сообщение об ошибке — это корректно.

  12. Проверьте, что устройство исчезло:
    sudo multipath -ll | grep <WWID>

    Ожидаемый вывод: пустой.

  13. Добавьте WWID в чёрный список multipath:
    1. Выполните команду:
      tee -a /etc/multipath.conf <<EOF
       
      # Blacklisted device - removed
      blacklist {
          wwid "<WWID>"
      }
      EOF

      Это предотвратит автоматическое воссоздание multipath-карты при перезагрузке или повторном сканировании.

      Пояснения:

      • WWID — уникальный идентификатор хранилища, который присваивается на стороне СХД. 
    2. Проверьте, что запись добавлена:
      sudo grep -A2 "blacklist" /etc/multipath.conf | grep <WWID>

      Пояснения:

      • WWID — уникальный идентификатор хранилища, который присваивается на стороне СХД. 
  14. Удалите WWID из журнала обнаруженных устройств:
    1. Выполните команды:
      sudo grep -v "<WWID>" /etc/multipath/wwids > /tmp/wwids.new && \
      sudo mv /etc/multipath/wwids /etc/multipath/wwids.old && \
      sudo mv /tmp/wwids.new /etc/multipath/wwids && \
      sudo chmod 600 /etc/multipath/wwids && \
      sudo multipathd reconfigure
    2. Проверьте, что WWID удалён:
      sudo grep <WWID> /etc/multipath/wwids

      Ожидаемый вывод: пустой.

  15. На узле инициатора iSCSI отвяжите маппинг, связанный с отключаемым multipath-диском LUN на СХД. 
    Внимание
    Если этого не сделать, при перезагрузке узла iSCSI-сессии автоматически восстановятся, и система снова обнаружит SCSI-пути (например, sdh, sdi и т.д.). Но в силу выполненных действий без multipath-карты они не будут формировать единое mpath-блочное устройство, что может привести к проблемам.
Может быть полезно