ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как установить DRBD на CentOS

Как установить DRBD на CentOS

В этом пошаговом руководстве демонстрируется установка распределенного Реплицированного блочного устройства (DRBD) на CentOS Linux.

Что такое DRBD?

DRBD (распределенное реплицируемое блочное устройство) – это программный пакет для Linux-систем. Он используется для репликации устройств хранения данных с одного узла на другой узел по сети.

Он может предоставить помощь для решения проблем аварийного восстановления и отработки отказа. DRBD можно понимать как высокую доступность оборудования и может рассматриваться как замена сетевых хранилищ.

Как работает DRBD?

Как установить DRBD на CentOS

Предположим, что мы хотим кластеризировать раздел хранения в системе с 2 centos, нам требуется блочное устройство (например, /dev/sdb1) в обеих системах. Эти системы определяются как первичный и вторичный узлы (могут переключаться между первичными и вторичными узлами). DRBD использует виртуальное блочное устройство (например, drbd0) для совместного использования блочных устройств /dev/sdb1 обеих систем. Основным узлом является то, где виртуальный диск drbd0 смонтирован для чтения/записи цели.

Для начала необходимо установить пакеты DRBD, которые используются для создания виртуального диска drbd0. Мы можем отформатировать его как файловую систему xfs или ext3 для использования устройства /dev/drbd0.
Устройство drbd0 настроено на использование блок устройств /dev/sdb1 на обеих системах. Теперь мы работаем только на устройстве drbd0.

Поскольку drbd0 может быть смонтирован только на первичном узле, доступ к содержимому осуществляется только с первичного узла. В любом случае, если основная система выходит из строя, мы можем потерять системные файлы, но виртуальное устройство drbd0 будет доступно, мы можем переключить изначально вторичный узел как первичный и снова получить доступ к его содержимому.

Использование DRBD на Centos7

Требования

Установка

Здесь мы следуем за установкой, добавляя репозиторий epel, так как пакеты drbd недоступны в дистрибутивах centos.

$ rpm -ivh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

 

также добавьте gpg-ключ на обоих узлах. GPG-ключ – открытый ключ, используемый для шифрования связи между узлами.

$ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org

 

Теперь мы можем использовать yum для установки пакетов drbd. Мы должны определить версию drbd, Поддерживаемые нашим ядром. Проверьте версии drbd, доступные для вашего ядра:

$ yum info *drbd* | grep Name

 

Вывод будет такой:

Как установить DRBD на CentOS

Теперь установите требуемую версию drbd вместе с необходимыми модулями ядра.

$ yum -y install drbd84-utils kmod-drbd84

 

Проверьте, загружен ли модуль ядра или нет.

$ lsmod | grep -i drbd

 

если ответ команды выше дает пустые Выходные данные, то модули ядра не загружаются. Вам нужно перезагрузить систему и попробовать:

$ modprobe drbd

 

modprobe – это команда, которая грамотно добавляет или удаляет модули из ядра linux. Для того чтобы сделать модули загружаемые при каждой загрузке, добавьте службу systemd-modules-load. Итак, создайте файл с именем drbd.conf внутри /etc/modulesload.d.

$ echo drbd > /etc/modules-load.d/drbd.conf

 

Настройка DRBD

Конфигурационные файлы DRBD находятся в каталоге /etc/drbd.d/
По умолчанию /etc/drbd.d/global_common.conf доступен и содержит глобальные или основные конфигурации. Другие файлы конфигурации называются файлами ресурсов с расширением  *.res, сейчас мы создадим ресурс файлов конфигурации на обоих узлах и будем использовать drbd для указанного блока устройства.

Создайте файл ресурсов с именем andreyex.res

$ vi /etc/drbd.d/andreyex.res

 

скопируйте и вставьте содержимое ниже в файл ресурсов

resource andreyex {
protocol C;          
on node1 {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 10.20.222.14:7788;
                meta-disk internal;
                }
on node2 {
                device /dev/drbd0;
                disk /dev/sdb1;
                address 10.20.222.15:7788;
                meta-disk internal;
                }
}

 

