Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
wiki:руководство_по_ubuntu_server:кластеризация:drbd [2012/10/27 12:04] создано |
wiki:руководство_по_ubuntu_server:кластеризация:drbd [2012/10/27 15:58] (текущий) [Ссылки] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | <style float-left> | ||
+ | [[wiki:руководство_по_ubuntu_server|Руководство по Ubuntu Server]] >> | ||
+ | [[wiki:руководство_по_ubuntu_server:кластеризация|Кластеризация]]</style> | ||
+ | <style float-right> | ||
+ | [[wiki:руководство_по_ubuntu_server:кластеризация|<-назад]] | | ||
+ | [[wiki:руководство_по_ubuntu_server:частные_сети|далее->]]</style> | ||
+ | |||
=====DRBD===== | =====DRBD===== | ||
- | Distributed Replicated Block Device (DRBD) mirrors block devices between multiple hosts. The replication is transparent to other applications on the host systems. Any block device hard disks, partitions, RAID devices, logical volumes, etc can be mirrored. | + | Распределенное копируемое блочное устройство (Distributed Replicated Block Device - DRBD) создает зеркало между блочными устройствами нескольких систем. Копирование незаметно (прозрачно) для других приложений на этих системах. Любые блочные устройства: жесткие диски, разделы, RAID устройства, логические тома и т.п. могут зеркалироваться. |
- | To get started using drbd, first install the necessary packages. From a terminal enter: | + | Перед началом использования **drbd** установим необходимые пакеты. Введите в терминале: |
+ | <code>sudo apt-get install drbd8-utils</code> | ||
+ | <note>Если вы используете виртуальное ядро, как часть виртуальной машины, вам потребуется вручную скомпилировать модуль **drbd**. Возможно более простым способом окажется установка пакета **linux-server** внутри виртуально машины.</note> | ||
- | sudo apt-get install drbd8-utils | + | В этом разделе рассматривается установка **drbd** для репликации отдельных /srv разделов с файловой системой ext3 между двумя системами. Размер разделов не имеет особого значения, но оба раздела должны иметь одинаковый размер. |
- | + | ||
- | If you are using the virtual kernel as part of a virtual machine you will need to manually compile the drbd module. It may be easier to install the linux-server package inside the virtual machine. | + | |
- | + | ||
- | This section covers setting up a drbd to replicate a separate /srv partition, with an ext3 filesystem between two hosts. The partition size is not particularly relevant, but both partitions need to be the same size. | + | |
- | + | ||
- | Configuration | + | |
- | Testing | + | |
- | References | + | |
====Настройка==== | ====Настройка==== | ||
- | The two hosts in this example will be called drbd01 and drbd02. They will need to have name resolution configured either through DNS or the /etc/hosts file. See Domain Name Service (DNS) for details. | + | Две системы в этом примере будут называться **drbd01** и **drbd02**. Им потребуется разрешение имен, настроенное через **DNS** или с помощью файла **/etc/hosts**. Подробности смотрите в разделе [[wiki:руководство_по_ubuntu_server:служба_доменных_имен|Служба доменных имен (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: | + | |
+ | -- Для настройки **drbd** на первой системе отредактируйте /etc/drbd.conf: | ||
+ | .. <code> | ||
+ | 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; | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | .. :!: **//Существует множество других опций в /etc/drbd.conf, но для данного примера прекрасно подходят их значения по умолчанию.//** | ||
+ | -- Теперь скопируем /etc/drbd.conf на вторую систему: | ||
+ | .. <code>scp /etc/drbd.conf drbd02:~</code> | ||
+ | -- И на **drbd02** переместим файл в /etc: | ||
+ | .. <code>sudo mv drbd.conf /etc/</code> | ||
+ | -- Теперь с помощью утилиты **drbdadm** инициализируем хранилище метаданных. На каждом сервере выполним: | ||
+ | .. <code>sudo drbdadm create-md r0</code> | ||
+ | -- Далее на обеих системах запустим сервис **drbd**: | ||
+ | .. <code>sudo /etc/init.d/drbd start</code> | ||
+ | -- На **drbd01** или той системе, которую вы хотите сделать основной, введите следующее: | ||
+ | .. <code>sudo drbdadm -- --overwrite-data-of-peer primary all</code> | ||
+ | -- После выполнения вышеприведенной команды данные начнут реплицироваться на вторую систему. Чтобы наблюдать за процессом, на **drbd02** введите следующее: | ||
+ | .. <code>watch -n1 cat /proc/drbd</code> | ||
+ | .. Для остановки просмотра нажмите Ctrl-C. | ||
+ | -- Наконец, установим файловую систему на /dev/drbd0 и укажем точку монтирования: | ||
+ | .. <code> | ||
sudo mkfs.ext3 /dev/drbd0 | sudo mkfs.ext3 /dev/drbd0 | ||
sudo mount /dev/drbd0 /srv | sudo mount /dev/drbd0 /srv | ||
+ | </code> | ||
- | ====Тестирование==== | + | ====Проверка==== |
- | To test that the data is actually syncing between the hosts copy some files on the drbd01, the primary, to /srv: | + | Чтобы убедиться, что данные действительно синхронизируются между системами, скопируйте несколько файлов на **drbd01** (основной системе) в каталог /srv: |
+ | <code>sudo cp -r /etc/default /srv</code> | ||
- | sudo cp -r /etc/default /srv | + | Далее, отсоедините /srv: |
+ | <code>sudo umount /srv</code> | ||
- | Next, unmount /srv: | + | Установите первичному серверу роль вторичного: |
+ | <code>sudo drbdadm secondary r0</code> | ||
- | sudo umount /srv | + | Теперь установите вторичному серверу роль первичного: |
+ | <code>sudo drbdadm primary r0</code> | ||
- | Demote the primary server to the secondary role: | + | Наконец, монтируем раздел: |
+ | <code>sudo mount /dev/drbd0 /srv</code> | ||
- | sudo drbdadm secondary r0 | + | Используя **ls** вы сможете увидеть /srv/default, скопированный с бывшего первичного сервера **drbd01**. |
- | + | ||
- | 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. | + | -- Для дополнительной информации по DRBD посетите [[http://www.drbd.org/|сайт DRBD]]. |
- | + | -- Страница руководства [[http://manpages.ubuntu.com/manpages/precise/en/man5/drbd.conf.5.html|drbd.conf]] содержит подробности по опциям, не описанным в данном руководстве. | |
- | The drbd.conf man page contains details on the options not covered in this guide. | + | -- Также посмотрите страницу руководства по [[http://manpages.ubuntu.com/manpages/precise/en/man8/drbdadm.8.html|drbdadm]]. |
- | + | -- Дополнительную информацию также содержит страница [[https://help.ubuntu.com/community/DRBD|DRBD Ubuntu Wiki]]. | |
- | Also, see the drbdadm man page. | + | |
- | The DRBD Ubuntu Wiki page also has more information. | + | ---- |
+ | <style float-right> | ||
+ | [[wiki:руководство_по_ubuntu_server:кластеризация|<-назад]] | | ||
+ | [[wiki:руководство_по_ubuntu_server:частные_сети|далее->]]</style> | ||