DRBD
Распределенное копируемое блочное устройство (Distributed Replicated Block Device - DRBD) создает зеркало между блочными устройствами нескольких систем. Копирование незаметно (прозрачно) для других приложений на этих системах. Любые блочные устройства: жесткие диски, разделы, RAID устройства, логические тома и т.п. могут зеркалироваться.
Перед началом использования drbd установим необходимые пакеты. Введите в терминале:
sudo apt-get install drbd8-utils
В этом разделе рассматривается установка drbd для репликации отдельных /srv разделов с файловой системой ext3 между двумя системами. Размер разделов не имеет особого значения, но оба раздела должны иметь одинаковый размер.
Настройка
Две системы в этом примере будут называться drbd01 и drbd02. Им потребуется разрешение имен, настроенное через DNS или с помощью файла /etc/hosts. Подробности смотрите в разделе Служба доменных имен (DNS).
Для настройки 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, но для данного примера прекрасно подходят их значения по умолчанию.
Теперь скопируем /etc/drbd.conf на вторую систему:
scp /etc/drbd.conf drbd02:~
И на drbd02 переместим файл в /etc:
sudo mv drbd.conf /etc/
Теперь с помощью утилиты drbdadm инициализируем хранилище метаданных. На каждом сервере выполним:
sudo drbdadm create-md r0
Далее на обеих системах запустим сервис drbd:
sudo /etc/init.d/drbd start
На drbd01 или той системе, которую вы хотите сделать основной, введите следующее:
sudo drbdadm -- --overwrite-data-of-peer primary all
После выполнения вышеприведенной команды данные начнут реплицироваться на вторую систему. Чтобы наблюдать за процессом, на drbd02 введите следующее:
watch -n1 cat /proc/drbd
Для остановки просмотра нажмите Ctrl-C.
Наконец, установим файловую систему на /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.