Модуль находится в процессе активного развития. Функциональность может существенно измениться.

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

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

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

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

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

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

Я удалил ресурс LVMVolumeGroup, но Volume Group осталась? Что делать?

Удаление ресурса LVMVolumeGroup не приводит к удалению указанной в нем Volume Group. Для этого в ресурс необходимо добавить специальную аннотацию: storage.deckhouse.io/sds-delete-vg: "". Контроллер запустит процесс удаления LVM Volume Group с узла и после его завершения удалит связанный ресурс самостоятельно.

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

Я добавил аннотацию на удаление, но ресурс LVMVolumeGroup продолжает существовать и Volume Group на узле осталась. Почему?

Распространенный случай — соответствующая LVM Volume Group на узле имеет Logical Volume. Контроллер не удаляет Logical Volume, так как эти volumes могут иметь важные данные, и пользователь должен самостоятельно очистить их.

Через несколько секунд после удаления Logical Volume контроллер должен довести до конца операцию удаления 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 --addtag 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.