Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки

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

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

Deckhouse Kubernetes Platform устанавливает CRD, но не удаляет их при отключении модуля. Если вам больше не нужны созданные CRD, удалите их.

BlockDevice

Scope: Cluster
Version: v1alpha1

Ресурс отображает актуальную информацию о доступных блочных устройствах на узлах, которые могут быть использованы контроллером sds-node-configurator для операций в LVM.

Ресурс создается и обслуживается только контроллером. Ручное изменение ресурса запрещено.

  • status
    объект
    • status.actualVGNameOnTheNode
      строка

      Фактическое имя группы томов LVM на узле, в которую включено устройство.

      Опционально: присутствует только если устройство используется как физический том и включено в группу томов.

    • status.consumable
      булевый

      Обязательный параметр

      Флаг, определяющий, может ли данное устройство быть использовано контроллером для создания физического тома LVM.
    • status.fsType
      строка
      Тип файловой системы устройства.

      Допустимые значения: LVM2_member, ‘’

    • status.hotPlug
      булевый

      Обязательный параметр

      Тип подключения устройства. Может быть:

      • true — если устройство было подключено как съемное;
      • false — в остальных случаях.
    • status.lvmVolumeGroupName
      строка

      Имя ресурса LVMVolumeGroup.

      Опционально: присутствует только если устройство используется как физический том, включено в группу томов и указано в ресурсе LVMVolumeGroup.

    • status.machineId
      строка

      Обязательный параметр

      Уникальный идентификатор машины, на которой находится устройство (обычно хранится в /etc/machine-id).
    • status.model
      строка

      Модель устройства.

      Опционально: может отсутствовать, если производитель не предоставляет информацию для данного типа дисков.

    • status.nodeName
      строка

      Обязательный параметр

      Имя Kubernetes-узла, на котором находится устройство.
    • status.partUUID
      строка

      UUID раздела.

      Опционально: присутствует только если устройство является разделом.

    • status.path
      строка

      Обязательный параметр

      Путь устройства на узле (/dev/sda).
    • status.pvUUID
      строка

      UUID физического тома LVM.

      Опционально: присутствует только если устройство используется как физический том LVM.

    • status.rota
      булевый

      Обязательный параметр

      Тип носителя устройства. Может быть:

      • true — для HDD;
      • false — для SSD.
    • status.serial
      строка
      Уникальный серийный номер устройства.
    • status.size
      строка

      Обязательный параметр

      Размер устройства.
    • status.type
      строка

      Обязательный параметр

      Тип устройства (диск, раздел, RAID и другие).
    • status.vgUUID
      строка

      UUID группы томов LVM, которой принадлежит данное устройство в качестве физического тома.

      Опционально: присутствует только если устройство используется как физический том и включено в группу томов.

    • status.wwn
      строка

      Уникальный идентификатор устройства WWN (World Wide Name).

      Опционально: может отсутствовать, если WWN для данного типа дисков не поддерживается производителем.

LVMLogicalVolume

Scope: Cluster
Version: v1alpha1

