DRBD на блочном дисковом устройстве

Я пытаюсь настроить DRBD на устройстве с сырым диском /dev/sdb без таблицы разделов и стека LVM PV/VG/LV

Поскольку этот диск является виртуальным, и гипервизор, который я использую, разрешает расширение диска "на лету", я не хочу беспокоиться об операциях LVM или переразметке, когда придет время расширить мою файловую систему DRBD.

Мое определение ресурса не может быть проще

resource data {
  device  /dev/drbd1;
  meta-disk internal;
  disk    /dev/sdb;
  on node1 {
    address 10.10.10.16:7789;
  }
  on node2 {
    address 10.10.10.17:7789;
  }
}

Создание метаданных работ

# drbdadm create-md data
initializing activity log
NOT initializing bitmap
Writing meta data...
New drbd meta data block successfully created.

Но операция присоединения не удалась

 # drbdadm attach data
 1: Failure: (127) Device minor not allocated
 additional info from kernel:
 unknown minor
 Command 'drbdsetup-84 attach 1 /dev/sdb /dev/sdb internal' terminated with exit code 10

Сообщение об ошибке действительно звучит так, будто команда ожидает индекс таблицы разделов в качестве вспомогательного кода устройства.

Как мне подключить необработанное устройство к ресурсу DRBD?

2 ответа

Решение

В очень специфическом случае пакета Debian DRBD нет необходимости использовать "прикрепление данных".

Вот минимальная последовательность запуска и запуска DRBD с Debian:

  • Создайте свой файл ресурсов /etc/drbd.d/data.res на обоих узлах, как правило, для определения /dev/drbd1 (напомните этот номер тома 1 для очистки растровых операций!)
  • взывать drbdadm create-md data на обоих узлах
  • Запустите службу на обоих узлах, они должны ждать готовности друг друга: systemctl start drbd.service
  • подтвердить Connected состояние с drbdadm cstate data, Если нет, не продолжайте до тех пор , пока не будет решена проблема запуска службы или подключения к сети.
  • На primary только для узла, очистите растровое изображение для предотвращения бесполезной начальной синхронизации: drbdadm -- --clear-bitmap new-current-uuid data/1 (помните последний параметр: resourceName/volumeNumber)
  • На primary только узел, продвигать узел как primary: drbdadm primary data

С этого момента primary узел, /dev/drbd1 Устройство доступно для любых регулярных операций блока, таких как blockdev или же mkfs,

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

drbdadm attach data не единственная команда, которую вы хотите использовать после создания метаданных.

Для запуска вашего устройства должна работать одна из следующих процедур:

# drbdadm create-md data
# drbdadm up data

-- или же --

# drbdadm create-md data
# drbdsetup-84 new-resource data
# drbdsetup-84 new-minor data 1 0 
# drbdmeta 1 v08 /dev/sdb internal apply-al 
# drbdsetup-84 attach 1 /dev/sdb /dev/sdb internal
# drbdsetup-84 connect data ipv4:10.10.10.16:7789 ipv4:10.10.10.17:7789 --protocol=C

Как только вы это сделаете, у вас будет устройство с состоянием соединения "Подключен" и состоянием диска "Несогласованный / Несогласованный"; это будет всегда / только после создания новых метаданных на обоих узлах. Оттуда просто выберите один узел для продвижения на Первичный, что приведет к синхронизации DRBD с Первичного -> Вторичного:

# drbdadm primary data --force 

Вы никогда не должны при нормальных обстоятельствах использовать "--force" для продвижения вашего устройства DRBD.

Тем не менее, вы также сказали:

Поскольку этот диск является виртуальным, и гипервизор, который я использую, разрешает расширение диска "на лету", я не хочу беспокоиться об операциях LVM или переразметке, когда придет время расширить мою файловую систему DRBD.

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

Другие вопросы по тегам