Настройка DRBD9 CentOS7

Задача:

Настроить кластер DRBD из двух нод

Дано:

NODE1 CentOS7

NODE2 CentOS7

DRBD 9

Диск для репликации sdb1

Решение:

Установка пакета DRBD9

Подключаем репозиторий

Устанавливаем пакет

Добавляем в автозагрузку модуль ядра

Проверяем, все ли подгрузилось

Настройка

Настройка файла hosts

Необходимо в файл /etc/hosts добавить имена нод, если они не могут выть определены с основного ДНС сервера

Создание файла ресурсов с именем /etc/drbd.d/data.res

Инициализация и запуск ресурса (по сути создание метаданных)

Данную процедуру выполняем на обоих нодах

Если возникает ошибка

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

После этого можно повторно инициализировать ресурс командой drbdadm create-md

Назначаем первичную ноду и поднимаем ее. Выполняется на первичной ноде

Примечание

Файл /proc/drbd

В 9 версии нет информации в традиционном файле /proc/drbd

Информацию можно получить по следующему пути

Устранение ошибки split-brain

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

На сервере 1 переводим ресурс data  в состояние secondary и подключаем к data с параметром –discard-my-data,

Если выходит следующее сообщение

Отключаем data и повторяем операцию.

На втором сервере запускаем

Проверяем состояние, в случае если данные не синхронизированы начнется синхронизация разделов.

 

Теория

Основной файл конфигурации

minor-count – По умолчанию модуль DRBD загружается с minorcount 32, если используется много устройств и номеров не хватает их можно явно указать здесь;
dialog-refresh – Обновление экрана каждые n секунд, может быть полезно при подключение к серверу по последовательному интерфейсу;
disable-ip-verifi cation – Позволяет отключить одну из проверок drbdadm;
usage-count – Участвовать в глобальном подсчете пользователей DRBD или нет;
common {…} – Секция, опции которой наследуют все ресурсы;
syncer – Позволяет задать пропускную способность при синхронизации устройств по сети, разработчики рекомендуют использовать 30% от возможностей сети. Например, если у вас 100 Мбит сеть, то 100 * 0.3 = 30 Мб;
resource data {…} – Секция описания ресурса;
protocol – Задает протокол для DRBD, подробнее о них написано далее;
handlers {…} – Задает обработчики, например что делать в случае потери соединения первичной ноды;
startup {…} – Секция для опций используемых в процессе загрузки DRBD;
wfc-timeout – Ожидание таймаута соединения;
degr-wfc-timeout – Ожидание таймаута подключения, в случае если в кластере одна рабочая нода;
wait-after-sb – Ожидание после split brain, ситуация когда все ноды могут попытаться запустить сервис одновременно, думая что другие ноды недоступны. В свою очередь это может повлечь за собой повреждение данных;
disk {…} – Секция с настройками оповещения верхних уровней, если замечено, что происходят I/O ошибки при обращение к диску;
on-io-error detach – Нода перестает работать с носителем данных если на нем происходят I/O ошибки;
fencing – Процесс блокировки ресурсов с нод статус которых сомнителен;
net {…} – Секция задает различные опции сети, такие как размеры буфера, максимальное число запросов обрабатываемых DRBD. В обычных ситуациях значений по умолчанию достаточно;
on host {…} – Секция описания нод;
device – Указывает на устройство DRBD, они расположены в /dev/ и начинаются с 0;
disk – Физический диск или раздел, который будет задействован в работе DRBD;
address – IP-адрес и порт этой ноды, нужно указывать именно ее IP-адрес а не shared IP;
meta-disk – Meta данные могут храниться на отдельном разделе диске а могут на диске описанном в опции disk;
max-buffers – Число буферов используемых для хранения данных, пока те записываются на диск;
max-epoch-size – Максимальное число запросов на запись. Должно соответствовать max-buff ers;
timeout, ping-int – Эти значения можно повысить если наблюдаются обрывы связи;

Возможный статус соединения

