Назад | Перейти на главную страницу

Отработка отказа Heartbeat / DRBD не сработала должным образом. Как сделать аварийное переключение более надежным?

У меня был сценарий, в котором настроенный DRBD-heartbeat имел отказавший узел, но не переключался. Произошло то, что основной узел был заблокирован, но не отключился напрямую (он был недоступен через ssh или с помощью nfs mount, но его можно было пропинговать). Желаемое поведение заключалось бы в обнаружении этого и переключении на вторичный узел, но похоже, что, поскольку первичный не вышел из строя полностью (есть выделенное сетевое соединение от сервера к серверу), механизм обнаружения пульса не сработал. на этом и, следовательно, не переключился.

Кто-нибудь это видел? Есть ли что-то, что мне нужно настроить для более надежного переключения кластера при отказе? В остальном DRBD, кажется, работает нормально (пришлось выполнить повторную синхронизацию, когда я перезагружал старую основную систему), но без хорошей отработки отказа его использование ограничено.

nfs03 - это первичный сервер в этой настройке, а nfs01 - вторичный.

ha.cf

  # Hearbeat Logging
logfacility daemon
udpport 694


ucast eth0 192.168.10.47
ucast eth0 192.168.10.42

# Cluster members
node nfs01.openair.com
node nfs03.openair.com

# Hearbeat communication timing.
# Sets the triggers and pulse time for swapping over.
keepalive 1
warntime 10
deadtime 30
initdead 120


#fail back automatically
auto_failback on

и вот файл haresources:

nfs03.openair.com   IPaddr::192.168.10.50/255.255.255.0/eth0      drbddisk::data  Filesystem::/dev/drbd0::/data::ext4 nfs nfslock

не идеальное решение, но у меня была эта проблема около 2-3 лет назад со старым drbd. Я добавил на оба хоста скрипт в cron это проверяет, является ли фактический хост активным ведущим или ведомым. Если он был на ведомом устройстве, он проверял, доступен ли какой-либо известный файл в каталоге NFS. Если не; Я предположил, что NFS не работает; он отправляет через ssh power off команда. Вы можете попробовать поработать в этом направлении. Я уверен, что это лучшие способы. Этот был для меня достаточно хорош.

Я предполагаю, что вам придется реализовать некоторый мониторинг, чтобы проверить, ведет ли ваша основная система ожидаемым образом. Если какая-либо проверка не удалась, вам следует выключить сервер (через IPMI / ILO или коммутируемый PDU) и позволить тактовому импульсу сделать свою работу.

Я думаю, вы всегда найдете ситуацию, в которой это не сработает так, как вы ожидали бы.