Pacemaker/DRBD: Авто-фейлбек приводит к остановке активной синхронизации DRBD с Primary на Secondary. Как этого избежать?

Здравствуйте, коллеги!

Я прохожу курс “от 0 до Linux админа” на yodo.im и столкнулся с проблемой при тестировании кластера Pacemaker/Corosync + DRBD (Active/Passive) на двух узлах. У меня такой сценарий: Node 1 — Primary, Node 2 — Secondary, с предпочтением местоположения на Node 1, равным 50.

Столкнулся с ситуацией:

  1. Симулирую сбой на Node 1, и ресурсы успешно переходят на Node 2.
  2. Запускаю большую передачу файла (SCP) на точку монтирования DRBD на Node 2.
  3. Возвращаю Node 1 в строй.
  4. Pacemaker сразу же переносит ресурсы обратно на Node 1.

Результат: передача SCP на Node 2 прервалась, в результате чего на диске оказался частично повреждённый файл.

Вопросы:

  1. Такое поведение ожидаемо? (Неужели Pacemaker не учитывает активные пользовательские сессии или задания?)
  2. Как настроить кластер так, чтобы ресурсы оставались на Node 2 до завершения синхронизации? При этом моя задача заключается в том, чтобы Node 1 всегда оставался главным узлом.
  3. Существует ли риск повреждения файловой системы или дело только в прерывании транзакций?

Конфигурация кластера:

  • stonith-enabled=false (да, осознаю, что это плохо, но сейчас тестирую)
  • default-resource-stickiness=0
  • Location Constraint: Resource prefers node1=50

Буду признателен за помощь! Спасибо!

Привет, народ!

Слушайте, я тут залез в тему с Pacemaker и DRBD, и, откровенно говоря, намотал себе на ус пару нюансов. Короче, пытался разобраться с авто-фейлбеком, который, как вы знаете, настраивает активную синхронизацию с Primary на Secondary. Но вот беда – он нам все время портила жизнь и останавливал эту синхронизацию.

Я попробовал разные варианты. Сначала думал, что если выставлю нормальные параметры timeout и связи, то всё будет ок. Но фигушки! Сначала всё вроде работало, но при следующем фейле опять всё ломалось, и DRBD показывал статусы, которые ну совсем не радовали глаз.

Потом решил поизучать, как правильно настраивать фейлбек, взглянул на документацию – казалось, что всё там описано, но на практике всё прошло не так гладко. Пробовал включать и выключать разные механизмы, настраивал таймауты, но всё равно получалось, что Primary всё время терял связь, и Secondary не начинал синхронизацию, как надо. Чувство, что что-то упускаю, знали бы вы.

Тут знакомый подсказал мне курсы на Yodo, где конкретно про это рассказывают. Вот, нашел ссылку: Yodo Courses. Зарегистрировался, теперь вот потихоньку обучаюсь, и, надеюсь, найду правильное решение. Если кто-то уже проходил, дайте знать, был ли толк!

В общем, потихоньку осваиваю, будем смотреть, что из этого выйдет.

Если у вас есть идеи, как это дело обойти, делитесь, буду благодарен!