How-to-Setup-DRBD-to-Replicate-Storage-on-Two-CentOS-7-Servers

Как настроить DRBD для Replicate Storage на двух серверах CentOS 7?

DRBD (Distributed Replicated Block Device) — это распределенное, гибкое и универсальное решение для реплицированного хранилища для Linux. Оно отражает содержимое блочных устройств, таких как жесткие диски, разделы, логические тома и т.д. между серверами. DRBD включает в себя копию данных на двух устройствах хранения, так что в случае сбоя одного из них можно использовать данные на другом.

Вы можете думать об этом как о конфигурации RAID 1 с дисками, зеркально отображаемыми на серверах. Однако всё это работает совсем не так, как RAID и даже не как сетевой RAID.

Первоначально DRBD использовался главным образом в компьютерных кластерах высокой доступности (HA), однако, начиная с версии 9, его можно использовать для развертывания решений облачного хранения.

В этой статье мы покажем, как установить DRBD в CentOS и кратко продемонстрируем, как использовать его для репликации хранилища (раздела) на двух серверах. Это идеальная статья для начала работы с DRBD в Linux.

 

Тестовая среда

В этой статье мы используем кластер из двух узлов для настройки:

  • Узел 1: 192.168.56.101sedicomm.sedicomm.lan 
  • Узел 2: 192.168.56.102server1.sedicomm.lan 

 

 

Шаг 1: Установка пакетов DRBD

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

DRBD может быть установлен из репозиториев ELRepo или EPEL. Начнем с импорта ключа подписи пакета ELRepo и включения репозитория, как показано на обоих узлах:

 

 

Затем мы можем установить модуль ядра DRBD и утилиты на обоих узлах, выполнив:

 

 

Если у вас включен SELinux, вам нужно изменить политику, чтобы освободить процессы DRBD от контроля SELinux:

 

 

Кроме того, если в вашей системе включен брандмауэр (firewalld), вам необходимо добавить порт DRBD 7789 в брандмауэр, чтобы разрешить синхронизацию данных между двумя узлами.

Запустите эти команды на первом узле:

 

 

Затем выполните эти команды на втором узле:

 

 

Шаг 2: Подготовка хранилища нижнего уровня

Теперь, когда у нас есть DRBD, установленный на двух узлах кластера, мы должны подготовить область хранения примерно одинакового размера на обоих узлах. Это может быть раздел жесткого диска (или полный физический жесткий диск), программное устройство RAID, логический том LVM или любой другой тип блочного устройства, найденный в вашей системе.

В этой статье мы создадим фиктивное блочное устройство размером 2 ГБ с помощью команды dd:

 

 

Предположим, что это неиспользуемый раздел (/dev/sdb1) на втором блочном устройстве (/dev/sdb), подключенный к обоим узлам.

 

 

Шаг 3: Настройка DRBD

Основной файл конфигурации DRBD находится в /etc/drbd.conf, а дополнительные файлы конфигурации можно найти в каталоге /etc/drbd.d.

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

Давайте создадим резервную копию исходного файла на обоих узлах, а затем откроем новый файл для редактирования (используйте текстовый редактор по своему вкусу).

 

 

Добавьте следующие строки в оба файла:

 

 

Сохраните файл, а затем закройте редактор.

 

 

Кратко остановимся на линейном протоколе C. DRBD поддерживает три различных режима репликации (три степени синхронности репликации), которые:

  • протокол A: протокол асинхронной репликации; чаще всего используется в сценариях репликации на большие расстояния.
  • протокол B: протокол полусинхронной репликации, также известный как синхронный протокол памяти.
  • протокол C: обычно используется для узлов в сетях с коротким расстоянием; это, безусловно, наиболее часто используемый протокол репликации в настройках DRBD.

 

 

Важно: выбор протокола репликации влияет на два фактора развертывания: защита и задержка. А пропускная способность, напротив, в значительной степени не зависит от выбранного протокола репликации.

 

 

Шаг 4: Добавление Resource

Resource — это общий термин, который относится ко всем аспектам конкретного реплицируемого набора данных. Мы определим наш Resource в файле /etc/drbd.d/test.res.

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

Обратите внимание на имена хостов, нам нужно указать сетевое имя хоста, которое можно получить, выполнив команду “uname -n“:

 

 

