Последние новости:

Поиск по сайту:

...с каждым днем он все более похож на свой будущий труп (Ж.-П. Сартр).

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

29.09.2018
Как установить 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

Требования

  • Две установленные системы Centos
  • Свободный блок-устройство, как/dev/sdb1 на обеих системах (предпочтительно того же размера)
  • Selinux разрешающий или отключенный
  • Порт 7788 разрешен в брандмауэре
  • Узлы должны находиться в одной сети.

Установка

Здесь мы следуем за установкой, добавляя репозиторий 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;
                }
}

 

Здесь:

  • andreyex — это имя ресурса. Имена ресурсов всегда должны быть уникальными.
  • протокол C используется для синхронной связи. Это полностью синхронный протокол репликации. Другие доступные протоколы — протокол А и протокол В.
  1. протокол А: протокол асинхронной репликации. Обычно предпочтительнее для узлов в длинных удаленных сетях.
  2. протокол Б: полусинхронной репликации протокола. Также вызывается как синхронный протокол памяти.
  3. протокол С: предпочтительный для узлов в близким расположением сетей.
  • node 1 и node2 являются именем хоста отдельных узлов. Используйте только для идентификации блоков.
  • device/dev/drbd0 — это логическое устройство, созданное в качестве устройства.
  • disk /dev/sdb1 является физическим блочным устройством, которое будет занимать drbd0.
  • адрес 10.20.222.14: 7788 и адрес 10.20.222.15: 7788 являются ip-адрес двух соответствующих узлов с открытым TCP-портом 7788.
  • meta-internal disk используется для определения использования Мета-данных внутреннего диска.

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

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

$ 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

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

  • в настоящее время какой узел первичный и какой вторичный.
  • процесс синхронизации данных.
  • drbd состояние устройства. как: Непоследовательный, Современный, Бездисковый.

Другой узел, 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. А затем подключите устройство drbd0 к вашей системе, и вы можете выполнять действия на устройстве. без создания node в качестве основного, вы не сможете подключить drb0 и устройство не сможет использовать содержимое этого устройства.

Тестирование процесса 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 в вашей системе. Если останутся какие-либо вопросы, вы можете прокомментировать ниже в разделе комментариев.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

Статьи партнеров:

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить

Спасибо! Ваша заявка принята

close

Спасибо! Ваша заявка принята

close