Доступно в редакциях: Ultimate/EE
Входит в расширения: Интеграция с системами хранения данных
Стадия жизненного цикла модуля: Экспериментальная версия
У модуля есть требования для установки
Модуль csi-mind-ustor позволяет рабочим нагрузкам кластера хранить данные на томах uStor.
Тома подключаются к узлам по протоколу NBD (Network Block Device).
Подключение к кластеру uStor описывается кастомным ресурсом MindUstorStorageConnection, а каждый StorageClass драйвера — кастомным ресурсом MindUstorStorageClass. Модуль устанавливает на узлы клиент uStor и поддерживает его конфигурацию в соответствии с подключением.
Основные возможности
Модуль предоставляет следующие возможности:
- StorageClass для пулов uStor, описываемые ресурсами MindUstorStorageClass;
- постоянные тома в uStor, подключаемые к узлам по NBD;
- расширение томов без перезапуска пода;
- тома с файловой системой ext4 или xfs, а также блочные тома (
Block); - снимки томов и восстановление томов из них;
- блочные тома с доступом
ReadWriteManyдля живой миграции виртуальных машин модуляvirtualization; - автоматическая установка и настройка клиента uStor (
ustor-client,ustor-nbd) на узлах; - метрики заполненности томов для алертов и дашбордов PersistentVolumeClaim;
- регулярная проверка входа в API управления uStor и алерты, если подключение или StorageClass не готовы.
Как работает модуль
Модуль работает следующим образом:
- После включения модуль устанавливает клиент uStor на все узлы кластера с поддерживаемой ОС
и назначает этим узлам лейбл
storage.deckhouse.io/csi-mind-ustor-client-ready=true. CSI node plugin работает только на узлах с этим лейблом. - Администратор создаёт секреты с учётными данными пользователя uStor и клиентскими сертификатами, а также MindUstorStorageConnection, который ссылается на них.
- Модуль записывает конфигурацию клиента uStor и сертификаты в
/etc/ustorна узлах, выбранных параметромdataPlane.nodeSelectorподключения, оставляет CSI node plugin только на них и запускает CSI-контроллер. Раз в час модуль выполняет вход в API управления uStor с учётными данными подключения. - Администратор создаёт MindUstorStorageClass. Модуль создаёт StorageClass с тем же именем
для драйвера
ustor-nbd.csi.mindsw.io. - Когда создаётся PersistentVolumeClaim с этим StorageClass, драйвер создаёт образ в пуле uStor. Под, использующий том, планируется только на узел, где работает CSI node plugin. Когда под запускается, том подключается к его узлу по NBD и монтируется.
StorageClass драйвера ustor-nbd.csi.mindsw.io создаются, изменяются и удаляются только через MindUstorStorageClass.
Напрямую можно менять только их аннотации.
Системные требования и рекомендации
Для работы модуля требуется:
- Deckhouse Platform (DP) версии 1.72 или новее;
- кластер uStor 1.6, API управления которого доступен из кластера Kubernetes;
- доступ узлов, на которых монтируются тома uStor, к etcd и OSD uStor по сети данных uStor;
- возможность загрузить модуль ядра
nbdна этих узлах; - ОС узлов: Astra Linux 1.8, РЕД ОС 8, Ubuntu 22.04 или 24.04, Debian 12; на узлах с другой ОС тома uStor смонтировать нельзя;
- отдельный пользователь uStor для CSI-контроллера, подготовленный, как описано в разделе «Подготовка пользователя uStor»;
- для снимков томов — модуль, предоставляющий API
snapshot.storage.k8s.io, напримерsnapshot-controller.
На узлах, выбранных параметром dataPlane.nodeSelector подключения, модуль заменяет /etc/ustor/ustor.conf
и сертификаты в /etc/ustor/certs конфигурацией клиента.
Если на узле есть собственная конфигурация uStor (например, на сервере uStor), исключите его с помощью dataPlane.nodeSelector.
Ограничения
У модуля есть следующие ограничения:
- модуль обслуживает один кластер uStor: используется только самый старый MindUstorStorageConnection;
- тома
Filesystemподдерживают только режимы доступаReadWriteOnceиReadWriteOncePod; - тома
Blockподдерживают только режим доступаReadWriteOncePod, режимReadWriteManyразрешён только для дисков виртуальных машин модуляvirtualization; - клонирование тома напрямую из другого PersistentVolumeClaim не поддерживается: создайте снимок и восстановите том из него;
- эфемерные inline-тома CSI не поддерживаются;
- параметры MindUstorStorageClass нельзя изменить после создания.