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

Установка и настройка DRBD на CentOS 6

6 min read DevOps Обновлено 19 Oct 2025
Установка и настройка DRBD на CentOS 6
Установка и настройка DRBD на CentOS 6

Важно: это руководство ориентировано на CentOS/Red Hat/Oracle Linux 6 и предполагает наличие свободного блочного устройства (в примере /dev/sdb1) на обоих серверах.

Кому это полезно

  • Сисадминам, настраивающим репликацию блочных устройств для высокой доступности или восстановления после отказа.
  • Командам, которые хотят простое зеркало между двумя серверами без общего хранилища.

О чем статья (ключевые варианты запроса)

  • установка DRBD
  • настройка DRBD на CentOS 6
  • DRBD failover и репликация блочных устройств
  • DRBD руководство по сборке RPM
  • DRBD конфигурация s1.res

1. Вступительная заметка

DRBD (Distributed Replicated Block Device) — программное решение для зеркалирования содержимого блочных устройств (диски, разделы, логические тома). Главная цель — обеспечить репликацию на уровне блоков для сценариев высокой доступности (Failover) и Disaster Recovery.

Схема примерной архитектуры, используемой в этом руководстве:

+———————————–+ +—————————–+ | [ DRBD Server A ] | 192.168.43.101 | 192.168.43.102 | [ DRBD Server B ] | | OEL641 +———————-+———————–+ OEL642 | | folderA | folderB | +———————————–+ +—————————–+

Совместимо с любыми версиями CentOS/Red Hat/Oracle Linux 6. Необходимо иметь свободное блочное устройство (в примере /dev/sdb1).

2. Фаза установки

Подготовьте оба сервера: обновите систему и установите зависимости для сборки DRBD.

yum -y update
yum -y install gcc make automake autoconf libxslt libxslt-devel flex rpm-build kernel-devel

Вывод установщика может содержать строки о уже установленных пакетах. Выполните эти команды на обоих серверах.

Создайте структуру rpmbuild под /root:

mkdir -p /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

Скачайте исходники DRBD (пример с сайта LINBIT):

wget http://oss.linbit.com/drbd/drbd-utils-latest.tar.gz http://oss.linbit.com/drbd/8.4/drbd-8.4.7-1.tar.gz

Распакуйте архивы:

tar -zxvf drbd-8.4.7-1.tar.gz
tar -zxvf drbd-utils-latest.tar.gz

Соберите пакет ядрового модуля и RPM для DRBD:

cd drbd-8.4.7-1
make km-rpm

В результате вы увидите созданные RPM в /root/rpmbuild/RPMS/i686, например:

/root/rpmbuild/RPMS/i686/drbd-km-2.6.32_358.el6.i686-8.4.7-1.i686.rpm

Далее соберите утилиты drbd-utils:

cd ../drbd-utils-8.9.6
./configure
make rpm

После сборки RPM будут доступны в /root/rpmbuild/RPMS/i686, затем установите их:

cd /root/rpmbuild/RPMS/i686
rpm -Uvh drbd-xen* drbd-udev* drbd-pacemaker* drbd-bash-completion* drbd-utils-*.rpm drbd-km-*.rpm drbd-8*

Повторите те же шаги на втором сервере (OEL642).

3. Проверка модулей и hostname

На сервере OEL641 проверьте hostname — имя должно соответствовать используемому в конфигурации DRBD:

uname -n
OEL641

Загрузите модуль drbd и проверьте его наличие в списке модулей:

modprobe drbd
lsmod | grep drbd
drbd 341783 0
libcrc32c 841 1 drbd

4. Разметка диска (пример /dev/sdb -> /dev/sdb1)

В примере используется новый диск /dev/sdb; создаём раздел /dev/sdb1 и используем его как диск для DRBD.

Проверьте диск:

fdisk -l

Запустите fdisk и создайте первичный раздел:

fdisk /dev/sdb

Пример интерактивных команд (последовательно): n, p, 1, [Enter], [Enter], w

После записи таблицы разделов проверьте ещё раз:

fdisk -l

Повторите те же операции на OEL642.

5. Конфигурация DRBD

Создайте файл ресурса в /etc/drbd.d/ и назовите его s1.res. Этот файл должен быть одинаковым на обоих серверах.

