DRBD - это распределенная реплицированная система хранения для платформы Linux . Он реализован в виде драйвера ядра, нескольких приложений управления пользовательским пространством и некоторых сценариев оболочки . DRBD традиционно используется в компьютерных кластерах с высокой доступностью (HA) , но, начиная с DRBD версии 9, его также можно использовать для создания более крупных программно определяемых пулов хранения с упором на интеграцию с облаком. [2]
Автор (ы) оригинала | Филипп Рейснер, Ларс Элленберг |
---|---|
Разработчики) | LINBIT HA-Solutions GmbH, Вена и LINBIT USA LLC, Орегон |
Стабильный выпуск | 9.0.28-1 / 5 марта 2021 г . [1] |
Предварительный выпуск | 10.0.0a4 / 16 октября 2020 г . [1] |
Репозиторий | |
Написано в | C |
Операционная система | Linux |
Тип | Распределенная система хранения |
Лицензия | Стандартная общественная лицензия GNU v2 |
Веб-сайт | www |
Устройство DRBD - это блочное устройство DRBD, которое относится к логическому блочному устройству в схеме логического тома.
Программное обеспечение DRBD - это бесплатное программное обеспечение, выпущенное в соответствии с условиями Стандартной общественной лицензии GNU версии 2.
DRBD является частью инициативы стека с открытым исходным кодом Lisog .
Режим работы
DRBD размещает логические блочные устройства (обычно называемые / dev / drbd X , где X - младший номер устройства) поверх существующих локальных блочных устройств на участвующих узлах кластера. Записи на первичный узел передаются на блочное устройство нижнего уровня и одновременно распространяются на вторичный узел (узлы). Затем вторичный узел (узлы) передает данные соответствующему блочному устройству нижнего уровня. Все операции ввода-вывода для чтения выполняются локально, если не настроена балансировка чтения. [3]
В случае отказа основного узла процесс управления кластером переводит дополнительный узел в основное состояние. [4] Этот переход может потребовать последующей проверки целостности файловой системы, установленной поверх DRBD, посредством проверки файловой системы или воспроизведения журнала . Когда отказавший бывший первичный узел возвращается, система может (или не может) снова повысить его до первичного уровня после повторной синхронизации данных устройства. Алгоритм синхронизации DRBD эффективен в том смысле, что повторно синхронизируются только те блоки, которые были изменены во время отключения, а не устройство целиком.
DRBD часто развертывается вместе с диспетчерами ресурсов кластера Pacemaker или Heartbeat , хотя он интегрируется с другими структурами управления кластером. Он интегрируется с решениями виртуализации, такими как Xen , и может использоваться как ниже, так и поверх стека Linux LVM . [5]
DRBD позволяет настраивать балансировку нагрузки , позволяя обоим узлам получать доступ к конкретному DRBD в режиме чтения / записи с семантикой общего хранилища . [6] Конфигурация с несколькими первичными (несколько узлов чтения / записи) требует использования распределенного диспетчера блокировок .
Обычные компьютерные кластерные системы обычно используют какое-то общее хранилище для данных, используемых ресурсами кластера. Этот подход имеет ряд недостатков, которые DRBD может помочь компенсировать:
- Доступ к общим ресурсам хранения обычно должен осуществляться через сеть хранения данных или на подключенном к сети сервере хранения , что создает некоторые накладные расходы при чтении ввода-вывода . В DRBD эти накладные расходы снижаются, поскольку все операции чтения выполняются локально. [ необходима цитата ]
- Общее хранилище обычно дорогое и требует больше места (2U и более) и энергии. DRBD позволяет настроить HA только с 2 компьютерами.
- Общее хранилище не обязательно должно быть высокодоступным. Например, единая сеть хранения данных, к которой имеют доступ несколько хостов виртуализации, считается общим хранилищем, но не считается высокодоступной на уровне хранилища - в случае отказа этой единой сети хранения данных ни один из узлов кластера не сможет получить доступ к общему хранилищу. DRBD позволяет использовать целевое хранилище, которое является как общим, так и высокодоступным.
Недостатком является меньшее время, необходимое для записи напрямую в совместно используемое запоминающее устройство, чем для маршрутизации записи через другой узел.
Сравнение с RAID-1
DRBD имеет внешнее сходство с RAID-1 в том, что он включает в себя копию данных на двух устройствах хранения, так что в случае отказа одного из них можно использовать данные на другом. Однако он работает совсем иначе, чем RAID и даже сетевой RAID.
В RAID избыточность существует на уровне, прозрачном для приложения, использующего хранилище. Хотя существует два устройства хранения, существует только один экземпляр приложения, и приложение не знает о нескольких копиях. Когда приложение читает, уровень RAID выбирает устройство хранения для чтения. Когда одно устройство хранения выходит из строя, уровень RAID предпочитает читать другое, при этом экземпляр приложения не знает об ошибке.
Напротив, с DRBD есть два экземпляра приложения, и каждый может читать только с одного из двух устройств хранения. Если одно устройство хранения выходит из строя, экземпляр приложения, привязанный к этому устройству, больше не может читать данные. Следовательно, в этом случае этот экземпляр приложения завершает работу, а другой экземпляр приложения, связанный с сохранившейся копией данных, вступает во владение.
И наоборот, в RAID, если один экземпляр приложения выходит из строя, информация на двух устройствах хранения фактически становится непригодной для использования, но в DRBD другой экземпляр приложения может взять на себя управление.
Приложения
DRBD, работающий на блочном уровне ядра Linux, по сути, не зависит от рабочей нагрузки. DRBD может использоваться как основа:
- Обычная файловая система (это канонический пример),
- общий диск файловой системы , такие как GFS2 или OCFS2 , [7] [8]
- другое логическое блочное устройство (например, используемое в LVM ),
- любое приложение, требующее прямого доступа к блочному устройству.
Кластеры на основе DRBD часто используются для добавления синхронной репликации и обеспечения высокой доступности файловых серверов , реляционных баз данных (таких как MySQL ) и многих других рабочих нагрузок.
Включение в ядро Linux
Авторы DRBD первоначально представили программное обеспечение сообществу ядра Linux в июле 2007 года для возможного включения в каноническую версию ядра Linux kernel.org. [9] После длительного обзора и нескольких обсуждений Линус Торвальдс согласился включить DRBD в официальное ядро Linux. DRBD был объединен 8 декабря 2009 г. во время «окна объединения» для ядра Linux версии 2.6.33.
Смотрите также
- Доступное хранилище
- Кластер высокой доступности
- Зеркальное отображение диска
Рекомендации
- ^ a b "Релизы · LINBIT / drbd" . github.com . Проверено 4 апреля 2021 .
- ^ «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 .
- ^ ЛИНБИТ. «Руководство пользователя DRBD» . Проверено 28 ноября 2011 .
- ^ Рейснер, Филипп (11 октября 2005 г.). «DRBD v8 - Реплицированное хранилище с общей семантикой дисков» (PDF) . Материалы 12-й Международной конференции по системным технологиям Linux . Гамбург, Германия.
- ^ http://www.drbd.org/users-guide/ch-ocfs2.html
- ^ «Архивная копия» . Архивировано из оригинала на 2013-03-08 . Проверено 21 марта 2013 .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ Элленберг, Ларс (21 июля 2007 г.). «DRBD хочет стать основным» . linux-kernel (список рассылки) . Проверено 3 августа 2007 .
Внешние ссылки
- Официальный веб-сайт
- ЛИНБИТ
- Веб-сайт проекта Linux с высокой доступностью