У меня проблемы с stonith SBD в кластере на основе openais.
Немного предыстории: активный / пассивный кластер состоит из двух узлов, node1 и node2. Они настроены для предоставления пользователям службы NFS. Чтобы избежать проблем с разделенным мозгом, они оба настроены на использование SBD. SBD использует два диска емкостью 1 МБ, доступные хостам через многопутевую волоконно-оптическую сеть.
Проблемы начинаются, если что-то случится с сетью SAN. Например, сегодня один из парчовых коммутаторов был перезагружен, и оба узла потеряли 2 из 4 путей к каждому диску, в результате оба узла совершили самоубийство и перезагрузились. Это, конечно, было крайне нежелательно, потому что а) оставались пути б) даже если коммутатор отключился на 10-20 секунд, цикл перезагрузки обоих узлов занял бы 5-10 минут, и все NFS-блокировки были бы потеряны.
Я попытался увеличить значения тайм-аута SBD (до 10 секунд + значения, дамп прилагается в конце), однако сообщение «WARN: Latency: Нет живучести в течение 4 секунд превышает порог в 3 секунды» намекает, что что-то не работает так, как я ожидал .
Вот что я хотел бы знать: a) SBD работает так, как должен, убивая узлы, когда доступны 2 пути? б) Если нет, правильно ли прикреплен файл multipath.conf? Контроллер хранилища, который мы используем, - это IBM SVC (IBM 2145), должна ли быть для него какая-то конкретная конфигурация? (как в multipath.conf.defaults) c) Как мне увеличить время ожидания в SBD
вложения: Multipath.conf и sbd dump
(http://hpaste.org/69537)
Вам нужно проверить различные слои:
1: параметры драйверов hba
modinfo <module_name>
2: таймауты многопутевого режима и специальная настройка параметра no_path_retry = fail
multipath -v3
из вашего дампа sbd я увидел "таймаут просмотра 10", я думаю, что тайм-аута с multipath недостаточно
Схема должна быть такой (быстро, без повтора):
failed hba(report the down)-> linux scsi says (disks on that path are down) -> multipath says that disk is failed i don't retry there any io request and start to work the no failed path.
но если у вас есть параметры по умолчанию, запрос io от вашего процесса sbd останется зависшим