- DRBD
- Настройка
- Проверка
- Ссылки
- Настраиваем DRBD для репликации хранилища на два CentOS 7 сервера
- Тестовая среда
- Шаг 1: Установка пакетов DRBD
- Шаг 2. Подготовка низкоуровневого хранилища
- Шаг 3. Настройка DRBD
- Шаг 4. Добавление ресурса
- Шаг 5. Инициализация и запуск ресурса
- Шаг 6: Установка основного ресурса/источника начальной синхронизации устройств
- Шаг 7: Тестирование DRBD сетапа
- Резюме
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).
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, но для данного примера прекрасно подходят их значения по умолчанию.
Теперь с помощью утилиты drbdadm инициализируем хранилище метаданных. На каждом сервере выполним:
sudo drbdadm -- --overwrite-data-of-peer primary all
После выполнения вышеприведенной команды данные начнут реплицироваться на вторую систему. Чтобы наблюдать за процессом, на drbd02 введите следующее:
sudo mkfs.ext3 /dev/drbd0 sudo mount /dev/drbd0 /srv
Проверка
Чтобы убедиться, что данные действительно синхронизируются между системами, скопируйте несколько файлов на drbd01 (основной системе) в каталог /srv:
Установите первичному серверу роль вторичного:
sudo drbdadm secondary r0
Теперь установите вторичному серверу роль первичного:
Используя ls вы сможете увидеть /srv/default, скопированный с бывшего первичного сервера drbd01.
Ссылки
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2018 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Настраиваем DRBD для репликации хранилища на два CentOS 7 сервера
DRBD (Distributed Replicated Block Device — распределённое реплицируемое блочное устройство) представляет собой распределенное, гибкое и универсально реплицируемое решение хранения данных для Linux. Оно отражает содержимое блочных устройств, таких как жесткие диски, разделы, логические тома и т.д. между серверами. Оно создает копии данных на двух устройствах хранения для того, чтобы в случае сбоя одного из них можно было использовать данные на втором.
Можно сказать, что это нечто вроде сетевой конфигурации RAID 1 с дисками, отражаемыми на разные сервера. Однако оно работает совсем не так, как RAID (даже сетевой).
Первоначально DRBD использовалось главным образом в компьютерных кластерах высокой доступности (HA — high availability), однако, начиная с девятой версии, оно может использоваться для развертывания решений облачного хранилища.
В этой статье мы расскажем, как установить DRBD в CentOS, и кратко продемонстрируем, как использовать его для репликации хранилища (раздела) на двух серверах. Это идеальная статья для начала работы с DRBD в Linux.
Тестовая среда
Мы будем использовать кластер из двух узлов для этого сетапа.
Шаг 1: Установка пакетов DRBD
DRBD реализован как модуль ядра Linux. Он представляет из себя драйвер для виртуального блочного устройства, поэтому он располагается в самом низу стека ввода-вывода системы.
DRBD может быть установлен из ELRepo или EPEL. Начнем с импорта ключа подписи пакета ELRepo и подключения репозитория на обоих узлах, как показано ниже.
# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
Затем на нужно установить модуль ядра DRBD и утилиты на обоих узлах с помощью:
# yum install -y kmod-drbd84 drbd84-utils
Если у вас подключен SELinux, вам нужно настроить политики так, чтобы освободить процессы DRBD от контроля SELinux.
# semanage permissive -a drbd_t
Кроме того, если в вашей системе работает файрвол (firewalld), вам необходимо добавить порт DRBD 7789, чтобы разрешить синхронизацию данных между двумя узлами.
Запустите эти команды для первого узла:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.102" port port="7789" protocol="tcp" accept' # firewall-cmd --reload
Затем запустите эти команды для второго узла:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.56.101" port port="7789" protocol="tcp" accept' # firewall-cmd --reload
Шаг 2. Подготовка низкоуровневого хранилища
Теперь, когда у нас установлено DRBD на обоих узлах кластера, мы должны подготовить на них области хранения примерно одного и того же размера. Это может быть раздел жесткого диска (или целый физический жесткий диск), программное устройство RAID, логический том LVM или любой другой тип блочного устройства, находящийся в вашей системе.
Для этой статьи мы создадим тестовое блочное устройство размером 2 ГБ с помощью команды dd.
# dd if=/dev/zero of=/dev/sdb1 bs=2024k count=1024
Предположим, что это неиспользуемый раздел (/dev/sdb1) на втором блочном устройстве (/dev/sdb), подключенном к обоим узлам.
Шаг 3. Настройка DRBD
Основной файл конфигурации DRBD — /etc/drbd.conf , а дополнительные файлы конфигурации можно найти в каталоге /etc/drbd.d .
Чтобы реплицировать хранилище, нам нужно добавить необходимые для этого конфигурации в файл /etc/drbd.d/global_common.conf , который содержит глобальные и общие разделы конфигурации DRBD, а определять ресурсы нам нужно в .res файлах.
Сделаем резервную копию исходного файла на обоих узлах, а затем откроем новый файл для редактирования (используйте текстовый редактор по своему вкусу).
# mv /etc/drbd.d/global_common.conf /etc/drbd.d/global_common.conf.orig # vim /etc/drbd.d/global_common.conf
Добавьте в оба файла следующие строки:
Сохраните файл, а затем закройте редактор.
Давайте ненадолго остановимся на строке protocol C. DRBD поддерживает три различных режима репликации (т.е. три степени синхронности репликации), а именно:
- protocol A: протокол асинхронной репликации; чаще всего используется в сценариях репликации на больших расстояниях.
- protocol B: протокол полусинхронной репликации или протокол синхронной памяти.
- protocol C: обычно используется для узлов в сетях с небольшими расстояниями; это безусловно, наиболее часто используемый протокол репликации в настройках DRBD.
Шаг 4. Добавление ресурса
Ресурс (Resource) — это собирательный термин, который относится ко всем аспектам конкретного реплицируемого набора данных. Мы определим наш ресурс в файле /etc/drbd.d/test.res .
Добавьте следующее в файл на обоих узлах (не забудьте заменить переменные фактическими значениями для вашей среды).
Обратите внимание на имена хостов, нам нужно указать сетевое имя хоста, которое можно получить с помощью команды uname -n .
resource test < on tecmint.tecmint.lan < device /dev/drbd0; disk /dev/sdb1; meta-disk internal; address 192.168.56.101:7789; >on server1.tecmint.lan < device /dev/drbd0; disk /dev/sdb1; meta-disk internal; address 192.168.56.102:7789; >> >
- on hostname: раздел on, к которому относится вложенный оператор конфигурации.
- test: это имя нового ресурса.
- device /dev/drbd0: указывает новое виртуальное блочное устройство, управляемое DRBD.
- disk /dev/sdb1: это раздел блочного устройства, который является резервным устройством для устройства DRBD.
- meta-disk: определяет, где DRBD хранит свои метаданные. Internal означает, что DRBD хранит свои метаданные на том же физическом низкоуровневом устройстве, что и фактические данные на продакшене.
- address: указывает IP-адрес и номер порта соответствующего узла.
Например, приведенная выше конфигурация может быть реструктурирована в:
resource test < device /dev/drbd0; disk /dev/sdb1; meta-disk internal; on tecmint.tecmint.lan < address 192.168.56.101:7789; >on server1.tecmint.lan < address 192.168.56.102:7789; >>
Шаг 5. Инициализация и запуск ресурса
Для взаимодействия с DRBD мы будем использовать следующие инструменты администрирования (которые взаимодействуют с модулем ядра для настройки и администрирования ресурсов DRBD):
- drbdadm: инструмент администрирования высокого уровня DRBD.
- drbdsetup: инструмент администрирования более низкого уровня для подключения устройств DRBD к их устройствам резервного копирования, настройки пар устройств DRBD для отражения их устройств резервного копирования и для проверки конфигурации работающих устройств DRBD.
- Drbdmeta: инструмент управления метаданными.
Инициализация хранилища метаданных
Далее мы должны запустить его, что подключит ресурс к его устройству резервного копирования, затем установит параметры репликации и подключит ресурс к своему пиру:
Теперь, если вы запустите команду lsblk, вы заметите, что устройство/том DRBD drbd0 связан с резервным устройством /dev/sdb1 :
Список блочных устройств
Чтобы отключить ресурс, запустите:
Чтобы проверить состояние ресурса, выполните запустите следующую команду (обратите внимание, что на этом этапе ожидается состояние дисков Inconsistent/Inconsistent):
# drbdadm status test OR # drbdsetup status test --verbose --statistics #for a more detailed status
Проверка состояния ресурса на у
злах
Шаг 6: Установка основного ресурса/источника начальной синхронизации устройств
На данном этапе DRBD уже готов к работе. Теперь нам нужно указать, какой узел следует использовать в качестве источника начальной синхронизации устройств.
Запустите следующую команду только на одном узле, чтобы начать первоначальную полную синхронизацию:
# drbdadm primary --force test # drbdadm status test
Установка основного узла в качестве начального устройства
После завершения синхронизации состояние обоих дисков должно быть UpToDate.
Шаг 7: Тестирование DRBD сетапа
Наконец, нам нужно проверить, будет ли DRBD устройство работать так как нужно для хранения реплицированных данных. Помните, что мы использовали пустой том диска, поэтому мы должны создать файловую систему на устройстве и смонтировать ее, чтобы проверить, можем ли мы использовать ее для хранения реплицированных данных.
Нам нужно создать файловую систему на устройстве с помощью следующей команды на узле, с которого мы начали первоначальную полную синхронизацию (на котором есть ресурс с основной ролью):
Создаем файловую систему на томе Drbd
Затем смонтировать ее как показано (вы можете дать точке монтирования подходящее имя):
# mkdir -p /mnt/DRDB_PRI/ # mount /dev/drbd0 /mnt/DRDB_PRI/
Теперь скопируйте или создайте какие-нибудь файлы в указанной выше точке монтирования и сделайте длинный список с помощью команды ls:
Вывести список содержимого основного тома Drbd
Далее размонтируйте устройство (убедитесь, что монтирование не открыто, измените каталог после размонтирования, чтобы избежать ошибок) и измените роль узла с первичного на вторичный:
# umount /mnt/DRDB_PRI/ # cd # drbdadm secondary test
Другой узел (на котором есть ресурс с вторичной ролью) сделайте первичным, затем подключите к нему устройство и выполните длинный список точек монтирования. Если сетап работает нормально, все файлы, хранящиеся на томе, должны быть там:
# drbdadm primary test # mkdir -p /mnt/DRDB_SEC/ # mount /dev/drbd0 /mnt/DRDB_SEC/ # cd /mnt/DRDB_SEC/ # ls -l
Проверка сетапа DRBD, работающего на вторичном узле.
Для получения дополнительной информации обращайтесь к справочным страницам инструментов администрирования:
# man drbdadm # man drbdsetup # man drbdmeta
Резюме
DRBD чрезвычайно гибок и универсален, что делает его решением для репликации хранилища, подходящим для добавления HA практически в любое приложение. В этой статье мы показали, как установить DRBD в CentOS 7, и кратко продемонстрировали, как использовать его для репликации хранилища. Не стесняйтесь делиться своими мыслями с нами с помощью формы обратной связи ниже.