Александр Мутовин
19.10.2019
613

Настройка drbd диска на девятой версии DRBD от Linbit.

Для создания реплицируемого диска нам необходимо 2 сервера. На каждом из них должен быть пустой раздел на жестком диске или целый жесткий диск. Также в компьютере желательно использовать 2 сетевые карты Настроим сетевые адаптеры следующим образом Сетевой интерфейс ens19 на каждом сервере мы будем использовать для прямого линка, а сетевой интерфейс eth0 будет использоваться для […]

drbd диск девятой версии DRBD от Linbit

Для создания реплицируемого диска нам необходимо 2 сервера. На каждом из них должен быть пустой раздел на жестком диске или целый жесткий диск. Также в компьютере желательно использовать 2 сетевые карты

Одна сетевая карта используется для подключения к локальной сети, вторая для прямого линка с другим реплицируемым сервером

Настроим сетевые адаптеры следующим образом

Сетевая конфигурация первого сервера
Сетевая конфигурация первого сервера
Сетевая конфигурация второго сервера
Сетевая конфигурация второго сервера

Сетевой интерфейс ens19 на каждом сервере мы будем использовать для прямого линка, а сетевой интерфейс eth0 будет использоваться для выхода в сеть.

DRBD работает по именам, по ip адресам он не работает.  Соотвественно, необходимо в файлах /etc/hosts на обеих серверах прописать соответсвие ip адресу его имя.

Указываем имя и ip адрес первого сервера
Указываем имя и ip адрес первого сервера
Указываем имя и ip адрес второго сервера
Указываем имя и ip адрес второго сервера

Глобальные настройки DRBD прописываются в файле etc/drbd.d/global_common.conf

В этом файле описываются настройки применимые ко всем конфигурациям. Описываются настройки сети, диска.

Подключение всех конфигурационных файлов описанов файле /etc/drbd.conf

Также в этом файле можно указать пароль я для соединения двух серверов. По умолчанию он не задан. Параметр называется «shared-secret»

В каждом сервере у нас есть по дополнительному жесткому диску /dev/sdb. Из них мы соберем реплицируемое блочное устройство.

Не будем создавать раздел, а возьмем весь диск.

Наш конфигурационный файл разместим в следующей директории:

/etc/drbd.d/r0.res
Все конфигурационные файлы расположенные в директории /etc/drbd.d подключаются автоматически. Это указано в файле /etc/drbd.conf
resource r0 {
 protocol C;
  on node1 {
    device    /dev/drbd1;
    disk      /dev/sdb;
    address   10.10.10.2:7789;
    meta-disk internal;
  }
  on node2 {
    device    /dev/drbd1;
    disk      /dev/sdb;
    address   10.10.10.1:7789;
    meta-disk internal;
  }
}
Конфиг ресурса DRBD
Конфиг ресурса DRBD

Рассмотрим подробно конфигурационный файл

1. Resource r0 – название нашего ресурса r0
2. Protocol C – номер протокола С

В DRBD есть 3 версии протокола A,B,C.

  • A – Запись на устройство DRBD завершена, как только данные запишутся на локальный раздел, а также отправятся в буфер TCP/IP.
  • B – Запись на устройство DRBD завершена, и все узлы подтвердили получение запросов на запись данных.
  • С – Запись на устройство DRBD завершена, как только все удаленные узлы сообщат о том, что запись завершена

3. Далее идет описание первой ноды – on node1 (к этому имени мы еще вернемся ниже)
4. Device /dev/drbd1 – указываем какой блок данных необходимо создать
5. disk      /dev/sdb – указываем родительский жесткий диск
6. address   10.10.10.2:7789 – указываем ip адрес сервера
7. meta-disk internal – хранить метаданные на этом же устройстве.
8. Все по аналогии с первым сервером.

Этот конфигурационный файл должен быть одинаковый на двух серверах.

После проделанной работы можно попробовать создать ресурс, вводим команду:

# drbdadm create-md r0
Попытка создать ресурс r0
Попытка создать ресурс r0

При создании ресурса может возникнуть ошибка как на скриншоте. Это связано с тем, что DRBD начнет работать в том случае. Если имя хоста совпадает с с именем ноды в конфигурационном файле.

Для изменения имени воспользуемся следующей командой:

# hostnamectl set-hostname node1

И на втором сервере

# hostnamectl set-hostname node2
При изменении имени хоста через утилиту hostnamectl перезагрузка сервера не требуется

После изменения имени выполняем команду по созданию ресурса повторно на обоих серверах:

# drbdadm create-md r0
Успешное создание DRBD ресурса.
Успешное создание DRBD ресурса.

Далее не обеих нодах поднимаем запускаем ресурс drbdadm up r0

После чего можно проверить создание drbd1 блочного устройства

#lsblk 
добавление нового блочного устройства.
добавление нового блочного устройства.

Посмотрим статус drbd устройств:

# drbdadm status
Статус DRBD
Статус DRBD

Как видно из скриншота, пока оба сервера на объединены, также диски еще не готовы к работе.

Сделаем на одном из серверов ресурс r0 главным:

# drbdadm primary –force r0
Делаем одну ноду главной.
Делаем одну ноду главной.

Как видно из скриншота ресурс r0 стал Primary

Вторая нода в состоянии Secondary. Ниже показано, что идет синхронизация дисков. По окончании синхронизации мы увидим статус peer-disk: UpToDate. Это означает, что данные синхронизированы.

Статус после синхронизации данных
Статус после синхронизации данных
В восьмой версии статус DRBD можно было посмотреть командой cat /proc/drbd. В девятой версии статус смотрится с помощью команды drbdadm status

Далее на первичной ноде необходимо создать файловую систему на блочном устройстве /dev/drbd1

# mkfs.ext4 /dev/drbd1
создание файловой системы на drbd1 блочном устройстве.
создание файловой системы на drbd1 блочном устройстве.

После чего ресурс можно примонтировать и работать с ним.

# mount /dev/drbd1 /mnt 

Добавим drbd в автозагрузку:

Systemctl enable drbd

Перезагрузим второй сервер, который в состоянии Secondary

#reboot

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

Если у вас включен selinux. То автоматической синхронизации не произойдет, а также не создастся ресурс r0
Ресурс один, второй не подключен
Ресурс один, второй не подключен

В этом случае обе ноды могут быть в состоянии Primary. Это происходит из-за того, что теряется связь между серверами и они друг о друге ничего не знают.

Решение этой проблемы заключается в следующем:

1.Одну из нод переводим в состояние Secondary
2.На этой же ноде отсоединяемся от ресурса

# drbdadm disconnect r0

3. Подсоединяемся к ресурсу с параметром «отпросить мои данные» , в этом случае произойдет синхронизация данных со вторым сервером.

# drbdadm connect –discard-my-data r0

 После чего произойдет востановление работы drbd.

Что касается расширения диска(в том случае, если у нас оба ресурса на виртуальной машине), то необходимо сделать несколько шагов:

  1. C помощью утилиты fdisk или parted необходимо увеличить раздел
В том случае, если вы под drbd брали весь диск, а не раздел, то ничего увеличивать в диске не надо.Если все же было сделано на разделе, в этом случае необходимо выполнить еще одну команду: # partprobe /dev/sdb1

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

# resize2fs /dev/drbd1

После чего размер блочного устройства drbd увеличится.

Увеличение размера drbd
Увеличение размера drbd
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments

Остались вопросы?

Я - Компаниец Никита, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование

ближайшие курсы

ближайшие Вебинары

ONLINE

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

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

Надежен в эксплуатации.

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

Гибкий в настройке.

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

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

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

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.