DRBD

Распределенное копируемое блочное устройство (Distributed Replicated Block Device - DRBD) создает зеркало между блочными устройствами нескольких систем. Копирование незаметно (прозрачно) для других приложений на этих системах. Любые блочные устройства: жесткие диски, разделы, RAID устройства, логические тома и т.п. могут зеркалироваться.

Перед началом использования drbd установим необходимые пакеты. Введите в терминале:

sudo apt-get install drbd8-utils
Если вы используете виртуальное ядро, как часть виртуальной машины, вам потребуется вручную скомпилировать модуль drbd. Возможно более простым способом окажется установка пакета linux-server внутри виртуально машины.

В этом разделе рассматривается установка drbd для репликации отдельных /srv разделов с файловой системой ext3 между двумя системами. Размер разделов не имеет особого значения, но оба раздела должны иметь одинаковый размер.

Настройка

Две системы в этом примере будут называться drbd01 и drbd02. Им потребуется разрешение имен, настроенное через DNS или с помощью файла /etc/hosts. Подробности смотрите в разделе Служба доменных имен (DNS).

  1. Для настройки drbd на первой системе отредактируйте /etc/drbd.conf:

    global { usage-count no; }
    common { syncer { rate 100M; } }
    resource r0 {
            protocol C;
            startup {
                    wfc-timeout  15;
                    degr-wfc-timeout 60;
            }
            net {
                    cram-hmac-alg sha1;
                    shared-secret "secret";
            }
            on drbd01 {
                    device /dev/drbd0;
                    disk /dev/sdb1;
                    address 192.168.0.1:7788;
                    meta-disk internal;
            }
            on drbd02 {
                    device /dev/drbd0;
                    disk /dev/sdb1;
                    address 192.168.0.2:7788;
                    meta-disk internal;
            }
    }

    :!: Существует множество других опций в /etc/drbd.conf, но для данного примера прекрасно подходят их значения по умолчанию.

  2. Теперь скопируем /etc/drbd.conf на вторую систему:

    scp /etc/drbd.conf drbd02:~
  3. И на drbd02 переместим файл в /etc:

    sudo mv drbd.conf /etc/
  4. Теперь с помощью утилиты drbdadm инициализируем хранилище метаданных. На каждом сервере выполним:

    sudo drbdadm create-md r0
  5. Далее на обеих системах запустим сервис drbd:

    sudo /etc/init.d/drbd start
  6. На drbd01 или той системе, которую вы хотите сделать основной, введите следующее:

    sudo drbdadm -- --overwrite-data-of-peer primary all
  7. После выполнения вышеприведенной команды данные начнут реплицироваться на вторую систему. Чтобы наблюдать за процессом, на drbd02 введите следующее:

    watch -n1 cat /proc/drbd

    Для остановки просмотра нажмите Ctrl-C.

  8. Наконец, установим файловую систему на /dev/drbd0 и укажем точку монтирования:

        sudo mkfs.ext3 /dev/drbd0
        sudo mount /dev/drbd0 /srv

Проверка

Чтобы убедиться, что данные действительно синхронизируются между системами, скопируйте несколько файлов на drbd01 (основной системе) в каталог /srv:

sudo cp -r /etc/default /srv

Далее, отсоедините /srv:

sudo umount /srv

Установите первичному серверу роль вторичного:

sudo drbdadm secondary r0

Теперь установите вторичному серверу роль первичного:

sudo drbdadm primary r0

Наконец, монтируем раздел:

sudo mount /dev/drbd0 /srv

Используя ls вы сможете увидеть /srv/default, скопированный с бывшего первичного сервера drbd01.

Ссылки

  1. Для дополнительной информации по DRBD посетите сайт DRBD.

  2. Страница руководства drbd.conf содержит подробности по опциям, не описанным в данном руководстве.

  3. Также посмотрите страницу руководства по drbdadm.

  4. Дополнительную информацию также содержит страница DRBD Ubuntu Wiki.