Репликация файлового сервера linux

Настройка локальной синхронной репликации используя DRDB9

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

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

В этой статье я поделюсь опытом как создать репликацию drbd локально, не используя drbdadm, а используя drbdsetup и drbdmeta.

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

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

Ubuntu 18.04, версия ядра 4.19 и выше

Шаг 1. Установка и загрузка модуля

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

Добавляем репозитории в ваш sources.list

deb http://ppa.launchpad.net/linbit/linbit-drbd9-stack/ubuntu bionic main deb-src http://ppa.launchpad.net/linbit/linbit-drbd9-stack/ubuntu bionic main

Обновляем кэш и устанавливаем пакеты drbd

apt update apt install drbd-dkms drbd-utils

Проверяем версию модуля и загружаем его с параметрами

modinfo drbd modprobe drbd usermode_helper=/bin/true minor_count=36

Шаг 2. Настройка global_common.conf

Я использую следующие параметры конфига, все остальные можно будет задавать при настройке ресурса

# DRBD is the result of over a decade of development by LINBIT. # In case you need professional services for DRBD or have # feature requests visit http://www.linbit.com global < usage-count no; >common < disk < c-delay-target 50; c-fill-target 0; >net < csums-alg hash-alg; >> 

Обо всех параметрах более подробно можно почитать здесь

Читайте также:  Suse linux route add

Шаг 3. Настройка ресурса DRBD9

  1. Два блочных устройства(источник и приемник)
  2. Два логических тома под метаданные(я использовал по 2 гб)
drbdsetup new-resource drbdres0 0 drbdsetup new-resource drbdres1 1

drbdres0 и drbdres1 — имя ресурса

drbdsetup new-minor drbdres0 0 0 drbdsetup new-minor drbdres1 1 0

drbdres0 и drbdres1 — ресурсы созданные ранее

второй аргумент(minor) — номер созданного девайса, т.е. drbd0, drbd1

третий аргумент — номер тома

drbdmeta --force 0 v09 '/dev/zd0' flex-external create-md 1 drbdmeta --force 1 v09 '/dev/zd16' flex-external create-md 1
drbdsetup attach 0 '/dev/zd32' '/dev/zd0' flexible --disk-flushes=no --disk-barrier=no --al-extents=3389 drbdsetup attach 1 '/dev/zd64' '/dev/zd16' flexible --disk-flushes=no --disk-barrier=no --al-extents=3389

первый аргумент (0 и 1) — это номер созданного девайса(minor)

‘/dev/zd32’ и ‘/dev/zd64’ — источник и приемник

‘/dev/zd0’ и ‘/dev/zd16’ — ранее созданные тома для метаданных и дальше идут параметры

drbdsetup new-peer drbdres0 1 --protocol=C --max-buffers=36K --max-epoch-size=36K --sndbuf-size=1024K --rcvbuf-size=2048K drbdsetup new-peer drbdres1 0 --protocol=C --max-buffers=36K --max-epoch-size=36K --sndbuf-size=1024K --rcvbuf-size=2048K

drbdres0 и drbdres1 — ранее созданные ресурсы

второй параметр (1 и 0) — это peer node id и далее идут параметры соединения

drbdsetup new-path drbdres0 1 127.0.0.1:7788 127.0.0.1:7789 drbdsetup new-path drbdres1 0 127.0.0.1:7789 127.0.0.1:7788

Примечание: Если захотите создать еще больше ресурсов локально, то нужно будет использовать другие порты. например: 127.0.0.1:7790 127.0.0.1:7791 и так далее

drbdsetup peer-device-options drbdres1 0 0 --c-plan-ahead=0 --resync-rate=80M drbdsetup peer-device-options drbdres0 1 0 --c-plan-ahead=0 --resync-rate=80M

resync-rate — это максимальная скорость синхронизации. Имейте ввиду, что если поставите высокую скорость, то drbd будет использовать весь ресурс диска или логического тома, и если на нем используется какое то приложение, то оно не получит доступ к диску пока не закончится синхронизация.

drbdsetup primary drbdres0 --force
drbdsetup connect drbdres0 1 drbdsetup connect drbdres1 0

После выполненных действий при выводе статуса

Читайте также:  Как проверить версию linux mint

должна начаться синхронизация, после окончания синхронизации у обоих ресурсов должно быть UpToDate. Прочитать больше о статусах можно здесь в разделе «Теория». Официальный сайт с документацией. Дальше использовать для работы необходимо новосозданные девайсы drbd0/drbd1 в зависимости какой primary.

Источник

Оцените статью
Adblock
detector