cd /etc/drbd.d/
vi s1.res

Пример содержимого s1.res (копируйте ровно так):

resource s1 {
  on OEL641 {
    device /dev/drbd1;
    disk /dev/sdb1;
    address 192.168.43.101:7799;
    meta-disk internal;
  }
  on OEL642 {
    device /dev/drbd1;
    disk /dev/sdb1;
    address 192.168.43.102:7799;
    meta-disk internal;
  }
}

Скопируйте файл на второй сервер:

scp /etc/drbd.d/s1.res root@OEL642:/etc/drbd.d/s1.res

Инициализируйте метаданные DRBD на обоих серверах:

drbdadm create-md s1

Пример вывода:

initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.
success

6. Запуск и синхронизация

На OEL641 проверьте статус и запустите службу DRBD:

/etc/init.d/drbd status
/etc/init.d/drbd start

Скрипт старта будет ждать появления peer — пока порт и служба на другом сервере не запущены, узел будет в состоянии ожидания.

Запустите DRBD также на OEL642. Когда оба запущены, проверка статуса покажет Connected:

/etc/init.d/drbd status

Пример строки статуса в процессе синхронизации:

1:s1 SyncSource Primary/Secondary UpToDate/Inconsistent C

На OEL641 установите узел как initial primary (перезапись данных на peer):

drbdadm -- --overwrite-data-of-peer primary s1
/etc/init.d/drbd status

На другом сервере статус будет показывать SyncTarget и прогресс синхронизации. После завершения прогресса оба узла будут в состоянии UpToDate.

7. Тестирование DRBD (монтирование, запись и переключение)

На первичном узле OEL641 выполните форматирование устройства DRBD и смонтируйте его:

mkfs.ext3 /dev/drbd1
mkdir /folderA
mount /dev/drbd1 /folderA
df -h

Создайте тестовый файл 30 МБ:

dd if=/dev/zero of=/folderA/testfile bs=1M count=30
ls -lh /folderA

Чтобы переключить примеры: размонтируйте и переведите узел в secondary:

umount /folderA
drbdadm secondary s1
/etc/init.d/drbd status

На OEL642 переведите в primary, смонтируйте и проверьте наличие файла:

mkdir /folderB
drbdadm primary s1
mount /dev/drbd1 /folderB
ls -lh /folderB

Если всё настроено верно, файл testfile, созданный на OEL641, будет присутствовать на OEL642.

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

  • Оба узла показывают статус Connected и UpToDate для ресурса s1.
  • /dev/drbd1 можно смонтировать только на одном узле в режиме Primary (single-primary setup в этом руководстве).
  • После создания файла на первичном узле файл появляется на вторичном после переключения и монтирования.

Быстрый шаблон s1.res

resource s1 {
  on  {
    device /dev/drbd1;
    disk /dev/sdb1;
    address :7799;
    meta-disk internal;
  }
  on  {
    device /dev/drbd1;
    disk /dev/sdb1;
    address :7799;
    meta-disk internal;
  }
}

Замените , , , на реальные значения вашей сети и хостнеймы.

SOP / Короткий план действий (для оператора)

  1. Подготовка: обновить оба сервера, установить пакеты сборки.
  2. Сборка: скачать исходники DRBD, собрать km-rpm и drbd-utils rpm.
  3. Установка: установить созданные RPM на оба сервера.
  4. Разметка: создать /dev/sdb1 на обоих серверах.
  5. Конфигурация: создать /etc/drbd.d/s1.res и распространить на оба узла.
  6. Инициализация: drbdadm create-md s1 на обоих узлах.
  7. Запуск: /etc/init.d/drbd start на обоих узлах.
  8. Первичный: drbdadm – –overwrite-data-of-peer primary s1 на выбранном узле.
  9. Формат и монтирование: mkfs.ext3 /dev/drbd1; mount /dev/drbd1 /folderA.
  10. Тест: создать файл, переключить роли и проверить наличие файла на втором узле.

Чек-лист для ролей

  • Администратор сети:

    • Убедиться в доступности IP и открытых портов между узлами (по умолчанию 7799).
    • Настроить DNS или /etc/hosts для разрешения имён OEL641/OEL642.
  • Системный администратор:

    • Подготовить свободный диск/раздел на обоих узлах.
    • Проверить соответствие версий ядра и установить kernel-devel.
  • Оператор:

    • Выполнить сборку RPM и установить на оба хоста.
    • Протестировать сценарии переключения (failover).

Когда DRBD не подходит / Ограничения

  • Для сценариев с активным доступом с нескольких узлов в режимах, требующих кластерной файловой системы (multi-primary), нужно дополнительное решение (например, GFS2, OCFS2) и соответствующая настройка DRBD в multi-primary режиме.
  • DRBD реплицирует блоки, а не файлы — ошибки на файловой системе (коррупция) тоже будут реплицированы.
  • Для больших задержек сети (WAN) возможны проблемы с производительностью и временем отклика.

Альтернативные подходы

  • Синхронизация на уровне файлов: rsync/Unison (подходит для нелучших требований к RPO/RTO).
  • Репликация на уровне блочных устройств с оборудованием SAN (если доступны).
  • Решения на основе распределённых файловых систем (Ceph, GlusterFS) — для масштабируемых кластеров.

Модель принятия решений (упрощённая)

  • Нужна ли синхронизация в реальном времени и минимальный RPO? -> DRBD.
  • Требуется ли чтение/запись одновременно с нескольких узлов? -> DRBD + кластерная FS или другое решение.
  • Ограничена ли сеть по задержке/пропускной способности? -> Рассмотреть асинхронные методы / репликацию на уровне файлов.
flowchart TD
  A[Требование HA?] -->|Да| B{Нужен single-primary?}
  A -->|Нет| Z[Рассмотреть rsync/backup]
  B -->|Да| C[DRBD single-primary]
  B -->|Нет| D{Нужен multi-primary?}
  D -->|Да| E[DRBD multi-primary + GFS2/OCFS2]
  D -->|Нет| Z

Мини-глоссарий (1 строка на термин)

  • DRBD: программное зеркалирование блочных устройств между серверами.
  • Primary/Secondary: роли DRBD; только Primary может монтировать устройство для записи.
  • Meta-disk internal: хранение метаданных DRBD внутри самого диска (в разделе).

Факто-бокс

  • Порт по умолчанию: 7799
  • Уровень репликации: блочный (block-level)
  • Поддерживаемые цели: локальные диски, разделы, LVM

Тестовые сценарии / критерии приёмки

  • Инициализация: drbdadm create-md s1 проходит без ошибок на обоих узлах.
  • Синхронизация: статус показывает Connected и завершённую синхронизацию (UpToDate).
  • Переключение ролей: при переводе первичного узла в secondary и активации primary на другом узле данные доступны и консистентны.

Меры безопасности и рекомендации

  • Защитите доступ к службе DRBD через брандмауэр — разрешите только IP узлов-участников.
  • Регулярно проверяйте состояние синхронизации и логи (/var/log/messages или системные журналы).
  • Тестируйте процедуру failover в тестовом окружении до применения в production.

Итог

Вы установили DRBD, создали ресурс s1, произвели инициализацию метаданных, выполнили старт и синхронизацию, проверили поведение при переключении ролей и протестировали репликацию данных между OEL641 и OEL642. DRBD — надёжный инструмент для зеркалирования блочных устройств в сценариях высокой доступности, но требует внимания к сетевым задержкам, безопасности и процедурам переключения.

Дополнительные материалы: документация LINBIT и man-страницы drbdadm, drbdsetup.

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

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

Конвертация видео и аудио в VLC — руководство
Мультимедиа

Конвертация видео и аудио в VLC — руководство

Собственная аватарка профиля Netflix — как поставить
Гайды

Собственная аватарка профиля Netflix — как поставить

Смарт‑карты в IPFire: PCSC, CCID, OpenSC
Networking

Смарт‑карты в IPFire: PCSC, CCID, OpenSC

OTRS 5 на CentOS 7 — установка и настройка
DevOps

OTRS 5 на CentOS 7 — установка и настройка

Как скачать Netflix и смотреть офлайн
Руководство

Как скачать Netflix и смотреть офлайн

Удалить «Продолжить просмотр» — Amazon Prime Video
Руководство

Удалить «Продолжить просмотр» — Amazon Prime Video