AllInfo
Main: Info Blog Temp Mail


unix 2017-05-11 09-30-53

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).
Для настройки 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.

18.224.32.243 / 2024-12-22_20-07-32 UTC.