Ресурс LVMLogicalVolume определяет хранилище, в котором будет создан PV.
  • spec
    объект
    • spec.actualLVNameOnTheNode
      строка

      Обязательный параметр

      Имя Logical Volume на узле.

      Минимальная длина: 1

      Шаблон: ^[a-z0-9]([a-z0-9-.]{0,251}[a-z0-9])?$

    • spec.lvmVolumeGroupName
      строка

      Обязательный параметр

      Имя ресурса LVMVolumeGroup, Volume Group которого будет использовано для создания Logical Volume.

      Минимальная длина: 1

      Шаблон: ^[a-z0-9]([a-z0-9-.]{0,251}[a-z0-9])?$

    • spec.size
      строка или число

      Обязательный параметр

      Желаемый размер Logical Volume. Может быть указан как в численном, так и процентном отношении к общему размеру Volume Group или thin pool. Для thin pool общий размер — это реальный размер пула, умноженный на значение allocationLimit.

      Обратите внимание, что при указании размера в процентах Logical Volume будет автоматически расширена при расширении Volume Group или thin pool, а также при увеличении значения поля allocationLimit для thin pool.

      Минимальная длина: 1

      Шаблон: ^[0-9]+(\.[0-9]+)?(E|P|T|G|M|k|Ei|Pi|Ti|Gi|Mi|Ki)?$|^[1-9][0-9]?%$|100%

    • spec.source
      объект
      Источник тома, если указан.
      • spec.source.kind
        строка

        Обязательный параметр

        Тип источника. Тип LVMLogicalVolume означает, что текущий ресурс — это клон. Тип LVMLogicalVolumeSnapshot означает, что текущий ресурс — это восстановленный том.

        Допустимые значения: LVMLogicalVolume, LVMLogicalVolumeSnapshot

      • spec.source.name
        строка

        Обязательный параметр

        Имя ресурса, из которого создан текущий ресурс.

        Минимальная длина: 1

    • spec.thick
      объект
      Описывает настройки используемого Thick Logical Volume.
      • spec.thick.contiguous
        булевый

        Если установлено значение true, логический том будет создан с атрибутом contiguous.

        Используйте этот атрибут с осторожностью, так как он может привести к невозможности создания Logical Volume, несмотря на наличие свободного пространства.

    • spec.thin
      объект
      Определяет используемый thin pool. Указывается только при Thin Logical Volume.
      • spec.thin.poolName
        строка

        Обязательный параметр

        Имя используемого thin pool.

        Минимальная длина: 1

        Шаблон: ^.*$

    • spec.type
      строка

      Обязательный параметр

      Тип Logical Volume.

      Допустимые значения: Thick, Thin

    • spec.volumeCleanup
      строка

      Метод очистки тома после удаления PV. Если параметр не задан, полное удаление данных не гарантируется.

      Возможные значения:

      • RandomFillSinglePass — том будет перезаписан случайными данными один раз перед удалением. Не рекомендуется использовать данную опцию для твердотельных накопителей, так как перезапись уменьшает ресурс накопителя. Для thin-томов будет перезаписано только используемое на момент удаления тома пространство.
      • RandomFillThreePass — том будет перезаписан случайными данными три раза перед удалением. Не рекомендуется использовать данную опцию для твердотельных накопителей, так как перезапись уменьшает ресурс накопителя. Для thin-томов будет перезаписано только используемое на момент удаления тома пространство.
      • Discard — перед удалением все блоки тома будут отмечены как свободные с помощью системного вызова discard. Данная опция применима только для твердотельных накопителей и thick-томов.

      Допустимые значения: RandomFillThreePass, RandomFillSinglePass, Discard

  • status
    объект
    Описывает состояние ресурса.
    • status.actualSize
      строка
      Актуальный размер Logical Volume на узле.
    • status.contiguous
      булевый
      Показывает, создан ли логический том с атрибутом contiguous.
    • status.phase
      строка
      Текущая фаза ресурса.

      Допустимые значения: Created, Pending, Cleaning, Resizing, Failed

    • status.reason
      строка
      Причина выставленной фазы.

LVMLogicalVolumeSnapshot

Scope: Cluster
Version: v1alpha1

Ресурс LVMLogicalVolumeSnapshot определяет хранилище, в котором будет создан VolumeSnapshot.
  • spec
    объект
    • spec.actualSnapshotNameOnTheNode
      строка
      Имя снимка тома на узле.

      Минимальная длина: 1

    • spec.lvmLogicalVolumeName
      строка

      Обязательный параметр

      Имя ресурса LVMLogicalVolume, с которого создается снимок.

      Минимальная длина: 1

  • status
    объект
    Описывает состояние ресурса.
    • status.actualLVNameOnTheNode
      строка
      Фактическое имя тома на узле, с которого создан снимок.
    • status.actualVGNameOnTheNode
      строка
      Фактическое имя группы томов на узле, в которой находится снимок.
    • status.nodeName
      строка
      Имя Kubernetes-узла, на котором находится снимок.
    • status.phase
      строка

      Текущая фаза ресурса.

      Возможные значения:

      • Created — снимок создан успешно;
      • Pending — снимок в процессе создания;
      • Failed — ошибка при создании снимка.

      Допустимые значения: Created, Pending, Failed

    • status.reason
      строка
      Причина выставленной фазы.
    • status.size
      строка
      Размер снимка Logical Volume на узле.
    • status.usedSize
      строка
      Используемый размер снимка Logical Volume на узле.