StandAlone – Недоступна сетевая конфигурация. Этот ресурс еще не был подключен или был административно отключен (drbdadm disconnect), или сбросил сетевое подключение из за не пройденной аутентификации или split brain;
Disconnecting – Временное состояние пока происходит отключение,
следующее состояние StandAlone;
Unconnected – Временное состояние до попытки подключения. Следующее возможное состояние WFConnection или WFReportParams;
Timeout – Временное состояние после перерыва связи с peer-ом. Следующее возможное состояние Unconnected;
BrokenPipe – Временное состояние после потери связи с peer-ом. Следующее возможное состояние Unconnected;
NetworkFailure – Временное состояние после потери связи с партнером. Следующее возможное состояние – Unconnected;
ProtocolError – Временное состояние после потери связи с партнером. Следующее возможное состояние Unconnected;
TearDown – Временное состояние, peer закрывает соединение. Следующее возможное состояние Unconnected;
WFConnection – Нода ожидает пока peer станет виден в сети;
WFReportParams – TCP соединение было установлено, нода ожидает первый сетевой пакет от peer-ра;
Connected – DRBD соединение установлено, зеркалирование данных активно. Это нормальное состояние;
StartingSyncS – Начата полная синхронизация, выполняется администратором. Следующее возможное состояние SyncSource или PausedSyncS;
StartingSyncT – Начата полная синхронизация, выполняется администратором. Следующее возможное состояние WFSyncUUID;
WFBitMapS – Частичная синхронизация начата. Следующее возможное состояние SyncSource или PausedSyncS;
WFBitMapT – Частичная синхронизация начата. Следующее возможное состояние WFSyncUUID;
WFSyncUUID – Синхронизация скоро начнется. Следующее возможное состояние SyncTarget или PausedSyncT;
SyncSource – Синхронизация запускается, локальная нода является источником синхронизации;
SyncTarget – Синхронизация запускается, локальная нода является целью синхронизации;
PausedSyncS – Локальная нода источник синхронизации, но синхронизация находится в режиме паузы;
PausedSyncT – Локальная нода является целью синхронизации, но синхронизация находится в режиме паузы;
VerifyS – Запускается онлайн верификация, локальная нода является источником верификации;
VerifyT – Запускается онлайн верификация, локальная нода является целью верификации.

Роли ресурсов:

Primary – первичная нода;
Secondary – вторичная нода;
Unknown – роль ресурса неизвестна. Локальный ресурс не бывает в этой роли. Она отображается только для ресурса peer-ра в отключенном режиме.

Возможные состояния диска

Diskless – Драйверу DRBD не назначено блочное устройство;
Attaching – Переходное состояние пока считываются meta данные;
Failed – Переходное состояние последовавшее за I/O ошибкой локального блочного устройства, следующее возможное состояние Diskless;
Negotiating – Переходное состояние пока налаживается соединение;
Inconsistent – Данные непоследовательны. Это статус нового ресурса;
Outdated – Данные ресурса последовательны но устарели;
DUnknown – Статус используется для peer-ра если не доступно сетевое подключение;
Consistent – Последовательные данные ноды без сетевого подключения. После подключения будет решено, данные являются актуальными или устаревшими;
UpToDate – Все данные в актуальном состояние. Это нормально состояние.

Файл конфигурации ресурса

DRBD поддерживает как синхронную, так и асинхронную синхронизацию

Асинхронной репликация, протокол “A” – запись считается завершенной, как только запись завершилась на локальное устройство и данные были отправлены на удаленный узел
Промежуточный протокол репликации “B” – запись считается успешной, если она завершилась на локальный диск и удаленный узел подтвердил получение (но не локальную запись) данных
Синхронная репликация, протокол “С” – операция записи считается завершенной, когда и локальный, и сетевой диски сообщают об успешном завершении записи

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

Инициализация и включение ресурса

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

drbdadm: инструмент администрирования высокого уровня DRBD
drbdsetup: инструмент администрирования более низкого уровня для подключения устройств DRBD к их устройствам резервного блока, для настройки пар устройств DRBD для зеркалирования их устройств резервного блока и для проверки конфигурации работающих устройств DRBD
drbdmeta: инструмент управления метаданными

Увеличение скорости синхронизации DRDB

При синхронизации идет нагрузка как на диски, так и на сеть, поэтому параметры необходимо подбирать исходя из ваших скоростей. Так у меня на 10Гб сети, стоит ограничение по нагрузке на диски в 350Мб\с, что составляет примерно 3Гб\с по трафику

В файле/etc/drbd.d/global_common.conf заданы следующие параметры

 

Небольшой видос

 

Просмотров: 332

Опубликовано в рубрике DRBDTagged
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (1 оценок, среднее: 5,00 из 5)
Загрузка...

Оставить комментарий

Пожалуйста, авторизуйтесь чтобы добавить комментарий.
avatar
  Подписаться  
Уведомление о