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


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).

  To configure drbd, on the first host edit /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;
          }
  } 
  There are many other options in /etc/drbd.conf, but for this example their default values are fine.
  Now copy /etc/drbd.conf to the second host:
  scp /etc/drbd.conf drbd02:~
  And, on drbd02 move the file to /etc:
  sudo mv drbd.conf /etc/
  Now using the drbdadm utility initialize the meta data storage. On each server execute:
  sudo drbdadm create-md r0
  Next, on both hosts, start the drbd daemon:
  sudo /etc/init.d/drbd start
  On the drbd01, or whichever host you wish to be the primary, enter the following:
  sudo drbdadm -- --overwrite-data-of-peer primary all
  After executing the above command, the data will start syncing with the secondary host. To watch the progress, on drbd02 enter the following:
  watch -n1 cat /proc/drbd
  To stop watching the output press Ctrl+c.
  Finally, add a filesystem to /dev/drbd0 and mount it:
  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.