LVMVolumeGroup

Scope: Cluster
Version: v1alpha1

Интерфейс управления Volume Group’ами и Thin pool’ами на узлах.

Этот тип ресурсов может быть создан как самим пользователем, так и контроллером sds-node-configurator. Контроллер sds-node-configurator автоматически создаст ресурс LVMVolumeGroup в случае, если найдет на узле существующую Volume Group со специальным тегом ‘storage.deckhouse.io/enabled=true’, при этом контроллер самостоятельно заполнит как spec, так и status поля. Поле spec.thinPools нужно заполнить самостоятельно.

  • spec
    объект
    • spec.actualVGNameOnTheNode
      строка

      Обязательный параметр

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

      Это поле неизменяемое.

    • spec.blockDeviceSelector
      объект

      Обязательный параметр

      Желаемый селектор блочных устройств.

      Обратите внимание, что выбранные блочные устройства должны принадлежать одному узлу для группы томов с типом ‘Local’.

      • spec.blockDeviceSelector.matchExpressions
        массив объектов
        Выражения для селектора блочных устройств.
        • spec.blockDeviceSelector.matchExpressions.key
          строка
          Ключ метки для проверки.
        • spec.blockDeviceSelector.matchExpressions.operator
          строка
          Оператор для сравнения значений.

          Допустимые значения: In, NotIn, Exists, DoesNotExist

        • spec.blockDeviceSelector.matchExpressions.values
          массив строк
          Массив значений для сравнения. Требуется, если оператор In или NotIn.
      • spec.blockDeviceSelector.matchLabels
        объект
        Метки для селектора блочных устройств.
    • spec.local
      объект
      Желаемая конфигурация для локальной группы томов.
      • spec.local.nodeName
        строка

        Обязательный параметр

        Желаемый узел для группы томов LVM.

        Это поле неизменяемое.

    • spec.thinPools
      массив объектов
      Желаемая конфигурация thin pool.
      • spec.thinPools.allocationLimit
        строка
        Предел расширения thin pool.

        По умолчанию: 150%

        Шаблон: ^[1-9][0-9]{2,3}%$

      • spec.thinPools.name
        строка

        Желаемое имя thin pool.

        Это поле неизменяемое.

      • spec.thinPools.size
        строка или число

        Желаемый размер thin pool. Может быть указан как в численном формате, так и в процентах от общего размера группы томов.

        При указании размера в процентах thin pool будет автоматически расширен при расширении группы томов.

        Шаблон: ^[0-9]+(\.[0-9]+)?(E|P|T|G|M|k|Ei|Pi|Ti|Gi|Mi|Ki)?$|^[1-9][0-9]?%$|100%

    • spec.type
      строка

      Обязательный параметр

      Тип группы томов.

      Возможные значения:

      • Local — локальная группа томов; используемые устройства не являются распределёнными (не Shared LUN).

      Допустимые значения: Local

  • status
    объект
    • status.allocatedSize
      строка
      Объём пространства, занимаемый в данный момент в группе томов.
    • status.conditions
      массив объектов
      Условия ресурса LVMVolumeGroup.
      • status.conditions.lastTransitionTime
        строка
        Время последнего изменения условия.
      • status.conditions.message
        строка
        Информация о текущем статусе.
      • status.conditions.observedGeneration
        целочисленный
        Версия ресурса, на которой было применено условие.
      • status.conditions.reason
        строка
        Причина текущего статуса.
      • status.conditions.status
        строка
        Статус условия.
      • status.conditions.type
        строка
        Тип условия.

        Допустимые значения: VGConfigurationApplied, VGReady, NodeReady, AgentReady, Ready

    • status.configurationApplied
      строка
      Показывает, была ли последняя конфигурация успешно применена.
    • status.nodes
      массив объектов
      Информация об узлах, на которых находится группа томов.
      • status.nodes.devices
        массив объектов
        Информация об устройствах, используемых в группе томов на текущем узле.
        • status.nodes.devices.blockDevice
          строка
          Имя соответствующего ресурса блочного устройства.
        • status.nodes.devices.devSize
          строка
          Размер блочного устройства.
        • status.nodes.devices.path
          строка
          Путь к устройству на узле.
        • status.nodes.devices.pvSize
          строка
          Размер физического тома.
        • status.nodes.devices.pvUUID
          строка
          UUID физического тома LVM.
      • status.nodes.name
        строка
        Имя узла.
    • status.phase
      строка
      Общее состояние ресурса LVMVolumeGroup.

      Допустимые значения: Pending, Ready, NotReady, Terminating, ‘’

    • status.thinPoolReady
      строка
      Отображает количество здоровых и общее количество thin pool.
    • status.thinPools
      массив объектов

      Текущее состояние thin pool группы томов.

      Может быть пустым, если в группе томов нет ни одного thin pool.

      • status.thinPools.actualSize
        строка
        Ёмкость thin pool.
      • status.thinPools.allocatedSize
        строка
        Общий размер запрошенных логических томов в thin pool.
      • status.thinPools.allocationLimit
        строка
        Предел расширения thin pool.

        По умолчанию: 150%

        Шаблон: ^[1-9][0-9]{2,3}%$

      • status.thinPools.availableSpace
        строка
        Свободное место в thin pool.
      • status.thinPools.message
        строка
        Информация о статусе.
      • status.thinPools.name
        строка
        Имя thin pool.
      • status.thinPools.ready
        булевый
        Статус работоспособности thin pool.
      • status.thinPools.usedSize
        строка
        Используемый размер thin pool.
    • status.vgFree
      строка
      Свободное место в группе томов.
    • status.vgSize
      строка
      Ёмкость группы томов.
    • status.vgUUID
      строка
      UUID группы томов.

