Как установить и настроить DRBD на Ubuntu 22.04

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

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

В Ubuntu DRBD может быть установлен и настроен с помощью стандартных инструментов управления пакетами, таких как apt-get, и предоставляет функциональность синхронизации данных между двумя серверами. Это позволяет обеспечить непрерывность работы приложений и минимизировать время простоя в случае отказа одного из серверов.

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

Шаг 1: Установка необходимого программного обеспечения

Первое что мы сделаем это установим drbd-utils с помощью apt. Сделать это можно следующей командой.

sudo apt-get install drbd-utils

Установка drbd-utils в Ubuntu
Установка drbd-utils в Ubuntu

Если вы не обращаете внимания на ошибку на этом скриншоте: не забудьте стать root с помощью su или sudo

Apt-get (или apt install) позаботится об установке зависимостей. Например это была совершенно новая виртуальная машина, которую я создал только для того, чтобы показать как настроить DRBD на Ubuntu. И зависимости включали некоторые mta, Postfix в данном случае.

Следуйте инструкциям на экране
Следуйте инструкциям на экране

Шаг 2: Установка необходимого программного обеспечения на другом сервере

Теперь требуется установить необходимое программное обеспечение на втором сервере. Поскольку это распределенная репликативная система хранения, нам нужно как минимум два узла (сервера), поэтому станьте root на втором узле и установите drbd-utils.

Вы можете клонировать виртуальную машину, если вы работаете с виртуальными машинами.

Установка drbd-utils на второй сервер с ubuntu
Установка drbd-utils на второй сервер с ubuntu

Шаг 3: создание файла конфигурации

global { usage-count no; }
common { syncer { rate 100M; } }
resource r0 { #resource name
	protocol C;
	startup {
		wfc-timeout 15;
		degr-wfc-timeout 60;
	}
	net {
		cram-hmac-alg sha1;
		shared-secret "NotSoSecret";
	}
	on gonzbuntu-a { #one server
		device /dev/drbd0;
		disk /dev/vda4; #shared partition
		address 192.168.122.204:7788;
		meta-disk internal;
	}
	on gonzbuntu-b { the other server
                device /dev/drbd0;
                disk /dev/vda4; #shared partition
                address 192.168.122.87:7788;
                meta-disk internal;
	}
}

Наш общий ресурс называется r0.

drbd.conf
drbd.conf

Это просто демо-версия. Возможно, вы захотите иметь несколько общих ресурсов и более чистых конфигурационных файлов. Вы можете создать файл для каждого ресурса и хранить его в отдельных файлах в /etc/drbd.d/<resourcename>.res

Конфигурация ресурсов одинакова на обоих узлах, поэтому мы можем просто скопировать файл конфигурации на другой сервер с помощью scp:

scp /etc/drbd.conf root@server2:/etc/drbd.conf

Оба сервера видят друг друга
Оба сервера видят друг друга

Вы также можете убедиться, что оба сервера видят друг друга, добавив их в /etc/hosts

Шаг 4: создание метаданных устройства

Этот шаг должен быть выполнен только при первоначальном создании устройства на обоих хостах:

drbdadm create-md <ресурс>

Далее мы можем запустить, на обоих хостах, службу drbd:

systemctl start drbd

systemctl status drbd

Запуск службы drbd на Ubuntu
Запуск службы drbd на Ubuntu

Шаг 5: Запуск синхронизации

На главном хосте (сервере) выполните следующую команду:

drbdadm -- --overwrite-data-of-peer primary all

На данном этапе (мы только начинаем работать с drbd на ubuntu) любой из них может быть основным, просто выберите тот, который вам больше нравится. Вы можете проверить, как идет синхронизация на вторичном. Для этого выполните команду:

watch -n1 cat /proc/drbd

Вы увидите экран, подобный этому.

Синхронизация DRBD Ubuntu
Синхронизация DRBD Ubuntu

Шаг 6: Добавление файловой системы

Теперь мы можем создать файловую систему и смонтировать ее в какой-нибудь каталог. Но сначала сделайте так, чтобы служба drbd запускалась при каждой перезагрузке.

systemctl enable drbd.service
mkfs.ext4 /dev/drbd0
mount /dev/drbd0 /mnt/drb/

Шаг 7: Испытание и тестирование

Создадим тестовый файл на основном (мастер) хосте, а затем преобразуем этот хост во вторичный (secondary).

dd if=/dev/zero of=/mnt/drb/filename.ext bs=1M count=1024
umount /mnt/drb
drbdadm secondary r0
drbdadm status r0

Прежде чем мы начнем работать с будущим мастер-хостом, эти команды должны выглядеть следующим образом:

Тестирование DRBD
Тестирование DRBD

На втором хосте сначала можно проверить, находятся ли оба хоста в роли вторичного, а затем повысить их до роли первичного.

drbdadm status r0
drbdadm primary r0

Далее вы можете смонтировать устройство drb и проверить, находится ли файл, созданный на первом хосте, здесь.

mount /dev/drb0 /mnt/drb
ls -lh /mnt/drb/filename.ext

2 Тестирование DRBD
2 Тестирование DRBD

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

Заключение

Ну вот и все. В этой статье мы показали как установить и настроить DRBD на Ubuntu 22.04. Уверен что данная статья подойдет и для Debian.

Nazario

Я — Nazario, создатель и автор сайта guid.su, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем. Мои глубокие знания и обширный практический опыт в этих сферах позволяют мне создавать детальные руководства и учебные материалы, ценные для пользователей всех уровней.

Я стремлюсь делать сложные темы доступными и понятными, надеюсь что мой вклад в сообщество IT будет оценен по достоинству.

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

Guid: Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

Отправляя комментарий, вы даете согласие на обработку ваших данных в соответствии с политикой конфиденциальности и даёте согласие на их использование.