Это старая версия документа.


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

Тестирование

To test that the data is actually syncing between the hosts copy some files on the drbd01, the primary, to /srv:

sudo cp -r /etc/default /srv

Next, unmount /srv:

sudo umount /srv

Demote the primary server to the secondary role:

sudo drbdadm secondary r0

Now on the secondary server promote it to the primary role:

sudo drbdadm primary r0

Lastly, mount the partition:

sudo mount /dev/drbd0 /srv

Using ls you should see /srv/default copied from the former primary host drbd01.

Ссылки

  For more information on DRBD see the DRBD web site.
  The drbd.conf man page contains details on the options not covered in this guide.
  Also, see the drbdadm man page.
  The DRBD Ubuntu Wiki page also has more information.