LvmVolumeGroupBackup

Scope: Cluster
Version: v1alpha1

Ресурс, сохраняющий информацию из ресурсов lvmvolumegroups для миграции их kind с LvmVolumeGroup на LVMVolumeGroup.
  • spec
    объект
    • spec.actualVGNameOnTheNode
      строка

      Обязательный параметр

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

      Это поле неизменяемое.

    • spec.blockDeviceNames
      массив строк

      Обязательный параметр

      Массив имён ресурсов блочных устройств для создания группы томов.

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

    • spec.thinPools
      массив объектов
      Желаемая конфигурация thin pool.
      • spec.thinPools.allocationLimit
        строка
        Предел расширения thin pool.

        По умолчанию: 150%

        Шаблон: ^[1-9][0-9]{2,3}%$

      • spec.thinPools.name
        строка

        Желаемое имя thin pool.

        Это поле неизменяемое.

      • spec.thinPools.size
        строка или число

        Желаемый размер thin pool. Может быть указан как в численном формате, так и в процентах от общего размера группы томов.

        При указании размера в процентах thin pool будет автоматически расширен при расширении группы томов.

        Шаблон: ^[0-9]+(\.[0-9]+)?(E|P|T|G|M|k|Ei|Pi|Ti|Gi|Mi|Ki)?$|^[1-9][0-9]?%$|100%

    • spec.type
      строка

      Обязательный параметр

      Тип группы томов.

      Возможные значения:

      • Local — локальная группа томов; используемые устройства не являются распределёнными (не Shared LUN).

      Допустимые значения: Local

  • status
    объект
    • status.allocatedSize
      строка
      Объём пространства, занимаемый в данный момент в группе томов.
    • status.conditions
      массив объектов
      Условия ресурса LVMVolumeGroup.
      • status.conditions.lastTransitionTime
        строка
        Время последнего изменения условия.
      • status.conditions.message
        строка
        Информация о текущем статусе.
      • status.conditions.observedGeneration
        целочисленный
        Версия ресурса, на которой было применено условие.
      • status.conditions.reason
        строка
        Причина текущего статуса.
      • status.conditions.status
        строка
        Статус условия.
      • status.conditions.type
        строка
        Тип условия.

        Допустимые значения: VGConfigurationApplied, VGReady, NodeReady, AgentReady, Ready

    • status.configurationApplied
      строка
      Показывает, была ли последняя конфигурация успешно применена.
    • status.nodes
      массив объектов
      Информация об узлах, на которых находится группа томов.
      • status.nodes.devices
        массив объектов
        Информация об устройствах, используемых в группе томов на текущем узле.
        • status.nodes.devices.blockDevice
          строка
          Имя соответствующего ресурса блочного устройства.
        • status.nodes.devices.devSize
          строка
          Размер блочного устройства.
        • status.nodes.devices.path
          строка
          Путь к устройству на узле (например, /dev/sda).
        • status.nodes.devices.pvSize
          строка
          Размер физического тома.
        • status.nodes.devices.pvUUID
          строка
          UUID физического тома LVM.
      • status.nodes.name
        строка
        Имя узла.
    • status.phase
      строка
      Общее состояние ресурса LVMVolumeGroup.

      Допустимые значения: Pending, Ready, NotReady, Terminating, ‘’

    • status.thinPoolReady
      строка
      Отображает количество здоровых и общее количество thin pool.
    • status.thinPools
      массив объектов

      Текущее состояние thin pool группы томов.

      Может быть пустым, если в группе томов нет ни одного thin pool.

      • status.thinPools.actualSize
        строка
        Ёмкость thin pool.
      • status.thinPools.allocatedSize
        строка
        Общий размер запрошенных логических томов в thin pool.
      • status.thinPools.allocationLimit
        строка
        Предел расширения thin pool.

        По умолчанию: 150%

        Шаблон: ^[1-9][0-9]{2,3}%$

      • status.thinPools.availableSpace
        строка
        Свободное место в thin pool.
      • status.thinPools.message
        строка
        Информация о статусе.
      • status.thinPools.name
        строка
        Имя thin pool.
      • status.thinPools.ready
        булевый
        Статус работоспособности thin pool.
      • status.thinPools.usedSize
        строка
        Используемый размер thin pool.
    • status.vgFree
      строка
      Свободное место в группе томов.
    • status.vgSize
      строка
      Ёмкость группы томов.
    • status.vgUUID
      строка
      UUID группы томов.