где:

  • on hostname: в разделе on указаны состояния, к которым относятся вложенные операторы конфигурации.
  • test: это имя нового ресурса.
  • device /dev/drbd0: указывает новое виртуальное блочное устройство, управляемое DRBD.
  • disk /dev/sdb1: это раздел блочного устройства, который является резервным устройством для DRBD.
  • meta-disk: определяет, где DRBD хранит свои метаданные. Использование Internal означает, что DRBD хранит свои метаданные на том же физическом устройстве нижнего уровня, что и фактические производственные данные.
  • address: указывает IP-адрес и номер порта соответствующего узла.

 

 

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

Например, приведенная выше конфигурация может быть изменена:

 

 

Шаг 5: Инициализация и разрешение Resource

Для взаимодействия с DRBD мы будем использовать следующие инструменты администрирования, которые взаимодействуют с модулем ядра для настройки и администрирования ресурсов DRBD:

  • drbdadm: инструмент администрирования высокого уровня DRBD.
  • drbdsetup: инструмент администрирования более низкого уровня для подключения устройств DRBD к их устройствам резервного блока; для настройки пар устройств DRBD; для зеркального отображения их устройств резервного блока и для проверки конфигурации работающих устройств DRBD.
  • Drbdmeta: инструмент управления метаданными.

 

 

После добавления всех начальных конфигураций ресурса мы должны вызвать Resource на обоих узлах:

 

 

Initialize-Meta-Data-Storage

 

 

Далее, мы должны разрешить Resource, который будет подключать его к устройству поддержки; затем он устанавливает параметры репликации и подключает Resource к своему пиру:

 

 

Теперь, если вы запустите команду lsblk, вы заметите, что устройство DRBD device/volume drbd0 связано с устройством поддержки /dev/sdb1:

 

 

List-Block-Devices

 

 

Чтобы отключить Resource, запустите:

 

 

Чтобы проверить состояние Resource, выполните следующую команду (обратите внимание, что на этом этапе ожидается “Inconsistent” состояние диска):

 

 

Или же:

 

 

Check-Resource-Status-on-Nodes

 

 

Шаг 6: Установка основного ресурса/источника начальной синхронизации устройства

На этом этапе DRBD готов к работе. Теперь нам нужно указать, какой узел следует использовать в качестве источника начальной синхронизации устройства.

Выполните следующую команду только на одном узле, чтобы начать первоначальную полную синхронизацию:

 

 

Set-Primary-Node-for-Initial-Device

 

 

После завершения синхронизации состояние обоих дисков должно быть “UpToDate“.

 

 

Шаг 7: Тестирование настройки DRBD

Наконец, нам нужно проверить, как будет работать устройство DRBD для хранения реплицированных данных. Помните, что мы использовали пустой том диска, поэтому мы должны создать файловую систему на устройстве и смонтировать её, чтобы проверить, можем ли мы использовать её для хранения реплицированных данных.

Мы можем создать файловую систему на устройстве с помощью следующей команды на узле, с которого мы начали первоначальную полную синхронизацию (у которого есть ресурс с основной ролью):

 

 

 

 

Затем смонтируйте его, как показано (вы можете дать точке монтирования подходящее имя):

 

 

Теперь скопируйте или создайте несколько файлов в указанной выше точке монтирования и выполните “длинный листинг” с помощью команды ls:

 

 

List-Contents-of-Drbd-Primary-Volume

 

 

Далее, unmount устройство (убедитесь, что монтирование не открыто, измените каталог после размонтирования, чтобы избежать ошибок) и измените роль узла с primary на secondary:

 

 

На другом узле (у которого есть ресурс с дополнительной ролью), сделайте его primary, затем подключите к нему устройство и выполните “-ls -l”. Если настройка работает нормально, все файлы, хранящиеся на томе, должны быть там:

 

 

Test-DRBD-Setup-Working-on-Secondary-Node

 

 

Для получения дополнительной информации загляните в справочные страницы инструментов администрирования:

 

 

Ссылка: Руководство пользователя DRBD.

 

 

Итог:

DRBD чрезвычайно гибок и универсален, что делает его решением для репликации хранилища, подходящим для добавления практически в любое приложение. В этой статье мы показали, как установить DRBD в CentOS 7, и кратко продемонстрировали, как использовать его для репликации хранилища.

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасностикурсы DevNet (программируемые сети) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Поиск по сайту
Лучшее
Популярное
Рубрики
Меню