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

Работоспособность модуля гарантируется только при использовании стоковых ядер, поставляемых вместе с поддерживаемыми дистрибутивами.

Работоспособность модуля при использовании других ядер или дистрибутивов возможна, но не гарантируется.

Почему в кластере не создаются ресурсы BlockDevice и LVMVolumeGroup?

  • В большинстве случаев BlockDevice-ресурсы могут не создаваться по причине того, что существующие девайсы не проходят фильтрацию на стороне контроллера. Пожалуйста, убедитесь, что ваши девайсы соответствуют указанным требованиям.

  • LVMVolumeGroup-ресурсы могут не создаваться по причине отсутствия в кластере BlockDevice-ресурсов, так как их имена используются в спецификации LVMVolumeGroup.

  • В том случае, если BlockDevice-ресурсы существуют, а LVMVolumeGroup-ресурсы отсутствуют, пожалуйста, убедитесь, что у существующих LVM Volume Group на узле имеется специальный тег storage.deckhouse.io/enabled=true.

Я выполнил команду на удаление ресурса LVMVolumeGroup, но и ресурс, и Volume Group осталась. Почему так?

Такая ситуация возможна в двух случаях:

  1. В Volume Group имеются LV. Контроллер не берет ответственность за удаление LV с узла, поэтому, если в созданной с помощью ресурса Volume Group имеются какие-либо логические тома, Вам необходимо вручную удалить их на узле. После этого и ресурс, и Volume Group (вместе с PV) будут удалены автоматически.

  2. На ресурсе имеется аннотация storage.deckhouse.io/deletion-protection. Данная аннотация защищает удаление ресурса и, как следствие, созданной им Volume Group. Вам необходимо самостоятельно убрать аннотацию командой

kubectl annotate lvg %lvg-name% storage.deckhouse.io/deletion-protection-

После выполнения данной команды и ресурс, и Volume Group будут удалены автоматически.

Я пытаюсь создать Volume Group, используя ресурс LVMVolumeGroup, но у меня ничего не получается. Почему?

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

Как правило, проблема кроется в некорректно указанных ресурсах BlockDevice. Пожалуйста, убедитесь, что выбранные ресурсы удовлетворяют следующим требованиям:

  • Поле Consumable имеет значение true.
  • Для Volume Group типа Local указанные BlockDevice принадлежат одному узлу.
  • Указаны актуальные имена ресурсов BlockDevice.

С полным списком ожидаемых значений вы можете ознакомиться с помощью CR-референса LVMVolumeGroup-ресурса.

Что произойдет, если я отключу один из девайсов в Volume Group? Соответствующий ресурс LVMVolumeGroup удалится?

Ресурс LVMVolumeGroup будет существовать до тех пор, пока существует соответствующая Volume Group. До тех пор, пока существует хоть один девайс, Volume Group будет существовать, но в «нездоровом» состоянии. Эти проблемы будут отображены в status ресурса.

После восстановления отключенного девайса на узле, LVM Volume Group восстановит свою работоспособность и соответствующий ресурс LVMVolumeGroup также отобразит актуальное состояние.

Как передать контроллеру управление существующей на узле LVM Volume Group?

Достаточно добавить LVM-тег storage.deckhouse.io/enabled=true на LVM Volume Group на узле:

vgchange myvg-0 --addtag storage.deckhouse.io/enabled=true

Я хочу, чтобы контроллер перестал следить за LVM Volume Group на узле. Как мне это сделать?

Достаточно удалить LVM-тег storage.deckhouse.io/enabled=true у нужной LVM Volume Group на узле:

vgchange myvg-0 --deltag storage.deckhouse.io/enabled=true

После этого контроллер перестанет отслеживать выбранную Volume Group и самостоятельно удалит связанный с ней ресурс LVMVolumeGroup.

Я не вешал LVM-тег storage.deckhouse.io/enabled=true на Volume Group, но он появился. Как это возможно?

Это возможно в случае, если вы создавали LVM Volume Group через ресурс LVMVolumeGroup (в таком случае контроллер автоматически вешает данный LVM-тег на созданную LVM Volume Group). Либо на данной Volume Group или ее Thin-pool был LVM-тег модуля linstorlinstor-*.

При миграции с встроенного модуля linstor на модули sds-node-configurator и sds-drbd автоматически происходит изменение LVM-тегов linstor-* на LVM-тег storage.deckhouse.io/enabled=true в Volume Group. Таким образом, управление этими Volume Group передается модулю sds-node-configurator.