Работа с Device-Mapper (Multipath) при сбоях маршрутов

Вопрос или проблема

Когда диск начинает медленно выходить из строя, multipath начинает отключать и восстанавливать пути, и это продолжается вечно.. (Я использую карту LSI-3008HBA с SAS-JBOD, а не FC-сеть)

Dmesg;

13 сен 11:20:17 DEV2 kernel: sd 0:0:190:0: попытка прервать задачу! scmd(ffff88110e632948)
13 сен 11:20:17 DEV2 kernel: sd 0:0:190:0: [sdft] tag#3 CDB: opcode=0x0 00 00 00 00 00 00
13 сен 11:20:17 DEV2 kernel: scsi target0:0:190: обрабатывается(0x0037), sas_address(0x5000c50093d4e7c6), phy(38)
13 сен 11:20:17 DEV2 kernel: scsi target0:0:190: enclosure_logical_id(0x500304800929ec7f), слот(37)
13 сен 11:20:17 DEV2 kernel: scsi target0:0:190: уровень enclosure(0x0001), имя разъема(1)
13 сен 11:20:17 DEV2 kernel: sd 0:0:190:0: прерывание задачи: УСПЕХ scmd(ffff88110e632948)
13 сен 11:20:18 DEV2 kernel: device-mapper: multipath: Отключение пути 130:240.
13 сен 11:25:34 DEV2 kernel: device-mapper: multipath: Восстановление пути 130:240.

Как видно, ядро прервало выполнение задачи, и после этого multipath вышел из строя. Поэтому я хочу избавиться от этой проблемы, заставив Multipath “не восстанавливать путь”.
Этот метод позволит оставить мертвый зомби-диск.

Как я могу это сделать?

Нам нужно понять, как multipath определяет, что путь функционирует. Если вы посмотрите на multipath.conf, вы увидите, что имеется опциональный path_checker, вы можете увидеть их список (по умолчанию это readsector0). Также следует установить приоритеты для путей, чтобы группировка путей была такой, чтобы отключение авто-восстановления предотвратило его использование, если не произойдет экстренной ситуации. Согласно https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/storage_administration_guide/removing-path-to-storage-device, после удаления ручных ссылок на sdft вы можете использовать следующее (но замените sdft на sda, чтобы соответствовать вашему случаю):

Выведите путь из строя с помощью echo offline > /sys/block/sda/device/state.

Это приведет к тому, что все последующие операции ввода-вывода, отправленные на устройство по этому пути, будут немедленно отменены. Device-mapper-multipath продолжит использовать оставшиеся пути к устройству.

Ответ или решение

Чтобы решить проблему с постоянным отключением и повторным восстановлением путей в настройках Device-Mapper (Multipath), когда диск начинает медленно выходить из строя, необходимо внести изменения в конфигурацию multipath и состояние поврежденного пути. Вот последовательность шагов, которые помогут вам отключить проблемный путь и избежать его восстановления:

  1. Проверьте конфигурацию multipath:
    Найдите файл конфигурации multipath.conf, который обычно расположен в /etc/multipath.conf. В этом файле вы можете настроить параметры path_checker и определить способ, которым multipath определяет работоспособность путей. Для этого можно установить параметр path_checker, чтобы использовать более строгие методы проверки. Например, вы можете использовать none, чтобы полностью отключить проверки на этом пути.

    Пример секции конфигурации:

    devices {
       device {
           vendor "LSI"
           product ".*"
           path_checker "none"  # Отключает проверку
       }
    }
  2. Отключите путь вручную:
    Чтобы отключить проблемный путь, выполните следующую команду, заменив sdft на ваш конкретный путь (например, sda):

    echo offline > /sys/block/sdft/device/state

    Это действие приведет к тому, что все последующие операции ввода-вывода на этом пути будут немедленно завершаться с ошибкой, и device-mapper-multipath продолжит использовать оставшиеся работающие пути.

  3. Измените приоритеты путей:
    Если у вас есть несколько путей к диску, вы можете изменить их приоритет в конфигурации multipath. Установите более высокий приоритет для рабочих путей:

    multipath {
       wd_path {
           path_grouping policies "group_by_prio"
           path_priority "1"  # Высокий приоритет для рабочего пути
       }
    }

    Это поможет гарантировать, что multipath будет использовать только надежные и работающие пути.

  4. Перезапустите службы multipath:
    После внесения этих изменений необходимо перезапустить службы multipath, чтобы они вступили в силу:

    systemctl restart multipathd
  5. Мониторинг состояния путей:
    После выполнения вышеуказанных действий полезно будет периодически проверять состояние путей. Используйте команду:

    multipath -ll

    Эта команда отобразит текущее состояние всех путей и поможет вам убедиться, что проблемный путь был отключен и далее не восстанавливается.

Эти действия должны помочь вам справиться с проблемой постоянного восстановления и отключения путей multipath. Важно следить за состоянием оборудования и заменить диск, если он продолжает показывать признаки сбоя.

Оцените материал
Добавить комментарий

Капча загружается...