Гид по технологиям

Настройка DRBD 8.3.9 для кластера с Pacemaker

• 4 min read • DevOps • Обновлено 19 Nov 2025
Установка DRBD 8.3.9 с поддержкой Pacemaker
Установка DRBD 8.3.9 с поддержкой Pacemaker

Что нужно знать перед началом

  • DRBD — блоковый репликатор для Linux, обеспечивает зеркалирование дисков по сети. Краткое определение: DRBD создает сетевой репликат диска между двумя узлами в режиме active/passive.
  • Убедитесь, что ядро и встроенный модуль DRBD совместимы с версией 8.3.9.
  • Выполняйте команды под root или через sudo.

Шаг 2. Скачайте drbd 8.3.9, распакуйте и подготовьте установку на обоих серверах

В каталоге выше источника выполните команды:

cd ../  
wget http://oss.linbit.com/drbd/8.3/drbd-8.3.9.tar.gz  
tar zxvf drbd-8.3.9.tar.gz

Теперь собираем drbd с включением поддержки pacemaker (для кластера heartbeat/pacemaker). Используйте следующие команды на обоих серверах:

cd drbd-8.3.9/  
./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc --with-utils --with-pacemaker  
make KDIR=/usr/src/linux  
make install

Скриншот сборки DRBD

Результат конфигурации

Процесс make

Установка файлов

Создание конфигурации /etc/drbd.conf

Создайте файл /etc/drbd.conf по образцу. Ниже — пример конфигурации для ресурса postgres:

global {
    usage-count no;
}
common {
    syncer { rate 100M; }
    protocol      C;
}
resource postgres {
    startup {
       wfc-timeout 0;
       degr-wfc-timeout
       120;
    }
    disk { on-io-error detach; }
    on drbd1 {
       device      /dev/drbd0;
       disk        /dev/sdb;
       address     192.168.5.129:7791;
       meta-disk   internal;
    }
    on drbd2 {
       device      /dev/drbd0;
       disk        /dev/sdb;
       address     192.168.5.137:7791;
       meta-disk   internal;
    }
}

Пример файла /etc/drbd.conf

Примечание: проверьте, что device и disk указаны правильно и соответствуют вашему расположению устройств (/dev/sdb и т.д.).

Файл /etc/hosts на drbd1

Пример содержимого /etc/hosts на drbd1:

192.168.5.137       drbd2.site drbd2
192.168.5.129       drbd1.site drbd1

Содержимое /etc/hosts на drbd1

Шаг 3. Скопируйте конфигурации на второй сервер

Выполните с drbd1:

scp /etc/hosts drbd2:/etc  
scp /etc/drbd.conf drbd2:/etc

Копирование файлов на drbd2

Шаг 4. Настройка DRBD на обоих серверах

На каждом сервере выполните:

drbdadm create-md postgres  
modprobe drbd  
drbdadm up postgres

Эти команды создадут метаданные, загрузят модуль ядра и поднимут ресурс.

Шаг 5. Активируйте первичный узел (только на одном хосте)

Выберите один узел как primary. Ни в коем случае не выполняйте эту команду одновременно на обоих хостах.

Пример — делаем drbd2 первичным:

drbdadm -- --overwrite-data-of-peer primary postgres

Проверить инициализацию можно на обоих хостах:

cat /proc/drbd

Шаг 6. Запустите сервис drbd

На обоих серверах выполните:

/etc/init.d/drbd start

Проверьте состояние на drbd1 и drbd2. Если синхронизация проходит правильно, состояние покажет primary/secondary соответствующим образом.

Статус DRBD на drbd1

Результат: если всё корректно, репликация работает. После этого можно тестировать активный/пассивный режим для MySQL/PostgreSQL.

Важное

  • Не включайте primary одновременно на двух узлах. Это приведёт к рассинхронизации и потере данных.
  • Перед выполнением операции –overwrite-data-of-peer убедитесь, что узел, с которого вы копируете данные, содержит актуальные данные, которые можно перезаписать на пирах.

Критерии приёмки

  • Ресурс postgres находится в состоянии primary на одном узле и secondary на другом.
  • cat /proc/drbd показывает синхронизированный статус (UpToDate/SyncTarget или аналогичный в вашей версии).
  • Файловая система на /dev/drbd0 монтируется корректно на primary.
  • После переключения роли (failover) данные остаются целыми и сервисы запускаются на новом primary.

Чеклист ролей (оператор / админ)

  • Оператор: перед началом создайте бэкап данных и снимите состояние мониторинга.
  • Администратор: проверить соответствие версий ядра и модуля DRBD.
  • QA/тестировщик: выполнить тесты записи и переключения ролей.

Быстрый cheat-sheet команд

  • Собрать и установить:
    ./configure --with-pacemaker
    make KDIR=/usr/src/linux
    make install
  • Инициализация и подъем ресурса:
    drbdadm create-md postgres
    modprobe drbd
    drbdadm up postgres
  • Сделать primary (один узел):
    drbdadm -- --overwrite-data-of-peer primary postgres
  • Проверка статуса:
    cat /proc/drbd
    /etc/init.d/drbd status

Когда это не сработает — типичные причины

  • Несоответствие версии модуля DRBD и собранного пакета.
  • Неправильно указаны устройства (disk/device) или метадиск повреждён.
  • Сетевые ограничения/файрвол блокируют порт (по умолчанию 7791 в примере).
  • Конфликты с уже смонтированной файловой системой на целевом устройстве.

Руководство по отладке (шаги)

  1. Проверьте вывод dmesg и /var/log/messages на предмет ошибок модуля drbd.
  2. Убедитесь, что modprobe drbd прошёл без ошибок.
  3. Проверьте доступность IP/порта между узлами (ping, nc/tcping).
  4. Выполните drbdadm adjust postgres для применения конфигурации.
  5. Если метаданные повреждены, пересоздайте их осторожно: drbdadm create-md (данные будут перезаписаны).

Мини-SOP для переключения ролей (операция failover)

  1. Остановите приложения на current primary.
  2. На current primary демонтируйте файловую систему и переведите ресурс в secondary.
  3. На target node перевести в primary:
    drbdadm -- --overwrite-data-of-peer primary postgres
  4. Смонтируйте FS и запустите приложения.
  5. Выполните проверку целостности данных и логов.

Короткое резюме

Следуя шагам, вы соберёте и настроите DRBD 8.3.9 с поддержкой Pacemaker для активного/пассивного режима. Обязательно проверяйте версии, сетевую доступность и корректность устройств. Тестируйте failover в контролируемой среде до перевода в прод.

Заметки: в сети много дополнительной документации по DRBD и Pacemaker; используйте официальные ресурсы проекта для детальной настройки и обновлений.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро