DRBD · 5 min read · Jan 30, 2026

DRBD 8.3 Репликация Третьего Узла с Debian Etch

DRBD 8.3 Репликация Третьего Узла с Debian Etch

Установка и Настройка DRBD 8.3 + Debian Etch

Настройка Третьего Узла

by Brian Hellman

Недавний релиз DRBD 8.3 теперь включает в себя функцию Третьего Узла как свободно доступный компонент. Этот документ охватывает основы настройки третьего узла на стандартной установке Debian Etch. В конце этого руководства у вас будет устройство DRBD, которое можно использовать как SAN, целевой iSCSI, файловый сервер или сервер баз данных.

Примечание: клиенты поддержки LINBIT могут пропустить Раздел 1 и использовать репозитории пакетов.

У LINBIT есть доступные решения для третьего узла, пожалуйста, свяжитесь с ними по адресу sales_us at linbit.com для получения дополнительной информации.

Предисловие:

Настройка следующая:

  • Три сервера: alpha, bravo, foxtrot
  • alpha и bravo являются первичным и вторичным локальными узлами
  • foxtrot — третий узел, который находится в удаленной сети
  • Оба alpha и bravo имеют интерфейсы в сети 192.168.1.x (eth0) для внешней связи.
  • Существует перекрестное соединение на alpha и bravo (eth1) для репликации с использованием 172.16.6.10 и .20
  • Heartbeat предоставляет виртуальный IP 192.168.5.2 для связи с узлом восстановления после катастрофы, расположенным в географически разнообразном месте

Раздел 1: Установка Исходников

Эти шаги необходимо выполнить на каждом из 3 узлов.

Предварительные требования:

  • make
  • gcc
  • библиотеки разработки glibc
  • генератор сканеров flex
  • заголовки для текущего ядра

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

apt-get install make gcc libc6 flex linux-headers-uname -r libc6-dev linux-kernel-headers

После установки зависимостей загрузите DRBD. Последнюю версию всегда можно получить по адресу http://oss.linbit.com/drbd/. В настоящее время это 8.3.

cd /usr/src/
wget http://oss.linbit.com/drbd/8.3/drbd-8.3.0.tar.gz

После завершения загрузки:

  • Распакуйте DRBD
  • Перейдите в каталог исходников
  • Скомпилируйте исходники
  • Установите DRBD

tar -xzvf drbd-8.3.0.tar.gz
cd /usr/src/drbd-8.3.0/
make clean all
make install

Теперь загрузите и проверьте модуль:

modprobe drbd
cat /proc/drbd

version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@alpha, 2009-02-05 10:36:11

После завершения этого процесса на каждом из трех узлов продолжайте к следующему разделу.

Раздел 2: Конфигурация Heartbeat

Настройка третьего узла подразумевает наложение DRBD на DRBD. Виртуальный IP необходим для подключения третьего узла, для этого мы настроим простую конфигурацию Heartbeat v1. Этот раздел будет выполнен только на alpha и bravo.

Установите Heartbeat:

apt-get install heartbeat

Отредактируйте файл authkeys:

vi /etc/ha.d/authkeys

auth 1
1 sha1 yoursupersecretpasswordhere

После создания файла измените разрешения на файл. Heartbeat не запустится, если этот шаг не будет выполнен.

chmod 600 /etc/ha.d/authkeys

Скопируйте файл authkeys на bravo:

scp /etc/ha.d/authkeys bravo:/etc/ha.d/

Отредактируйте файл ha.cf:

vi /etc/ha.d/ha.cf
debugfile /var/log/ha-debug
    logfile /var/log/ha-log
    logfacility     local0
    keepalive 1
    deadtime 10
    warntime 5
    initdead 60
    udpport 694
    ucast eth0 192.168.1.10
    ucast eth0 192.168.1.20
    auto_failback off
    node alpha
    node bravo

Скопируйте файл ha.cf на bravo:

scp /etc/ha.d/ha.cf bravo:/etc/ha.d/

Отредактируйте файл haresources, IP, созданный здесь, будет IP, на который ссылается наш третий узел.

vi /etc/ha.d/haresources
alpha IPaddr::192.168.5.2/24/eth0

Скопируйте файл haresources на bravo:

scp /etc/ha.d/haresources bravo:/etc/ha.d/

Запустите службу heartbeat на обоих серверах, чтобы поднять виртуальный IP:

alpha:/# /etc/init.d/heartbeat start
bravo:/# /etc/init.d/heartbeat start

Heartbeat поднимет новый интерфейс (eth0:0).

Примечание: может потребоваться до одной минуты, чтобы heartbeat поднял интерфейс.

alpha:/# ifconfig eth0:0

eth0:0 Link encap:Ethernet HWaddr 00:08:C7:DB:01:CC
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Раздел 3: Конфигурация DRBD

Конфигурация для DRBD выполняется через файл drbd.conf. Он должен быть одинаковым на всех узлах (alpha, bravo, foxtrot). Обратите внимание, что использование счетчика установок установлено в yes, что означает, что он уведомит Linbit о том, что вы установили DRBD. Личная информация не собирается. Пожалуйста, смотрите эту страницу для получения дополнительной информации:

global { usage-count yes; }

resource data-lower {
  protocol C;
  net {
    shared-secret "LINBIT";
  }
syncer {
    rate 12M;
}

  on alpha {
    device     /dev/drbd1;
    disk       /dev/hdb1;
    address    172.16.6.10:7788;
    meta-disk  internal;
  }

  on bravo {
    device    /dev/drbd1;
    disk      /dev/hdd1;
    address   172.16.6.20:7788;
    meta-disk internal;
  }
}

  resource data-upper {
  protocol A;
  syncer {
    after data-lower;
    rate 12M;
    al-extents 513;
  }
  net {
        shared-secret "LINBIT";
  }
  stacked-on-top-of data-lower {
        device /dev/drbd3;
        address 192.168.5.2:7788; # IP предоставленный Heartbeat
        }

  on foxtrot {
    device     /dev/drbd3;
    disk       /dev/sdb1;
    address    192.168.5.3:7788; # Публичный IP резервного узла
    meta-disk  internal;
  }
}

Раздел 4: Подготовка Устройств DRBD

Теперь, когда конфигурация готова, создайте метаданные на alpha и bravo.

alpha:/usr/src/drbd-8.3.0# drbdadm create-md data-lower

Запись метаданных…
инициализация журнала активности
НЕ инициализированный битмап
Новый блок метаданных drbd успешно создан.

bravo:/usr/src/drbd-8.3.0# drbdadm create-md data-lower

Запись метаданных…
инициализация журнала активности
НЕ инициализированный битмап
Новый блок метаданных drbd успешно создан.

Теперь запустите DRBD на alpha и bravo:

alpha:/usr/src/drbd-8.3.0# /etc/init.d/drbd start
bravo:/usr/src/drbd-8.3.0# /etc/init.d/drbd start

Проверьте, что устройства DRBD нижнего уровня подключены:

cat /proc/drbd

version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@alpha, 2009-02-05 10:36:11
0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r—
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:19530844

Скажите alpha стать первичным узлом:

ПРИМЕЧАНИЕ: как указано в команде, это перезапишет любые данные на bravo: сейчас хорошее время, чтобы взять ваш любимый напиток.

alpha:/# drbdadm – –overwrite-data-of-peer primary data-lower
alpha:/# cat /proc/drbd

version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@alpha, 2009-02-05 10:36:11
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r—
ns:3088464 nr:0 dw:0 dr:3089408 al:0 bm:188 lo:23 pe:6 ua:53 ap:0 ep:1 wo:b oos:16442556
[==>……………..] sync’ed: 15.9% (16057/19073)M
finish: 0:16:30 speed: 16,512 (8,276) K/sec

После завершения синхронизации данных создайте метаданные на data-upper на alpha, затем на foxtrot.

Обратите внимание, что ресурс — это data-upper, и опция –stacked только на alpha.

alpha:~# drbdadm –stacked create-md data-upper

Запись метаданных…
инициализация журнала активности
НЕ инициализированный битмап
Новый блок метаданных drbd успешно создан.
успех

foxtrot:/usr/src/drbd-8.3.0# drbdadm create-md data-upper

Запись метаданных…
инициализация журнала активности
НЕ инициализированный битмап
Новый блок метаданных drbd успешно создан.

Поднимите вложенный ресурс, затем сделайте alpha первичным для data-upper:

alpha:/# drbdadm --stacked adjust data-upper

foxtrot:~# drbdadm adjust data-upper
foxtrot:~# cat /proc/drbd

version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@foxtrot, 2009-02-02 10:28:37
1: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent A r—
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:19530208

alpha:~# drbdadm –stacked – –overwrite-data-of-peer primary data-upper
alpha:~# cat /proc/drbd

version: 8.3.0 (api:88/proto:86-89)
GIT-hash: 9ba8b93e24d842f0dd3fb1f9b90e8348ddb95829 build by root@alpha, 2009-02-05 10:36:11
0: cs:Connected ro:Primary/Secondary ds:UpToDate/UpToDate C r—
ns:19532532 nr:0 dw:1688 dr:34046020 al:1 bm:1196 lo:156 pe:0 ua:0 ap:156 ep:1 wo:b oos:0
1: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent A r—
ns:14512132 nr:0 dw:0 dr:14512676 al:0 bm:885 lo:156 pe:32 ua:292 ap:0 ep:1 wo:b oos:5018200
[=============>……] sync’ed: 74.4% (4900/19072)M
finish: 0:07:06 speed: 11,776 (10,992) K/sec

Снова время для напитка!

После завершения синхронизации получите доступ к вашему блочному устройству DRBD через /dev/drbd3. Это будет записывать на оба локальных узла и удаленный третий узел. В вашей конфигурации Heartbeat вы будете использовать скрипт “drbdupper” для поднятия вашего устройства /dev/drbd3. Удачи!

DRBD® и LINBIT® являются зарегистрированными товарными знаками LINBIT, Австрия.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.