Я создаю двухузловой кластер на основе стека кластеров CMAN + Pacemaker, но у меня нет аппаратных устройств STONITH. Однако оба узла подключены к общему хранилищу через iSCSI, и я хотел бы использовать это для ограждения с помощью SBD.
SBD поддерживается openAIS и Heartbeat из коробки, и я уже использовал SBD с кластерным стеком Heartbeat + Pacemaker, но теперь мне нужно заставить его работать с CMAN. Поэтому я добавил немного кода в сценарий инициализации CMAN для запуска / остановки SBD, и, похоже, он работает нормально.
Что касается сторожевого таймера: настоятельно рекомендуется запускать SBD со сторожевым таймером. SBD - критически важная служба в таком кластере, и она должна работать все время, пока работает программное обеспечение кластера. Сторожевой таймер помогает гарантировать, что - если по какой-то причине процесс SBD неожиданно завершается, собака больше не получает корм и перезагружает узел. Итак, я получаю модуль ядра сторожевого таймера softdog
загружаться непосредственно перед запуском SBD (например, в Heartbeat).
Короче говоря, в /etc/init.d/cman я делаю следующее:
modprobe softdog
sbd -d <device> -D -W watch
И вот проблема:
когда я запускаю cman вручную
service cman start
все в порядке, но когда cman запускается автоматически во время загрузки, узел перезагружается.
Вроде сторожевого пса не кормят, потому что узел точно огорожен <watchdog timeout>
секунд (5 с) после этого (сторожевой таймер) инициализируется SBD (14:21:29), однако журналы (/ var / log / syslog) спорны, говоря, что SBD работает:
15 января 14:21:28 cs-node1 kernel: [12.341755] softdog: Программный сторожевой таймер: инициализировано 0,08. soft_noboot = 0 soft_margin = 60 секунд soft_panic = 0 (nowayout = 0)
...
15 января, 14:21:29 cs-node1 sbd: [1200]: note: Использование сторожевого устройства: / dev / watchdog
15 января 14:21:29 cs-node1 sbd: [1200]: info: Установите тайм-аут сторожевого таймера на 5 секунд.
...
15 января, 14:21:30 cs-node1 sbd: [1202]: info: Задержка: 1 на диске / dev / iscsi / disk2 / part1
15 янв 14:21:34 сбд: последнее сообщение повторяется 3 раза
...
15 января 14:21:34 cs-node1 sbd: [1202]: info: Задержка: 1 на диске / dev / iscsi / disk2 / part1
Любые идеи? Спасибо!
p.s. Всем, у кого репутация выше 300 баллов, рассмотрите возможность создания следующих тегов: sbd или storage-based-death, stonith и cman.
Изменить 1:
Теперь я создал отдельный сценарий инициализации для управления SBD, который запускается непосредственно перед CMAN, но все остается прежним - он работает только при запуске вручную после входа в систему. Что такого особенного в процессе загрузки, чего я не знаю?
Изменить 2:
Недавно заметил, что в логах вообще не может быть таких сообщений:
15 января, 14:21:30 cs-node1 sbd: [1202]: info: Задержка: 1 на диске / dev / iscsi / disk2 / part1
15 янв 14:21:34 сбд: последнее сообщение повторяется 3 раза
...
15 января 14:21:34 cs-node1 sbd: [1202]: info: Задержка: 1 на диске / dev / iscsi / disk2 / part1
и узел может быть перезагружен не ровно через 5 секунд после инициализации сторожевого таймера, а чаще через 12, но каждый раз точно так же, как появляется приглашение входа в систему. Тем не менее, SBD работает, даже если в системном журнале нет сообщений (я добавил фоновый процесс, который запускается вместе с SBD и контролирует его процесс).