Распределенное реплицированное блочное устройство - Distributed Replicated Block Device
Эта статья слишком полагается на Рекомендации к основные источники.Февраль 2013) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Обзор концепции DRBD | |
Оригинальный автор (ы) | Филипп Рейснер, Ларс Элленберг |
---|---|
Разработчики) | LINBIT HA-Solutions GmbH, Вена и LINBIT USA LLC, Орегон |
Стабильный выпуск | 9.0.25 (DRBD SDS), 8.4.11-1 (DRBD HA) / 22 сентября 2020 г. |
Репозиторий | |
Написано в | C |
Операционная система | Linux |
Тип | Распределенная система хранения |
Лицензия | Стандартная общественная лицензия GNU v2 |
Интернет сайт | www |
DRBD это распределенная реплицированная система хранения для Linux Платформа. Он реализован как драйвер ядра, несколько пространство пользователя приложения для управления и некоторые сценарии оболочки. DRBD традиционно используется в высокая доступность (HA) компьютерные кластеры, но, начиная с DRBD версии 9, его также можно использовать для создания более крупных программно определяемых пулов хранения с упором на облачную интеграцию.[1]
А Устройство DRBD это Блочное устройство DRBD это относится к логическому блочное устройство в схеме логического тома.
Программное обеспечение DRBD бесплатно программное обеспечение выпущен в соответствии с условиями Стандартная общественная лицензия GNU версия 2.
DRBD является частью Лисог инициатива стека с открытым исходным кодом.
Режим работы
Логические уровни DRBD блочные устройства (условно названный / dev / drbdИкс, куда Икс - младший номер устройства) по сравнению с существующими локальными блочными устройствами на участвующих узлах кластера. Пишет в начальный узел передаются на блочное устройство нижнего уровня и одновременно распространяются на вторичный узел (ы). Затем вторичный узел (узлы) передает данные соответствующему блочному устройству нижнего уровня. Весь ввод-вывод чтения выполняется локально, если не настроена балансировка чтения.[2]
В случае отказа основного узла процесс управления кластером переводит вторичный узел в первичное состояние.[3] Этот переход может потребовать последующей проверки целостности файловой системы, установленной поверх DRBD, посредством проверка файловой системы или журнал переиграть. Когда отказавший бывший первичный узел возвращается, система может (или не может) снова повысить его до первичного уровня после повторной синхронизации данных устройства. Алгоритм синхронизации DRBD эффективен в том смысле, что повторно синхронизируются только те блоки, которые были изменены во время отключения, а не устройство целиком.
DRBD часто развертывается вместе с Кардиостимулятор или же Сердцебиение менеджеры ресурсов кластера, хотя он интегрируется с другими структурами управления кластером. Он интегрируется с виртуализация такие решения, как Xen, и может использоваться как под, так и поверх Linux LVM куча.[4]
DRBD позволяет Балансировка нагрузки конфигурации, позволяющие обоим узлам обращаться к конкретному DRBD в режиме чтения / записи с общее хранилище семантика.[5] Конфигурация с несколькими основными (несколько узлов чтения / записи) требует использования распределенный менеджер блокировок.
Обычные компьютерные кластерные системы обычно используют какое-то общее хранилище для данных, используемых ресурсами кластера. Этот подход имеет ряд недостатков, которые DRBD может помочь компенсировать:
- Доступ к общим ресурсам хранения обычно осуществляется через сеть хранения данных или на Network Attached Storage сервер, который создает некоторые накладные расходы в чтении Ввод / вывод. В DRBD эти накладные расходы уменьшены, поскольку все операции чтения выполняются локально.[нужна цитата ]
- Общее хранилище обычно дорогое, требует больше места (2U и более) и электроэнергии. DRBD позволяет настроить HA только с 2 компьютерами.
- Общее хранилище не обязательно должно быть высокодоступным. Например, одна сеть хранения данных, к которой имеют доступ несколько хостов виртуализации, считается общим хранилищем, но не считается высокодоступной на уровне хранилища - в случае отказа этой единой сети хранения данных ни один из узлов кластера не сможет получить доступ к общему хранилищу. DRBD позволяет использовать целевое хранилище, которое является как общим, так и высокодоступным.
Недостатком является меньшее время, необходимое для записи напрямую в совместно используемое запоминающее устройство, чем для маршрутизации записи через другой узел.
Сравнение с RAID-1
DRBD имеет внешнее сходство с RAID-1 в том, что он включает в себя копию данных на двух устройствах хранения, так что в случае сбоя одного из них можно использовать данные на другом. Однако он работает совсем иначе, чем RAID и даже сетевой RAID.
В RAID избыточность существует на уровне, прозрачном для приложения, использующего хранилище. Хотя существует два устройства хранения, существует только один экземпляр приложения, и приложение не знает о нескольких копиях. Когда приложение читает, уровень RAID выбирает устройство хранения для чтения. Когда одно запоминающее устройство выходит из строя, уровень RAID выбирает чтение другого, при этом экземпляр приложения не знает об ошибке.
Напротив, с DRBD есть два экземпляра приложения, и каждый может читать только с одного из двух устройств хранения. Если одно устройство хранения выйдет из строя, экземпляр приложения, привязанный к этому устройству, больше не сможет читать данные. Следовательно, в этом случае этот экземпляр приложения выключается, а другой экземпляр приложения, связанный с сохранившейся копией данных, берет на себя управление.
И наоборот, в RAID, если один экземпляр приложения выходит из строя, информация на двух устройствах хранения фактически становится непригодной для использования, но в DRBD другой экземпляр приложения может взять на себя управление.
Приложения
DRBD, работающий на блочном уровне ядра Linux, по сути, не зависит от рабочей нагрузки. DRBD может использоваться как основа:
- Обычный файловая система (это канонический пример),
- а файловая система общего диска Такие как GFS2 или же OCFS2,[6][7]
- другое логическое блочное устройство (используемое в LVM, Например),
- любое приложение, требующее прямого доступа к блочному устройству.
Кластеры на основе DRBD часто используются для добавления синхронной репликации и высокой доступности к файловые серверы, реляционные базы данных (Такие как MySQL ) и многие другие рабочие нагрузки.
Включение в ядро Linux
Авторы DRBD первоначально представили программное обеспечение сообществу ядра Linux в июле 2007 года для возможного включения в каноническую версию ядра Linux kernel.org.[8] После долгого обзора и нескольких обсуждений, Линус Торвальдс согласился сделать DRBD частью официального ядра Linux. DRBD был объединен 8 декабря 2009 года во время «окна объединения» для ядра Linux версии 2.6.33.
Смотрите также
Рекомендации
- ^ «DRBD для вашего облака». www.drbd.org. Получено 2016-12-05.
- ^ «18.4. Повышение производительности чтения за счет увеличения избыточности - Руководство пользователя DRBD (9.0)». www.drbd.org. Получено 2016-12-05.
- ^ «Глава 8. Интеграция DRBD с кластерами Pacemaker - Руководство пользователя DRBD (9.0)». www.drbd.org. Получено 2016-12-05.
- ^ ЛИНБИТ. «Руководство пользователя DRBD». Получено 2011-11-28.
- ^ Рейснер, Филипп (2005-10-11). «DRBD v8 - Реплицированное хранилище с общей семантикой диска» (PDF). Материалы 12-й Международной конференции по системным технологиям Linux. Гамбург, Германия.
- ^ http://www.drbd.org/users-guide/ch-ocfs2.html
- ^ «Архивная копия». Архивировано из оригинал на 2013-03-08. Получено 2013-03-21.CS1 maint: заархивированная копия как заголовок (связь)
- ^ Элленберг, Ларс (2007-07-21). «DRBD хочет перейти на основную линию». Linux-ядро (Список рассылки). Получено 2007-08-03.