LVMVolumeGroupSet

Scope: Cluster
Version: v1alpha1

Интерфейс для одновременного создания нескольких ресурсов LVMVolumeGroup по общему шаблону.
  • spec
    объект
    • spec.lvmVolumeGroupTemplate
      объект

      Обязательный параметр

      Общий шаблон для ресурсов LVMVolumeGroup, создаваемых данным набором.
      • spec.lvmVolumeGroupTemplate.actualVGNameOnTheNode
        строка

        Обязательный параметр

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

        Это поле неизменяемое. Указанное имя группы томов будет общим для каждого ресурса LVMVolumeGroup, созданного данным набором.

      • spec.lvmVolumeGroupTemplate.blockDeviceSelector
        объект

        Обязательный параметр

        Селектор ресурсов BlockDevice, используемый в конфигурации ресурсов LVMVolumeGroup.
        • spec.lvmVolumeGroupTemplate.blockDeviceSelector.matchExpressions
          массив объектов
          Выражения для селектора блочных устройств.
          • spec.lvmVolumeGroupTemplate.blockDeviceSelector.matchExpressions.key
            строка
            Ключ метки для проверки.
          • spec.lvmVolumeGroupTemplate.blockDeviceSelector.matchExpressions.operator
            строка
            Оператор для сравнения значений.

            Допустимые значения: In, NotIn, Exists, DoesNotExist

          • spec.lvmVolumeGroupTemplate.blockDeviceSelector.matchExpressions.values
            массив строк
            Массив значений для сравнения. Требуется, если оператор In или NotIn.
        • spec.lvmVolumeGroupTemplate.blockDeviceSelector.matchLabels
          объект
          Метки для селектора блочных устройств.
      • spec.lvmVolumeGroupTemplate.metadata
        объект
        Метаданные ресурсов LVMVolumeGroup.
        • spec.lvmVolumeGroupTemplate.metadata.labels
          объект
          Обязательные метки для ресурсов LVMVolumeGroup.
      • spec.lvmVolumeGroupTemplate.thinPools
        массив объектов

        Желаемая конфигурация thin pool в ресурсах LVMVolumeGroup.

        Указанная конфигурация будет общей для каждого ресурса LVMVolumeGroup, созданного данным набором.

        • spec.lvmVolumeGroupTemplate.thinPools.allocationLimit
          строка
          Предел расширения thin pool.

          По умолчанию: 150%

          Шаблон: ^[1-9][0-9]{2,3}%$

        • spec.lvmVolumeGroupTemplate.thinPools.name
          строка

          Желаемое имя thin pool.

          Это поле неизменяемое.

        • spec.lvmVolumeGroupTemplate.thinPools.size
          строка или число

          Желаемый размер thin pool. Может быть указан как в численном формате, так и в процентах от общего размера группы томов.

          При указании размера в процентах thin pool будет автоматически расширен при расширении группы томов.

          Шаблон: ^[0-9]+(\.[0-9]+)?(E|P|T|G|M|k|Ei|Pi|Ti|Gi|Mi|Ki)?$|^[1-9][0-9]?%$|100%

      • spec.lvmVolumeGroupTemplate.type
        строка

        Обязательный параметр

        Тип группы томов в ресурсах LVMVolumeGroup.

        Возможные значения:

        • Local — локальная группа томов; используемые устройства не являются распределёнными (не Shared LUN).

        Допустимые значения: Local

    • spec.nodeSelector
      объект

      Обязательный параметр

      Селектор узлов, которые будут использованы ресурсами LVMVolumeGroup.
      • spec.nodeSelector.matchExpressions
        массив объектов
        Выражения для селектора узлов.
        • spec.nodeSelector.matchExpressions.key
          строка
          Ключ метки для проверки.
        • spec.nodeSelector.matchExpressions.operator
          строка
          Оператор для сравнения значений.

          Допустимые значения: In, NotIn, Exists, DoesNotExist

        • spec.nodeSelector.matchExpressions.values
          массив строк
          Массив значений для сравнения. Требуется, если оператор In или NotIn.
      • spec.nodeSelector.matchLabels
        объект
        Метки для селектора узлов.
    • spec.strategy
      строка

      Обязательный параметр

      Стратегия (правило) создания ресурсов LVMVolumeGroup данным набором.

      Допустимые значения: PerNode

  • status
    объект
    • status.createdLVMVolumeGroups
      массив объектов
      Краткая информация о ресурсах LVMVolumeGroup, созданных данным набором.
      • status.createdLVMVolumeGroups.lvmVolumeGroupName
        строка
        Имя созданного ресурса LVMVolumeGroup.
      • status.createdLVMVolumeGroups.nodeName
        строка
        Имя узла, на котором создан ресурс LVMVolumeGroup.
    • status.currentLVMVolumeGroupsCount
      целочисленный
      Текущее количество ресурсов LVMVolumeGroup, созданных данным набором.
    • status.desiredLVMVolumeGroupsCount
      целочисленный
      Желаемое количество ресурсов LVMVolumeGroup, которые должны быть созданы данным набором.
    • status.phase
      строка
      Фаза создания ресурсов LVMVolumeGroup.

      Допустимые значения: Created, Pending, NotCreated, ‘’

    • status.reason
      строка
      Причина текущей фазы.