Здесь:

  1. протокол А: протокол асинхронной репликации. Обычно предпочтительнее для узлов в длинных удаленных сетях.
  2. протокол Б: полусинхронной репликации протокола. Также вызывается как синхронный протокол памяти.
  3. протокол С: предпочтительный для узлов в близким расположением сетей.

Конфигурация должна быть одинаковой на обоих узлах.

Теперь нам нужно инициализировать хранение метаданных на каждом узле:

$ drbdadm create-md andreyex

 

если выдается сообщение об ошибке, то вы должны создать фиктивный файл данных вручную, и затем попробовать выше команду.

$ dd if=/dev/zero of=/dev/sdb1 bs=1024k count=1024

 

Команда dd используется для создания случайного файла с указанной памятью.

Команда md должна быть успешной.

После использования логического устройства, подключите устройство drbd0 к диску sdb1 на обоих узлах. См. Выходные данные lsblk

$ lsblk

 

Выходные данные должны быть такими

Как установить DRBD на CentOS

в противном случае подключите устройство drbd0 к диску sdb1 через файл ресурсов.

$ drbdadm attach andreyex
or
$ drbdadm up andreyex

Once again try,
$ lsblk

 

Запустите и включите службу drbd на обоих узлах.

$ systemctl start drbd
$ systemctl enable drbd

 

Запуск может быть быстрым для одного узла и занять некоторое время для другого узла.

Настройка первичных и вторичных узлов

DRDB использует только один узел в то время, как основной узел, где чтение и запись могут быть предварительно сформированы.

сначала мы определим узел 1 в качестве основного узла.

$ drbdadm primary andreyex --force

 

Проверка состояния процесса drbd:

$ cat /proc/drbd 
or 
$ drbd-overview

 

Выходные данные выглядят так:

Как установить DRBD на CentOS

Здесь мы можем получить информацию :

Другой узел, node2 автоматически устанавливается как вторичный узел. см. Раздел состояние процесса обзора drbd.

Основной шаг, который мы еще не выполнили, является форматирование устройства drbd0. Это можно сделать только на одном из узлов.

Здесь мы форматируем drbd0 как ext3. также работает файловая система xfs. Лучше использовать тот же тип диска, что и в /dev/sdb1.

$ mkfs -t ext3 /dev/drbd0

 

Теперь, снова на первичном узле, (например, это node1 в этой статье), мы должны смонтировать устройство drbd0, чтобы иметь возможность работать с ним.

$ mount /dev/drbd0  /mnt 

you can select your required mount point instead of /mnt. for example, I can mount the /dev/drbd0 device to /var/lib/mysql to use it for mysql database drbd.

 

Тестирование процесса DRBD

После установки drbd на обоих узлах, один узел становится основным. Мы смонтировали устройство в /mnt. Теперь создайте файл для проверки синхронизации узлов drbd.

$ touch  /mnt/drbdtest.txt
$ ll /mnt/

 

После этого мы установим node1 как вторичный и node2 как первичный. Процесс похож на зеркальный. На узле 1 (на первичном узле экземпляра) отключите устройство /dev/drbd0, сделайте его вторичным. В node2 (на экземпляре вторичный узел) сделайте его первичным узлом и смонтируйте в требуемое расположение.

на узле 1:

$ umount  /mnt
$ drbdadm secondary andreyex

 

на узле 2:

$ drbdadm primary andreyex
$ mount /dev/drbd0  /mnt

 

после успешного монтирования в node2 проверьте папку файлов /mnt. Вы должны увидеть drbdtest.txt-файл (создан на node1).

$ ll  /mnt/

 

Если вы хотите использовать графический интерфейс для управления и визуализации drbd кластер узлов, вы можете использовать lcmc (кластера консоли управления Linux).

Вот и все! Вы успешно установили DRBD в вашей системе. Если останутся какие-либо вопросы, вы можете прокомментировать ниже в разделе комментариев.

Exit mobile version