ДРБД
![]() | |
![]() Обзор концепции DRBD | |
Оригинальный автор(ы) | Филипп Райснер, Ларс Элленберг |
---|---|
Разработчик(и) | LINBIT HA-Solutions GmbH, Вена и LINBIT USA LLC, Орегон |
Стабильная версия | 9.2.4
/ 5 июня 2023 г [ 1 ] |
Предварительный выпуск | 10.0.0a4
/ 16 октября 2020 г [ 2 ] |
Репозиторий | |
Написано в | С |
Операционная система | Линукс |
Тип | Распределенная система хранения |
Лицензия | Стандартная общественная лицензия GNU v2 |
Веб-сайт | линбит |
Распределенное реплицируемое блочное устройство ( DRBD ) — это распределенная реплицируемая система хранения данных для платформы Linux . Он зеркально отображает блочные устройства между несколькими хостами, работая прозрачно для приложений на хост-системах. Эта репликация может включать в себя любой тип блочного устройства, например жесткие диски, разделы, конфигурации RAID или логические тома. [ 3 ]
DRBD реализован в виде драйвера ядра, нескольких приложений управления пользовательским пространством и некоторых сценариев оболочки . DRBD традиционно используется в высокой доступности (HA) компьютерных кластерах , но, начиная с DRBD версии 9, его также можно использовать для создания более крупных программно-определяемых пулов хранения данных с упором на облачную интеграцию. [ 4 ]
Программное обеспечение DRBD является бесплатным программным обеспечением , выпущенным на условиях Стандартной общественной лицензии GNU версии 2.
DRBD является частью инициативы стека с открытым исходным кодом Lisog .
Режим работы
[ редактировать ] DRBD Уровни логических блоков (условно называемые /dev/drbdX
, где X — младший номер устройства) поверх существующих локальных блочных устройств на участвующих узлах кластера. Записи на первичный узел передаются на блочное устройство нижнего уровня и одновременно распространяются на вторичный узел(и). Вторичный узел(и) затем передает данные соответствующему блочному устройству нижнего уровня. Все операции ввода-вывода чтения выполняются локально, если не настроена балансировка чтения. [ 5 ]
В случае сбоя основного узла процесс управления кластером переводит вторичный узел в основное состояние. [ 6 ] Этот переход может потребовать последующей проверки целостности файловой системы, расположенной поверх DRBD, посредством проверки файловой системы или воспроизведения журнала . Когда вышедший из строя бывший основной узел возвращается, система может (или не может) снова поднять его на основной уровень после повторной синхронизации данных устройства. Алгоритм синхронизации DRBD эффективен в том смысле, что ресинхронизировать необходимо только те блоки, которые были изменены во время сбоя, а не устройство целиком.
DRBD часто развертывается вместе с диспетчерами ресурсов кластера Pacemaker или Heartbeat , хотя он интегрируется с другими платформами управления кластерами. [ 7 ] [ 8 ] [ 9 ] Он интегрируется с решениями виртуализации, такими как Xen , и может использоваться как ниже, так и поверх стека Linux LVM . [ 10 ]
DRBD позволяет настраивать балансировку нагрузки , позволяя обоим узлам получать доступ к определенному DRBD в режиме чтения/записи с семантикой общего хранилища . [ 11 ] Конфигурация с несколькими первичными (несколько узлов чтения/записи) требует использования распределенного диспетчера блокировок .
С 2018 года DRBD также можно использовать в программном обеспечении для управления блочным хранилищем LINSTOR для репликации между различными узлами и предоставления пользователям и приложениям блочных устройств хранения.
Сравнение общего кластерного хранилища
[ редактировать ]Обычные компьютерные кластерные системы обычно используют какое-то общее хранилище для данных, используемых ресурсами кластера. Этот подход имеет ряд недостатков, которые DRBD может помочь компенсировать:
- Доступ к общим ресурсам хранения обычно должен осуществляться через сеть хранения данных или через подключенный к сети сервер хранения данных, что создает некоторые издержки при чтении ввода-вывода . В DRBD эти накладные расходы сокращаются, поскольку все операции чтения выполняются локально. [ нужна ссылка ]
- Общее хранилище обычно стоит дорого и требует больше места (2U и более) и энергии. DRBD позволяет настроить высокую доступность только с двумя машинами.
- Общее хранилище не обязательно имеет высокую доступность. Например, одна сеть хранения данных, к которой имеют доступ несколько хостов виртуализации, считается общим хранилищем, но не считается высокодоступной на уровне хранилища — если эта единственная сеть хранения данных выйдет из строя, ни один хост в кластере не сможет получить доступ к общему хранилищу. DRBD позволяет создать хранилище, которое является одновременно общим и высокодоступным.
Недостатком является меньшее время, необходимое для записи непосредственно на общее устройство хранения, чем для маршрутизации записи через другой узел.
Сравнение с RAID-1
[ редактировать ]DRBD имеет внешнее сходство с RAID-1 тем, что включает копирование данных на два устройства хранения, так что в случае сбоя одного из них можно использовать данные на другом. Однако он работает совершенно иначе, чем RAID и даже сетевой RAID.
В RAID избыточность существует на уровне, прозрачном для приложения, использующего хранилище. Хотя имеется два устройства хранения, существует только один экземпляр приложения, и приложение не знает о нескольких копиях. Когда приложение выполняет чтение, уровень RAID выбирает устройство хранения для чтения. При выходе из строя одного устройства хранения уровень RAID выбирает чтение другого, при этом экземпляр приложения не узнает о сбое.
Напротив, в DRBD имеется два экземпляра приложения, каждый из которых может читать только с одного из двух устройств хранения. В случае сбоя одного устройства хранения экземпляр приложения, привязанный к этому устройству, больше не сможет читать данные. Следовательно, в этом случае этот экземпляр приложения отключается, и управление берет на себя другой экземпляр приложения, связанный с сохранившейся копией данных.
И наоборот, в RAID, если один экземпляр приложения выходит из строя, информация на двух устройствах хранения фактически становится непригодной для использования, но в DRBD другой экземпляр приложения может взять на себя управление.
Приложения
[ редактировать ]Работая на блочном уровне ядра Linux, DRBD по сути не зависит от рабочей нагрузки. DRBD может использоваться в качестве основы:
- Обычная файловая система (это канонический пример),
- файловая система общего диска, такая как GFS2 или OCFS2 , [ 12 ] [ 13 ]
- другое логическое блочное устройство (например, используемое в LVM ),
- любое приложение, требующее прямого доступа к блочному устройству.
Кластеры на основе DRBD часто используются для добавления синхронной репликации и обеспечения высокой доступности к файловым серверам , реляционным базам данных (таким как MySQL ) и многим другим рабочим нагрузкам.
Включение в ядро Linux
[ редактировать ]Авторы DRBD первоначально представили свое программное обеспечение сообществу ядра Linux в июле 2007 года для возможного включения в каноническую версию ядра Linux на сайте kernel.org. [ 14 ] После длительного обзора и нескольких обсуждений Линус Торвальдс согласился сделать DRBD частью официального ядра Linux. DRBD был объединен 8 декабря 2009 года во время «окна слияния» для ядра Linux версии 2.6.33. [ 15 ]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Драйвер ядра Linux DRBD 9.x» . linbit.com . Проверено 19 июля 2023 г.
- ^ «Релизы · LINBIT/drbd» . github.com . Проверено 4 апреля 2021 г.
- ^ «Распределенное реплицируемое блочное устройство (DRBD)» . Ubuntu.com . Проверено 20 июня 2024 г.
- ^ «DRBD для вашего облака» . www.drbd.org . Проверено 5 декабря 2016 г.
- ^ «18.4. Достижение лучшей производительности чтения за счет повышенной избыточности — Руководство пользователя DRBD (9.0)» . www.drbd.org . Проверено 5 декабря 2016 г.
- ^ «Глава 8. Интеграция DRBD с кластерами Pacemaker — Руководство пользователя DRBD (9.0)» . www.drbd.org . Проверено 5 декабря 2016 г.
- ^ «Высокодоступное хранилище NFS с DRBD и кардиостимулятором» . suse.com . Проверено 20 июня 2024 г.
- ^ «Как добиться высокой доступности с помощью Heartbeat и DRBD в Ubuntu 16» . www.globo.tech . Проверено 20 июня 2024 г.
- ^ «DRBD — Heartbeat (активный/пассивный кластер высокой доступности)» . syslint.com . Проверено 20 июня 2024 г.
- ^ ЛИНБИТ. «Руководство пользователя DRBD» . Проверено 28 ноября 2011 г.
- ^ Райснер, Филипп (11 октября 2005 г.). «DRBD v8 — реплицируемое хранилище с семантикой общего диска» (PDF) . Материалы 12-й Международной конференции по системным технологиям Linux . Гамбург, Германия.
- ^ «Руководства пользователя » ЛИНБИТ» .
- ^ «Активный-активный DRBD с OCFS2 — Gentoo Linux Wiki» . Архивировано из оригинала 8 марта 2013 г. Проверено 21 марта 2013 г.
- ^ Элленберг, Ларс (21 июля 2007 г.). «DRBD хочет выйти на магистраль» . linux-kernel (список рассылки) . Проверено 3 августа 2007 г.
- ^ «DRBD будет включен в ядро Linux 2.6.33» . slashdot.org . Проверено 20 июня 2024 г.
Внешние ссылки
[ редактировать ]