DRBD9 + Proxmox = надежное хранилище
5 (100%) 1 vote

Тем, кто ищет надежное software-defined хранилище, стоит обратить внимание на DRBD9. Его предыдущая версия не пользовалась особой популярностью по ряду причин: отсутствовала поддержка репликации до двух узлов, проблемы со spli-brin. На сегодняшний день DRBD постоянно обновляется разработчиками LINBIT.

Особенности DRBD9

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

  • diskless-ноды;
  • RDMA;
  • использование снапшотов;
  • онлайн-миграция;
  • поддержка до 32 реплик.

Следует отметить переходный этап в разработке инструментария интегрирования новых версий продукта от LINBIT с OpenStack, Kubernetes, OpenNebula, Proxmox. В дальнейшем нежелательными для использования будут объявлены DRBDmanage с Linstor.

Proxmox + DRBD9

В Proxmox имеется готовый интерфейс, отличающийся простотой и многофункциональностью. Отметим:

  • кластеризацию прямо из коробки;
  • поддержку механизма fencing на softdog;
  • минимальные таймауты во время переключения (в случае применения контейнеров-LXC).

DRBD9 можно использовать, чтобы получить отказоустойчивый NFS-сервер. Для этого организуем NFS-доступ на общий раздел, что и позволит добиться конкурентного доступа к системе файлов хранилища сразу с нескольких серверов. Общий алгоритм на 3 ноды:

  • на каждой из нод – распределенное устройство-DRBD с файловой системой ext4;
  • один из серверов определяется как мастер;
  • на мастере в контейнере-LXC запускается NFS-сервер.

Ноды через NFS обращаются к устройству-DRBD. Мастер можно переместить на другую ноду сразу с NFS-сервером. К тому же отпадает необходимость в сложных кластерных файловых системах с DLM.

«Плюсы» такого решения:

  • хранение каких-либо файлов, бэкапов, виртуальных дисков;
  • организация ReadWriteMany доступа для PersistentVolumes (с Kubernetes).

Еще одним преимуществом DRBD9 является упрощение функциональности: автоматическое ролевое переключение с Primary на Secondary с помощью миграции в интерфейс Proxmox контейнера с NFS-сервером. Объясняем: при монтировании на ноде DRBD, оно автоматически получает статус Primary. То есть смонтировать его уже на другой ноде не получится, выдаст ошибку доступа. Подобное блокирование гарантирует защиту от одновременных доступов. Если контейнер будет остановлен, то устройство- DRBD будет размонтировано и станет Secondary.

Также хорошо интегрируется специальный готовый плагин DRBDmanage. Но замечен и ряд «минусов»:

  • нельзя использовать на ноде больше одного пула;
  • controller volume размещается только на стандартном LVM;
  • замечены dbus-глюки.

Перечисленные недостатки привели к появлению Linstor: нарезает на нодах LVM/ZFS разделы, распределяет DRBD-конфиги. Он в полной мере интегрируется с Kubernetes.
Суть Proxmox – его использование в качестве cluster-manager. При этом отдельно взятый LXC-контейнер будет играть роль сервиса, который запустится в HA-кластере. К нему в комплектацию добавится и соответствующая корневая система. В этом варианте он установится внутри контейнера единоразово, а не на каждом из серверов отдельно.