Функциональность модуля может измениться, но основные возможности сохранятся. Совместимость с будущими версиями обеспечивается, но может потребовать дополнительных действий по миграции.
Работоспособность модуля гарантируется только при использовании стоковых ядер, поставляемых вместе с поддерживаемыми дистрибутивами.
Работоспособность модуля при использовании других ядер или дистрибутивов возможна, но не гарантируется.
Почему в кластере не создаются ресурсы BlockDevice
и LVMVolumeGroup
?
-
В большинстве случаев
BlockDevice
-ресурсы могут не создаваться по причине того, что существующие девайсы не проходят фильтрацию на стороне контроллера. Пожалуйста, убедитесь, что ваши девайсы соответствуют указанным требованиям. -
LVMVolumeGroup
-ресурсы могут не создаваться по причине отсутствия в кластереBlockDevice
-ресурсов, так как их имена используются в спецификацииLVMVolumeGroup
. -
В том случае, если
BlockDevice
-ресурсы существуют, аLVMVolumeGroup
-ресурсы отсутствуют, пожалуйста, убедитесь, что у существующихLVM Volume Group
на узле имеется специальный тегstorage.deckhouse.io/enabled=true
.
Я выполнил команду на удаление ресурса LVMVolumeGroup
, но и ресурс, и Volume Group
осталась. Почему так?
Такая ситуация возможна в двух случаях:
-
В
Volume Group
имеютсяLV
. Контроллер не берет ответственность за удаление LV с узла, поэтому, если в созданной с помощью ресурсаVolume Group
имеются какие-либо логические тома, Вам необходимо вручную удалить их на узле. После этого и ресурс, иVolume Group
(вместе сPV
) будут удалены автоматически. -
На ресурсе имеется аннотация
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-тег модуля linstor
— linstor-*
.
При миграции с встроенного модуля linstor
на модули sds-node-configurator
и sds-drbd
автоматически происходит изменение LVM-тегов linstor-*
на LVM-тег storage.deckhouse.io/enabled=true
в Volume Group
. Таким образом, управление этими Volume Group
передается модулю sds-node-configurator
.