Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Параметры Storage Class

1. Обзор

Объект Storage Class имеет ряд настраиваемых параметров. Пример YAML-манифеста приведен ниже:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: longhorn-test
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Delete
volumeBindingMode: Immediate
parameters:
  backupTargetName: "default"
  numberOfReplicas: "3"
  staleReplicaTimeout: "2880"
  fromBackup: ""
  fsType: "ext4"
#  mkfsParams: ""
#  migratable: false
#  encrypted: false
#  dataLocality: "disabled"
#  replicaAutoBalance: "ignored"
#  diskSelector: "ssd,fast"
#  nodeSelector: "storage,fast"
#  recurringJobSelector: '[{"name":"snap-group", "isGroup":true},
#                          {"name":"backup", "isGroup":false}]'
#  backingImageName: ""
#  backingImageChecksum: ""
#  backingImageDataSourceType: ""
#  backingImageDataSourceParameters: ""
#  unmapMarkSnapChainRemoved: "ignored"
#  disableRevisionCounter: false
#  replicaSoftAntiAffinity: "ignored"
#  replicaZoneSoftAntiAffinity: "ignored"
#  replicaDiskSoftAntiAffinity: "ignored"
#  nfsOptions: "soft,timeo=150,retrans=3"
#  dataEngine: "v1"
#  freezeFSForSnapshot: "ignored"

2. Встроенные поля

Некоторые поля являются общими для всех Storage Class в Kubernetes. Подробнее см. в статье Kubernetes Storage Class.

Provisioner (поле: provisioner)

Определяет подключаемый plugin, который будет использоваться для динамического создания постоянных томов (Persistent Volumes). Для Longhorn этим плагином всегда является driver.longhorn.io. Подробнее см. в статье Kubernetes Storage Class: Provisioner.

Allow Volume Expansion (поле: allowVolumeExpansion)

По умолчанию: true.

Определяет, можно ли увеличивать размер тома путем редактирования соответствующего объекта PersistentVolumeClaim (PVC). Подробнее см. в статье Kubernetes Storage Class: Allow Volume Expansion.

Reclaim Policy (поле: reclaimPolicy)

По умолчанию: Delete

Определяет, что делать с томом после удаления PVC: удалить (Delete) или сохранить (Retain). Подробнее см. в статье Kubernetes Storage Class: Reclaim Policy.

Mount Options (поле: mountOptions)

По умолчанию список пуст ([]).

Список дополнительных параметров монтирования, которые будут переданы драйверу при монтировании тома. Параметры, указанные в этом поле, применяются ко всем PersistentVolumes, созданным динамически с помощью этого StorageClass.Подробнее см. в статье Kubernetes Storage Class: Mount Options.

Volume Binding Mode (поле: volumeBindingMode)

По умолчанию Immediate.

Определяет момент, когда том будет создан и привязан к узлу.

  • Immediate: сразу при создании PVC.

  • WaitForFirstConsumer: откладывает создание тома до запуска Pod’а

Подробнее см. в статье Kubernetes Storage Class: Volume Binding Mode.

3. Специфичные для Longhorn параметры

Некоторые из этих параметров также существуют и могут быть заданы в глобальных настройках. Когда том создается в Kubernetes с использованием определенного StorageClass, параметры StorageClass имеют приоритет над глобальными настройками. Если StorageClass изменен, ни Longhorn, ни Kubernetes не отвечают за распространение изменений его параметров на тома, созданные ранее с его помощью.

Эти поля применяются только при создании новых томов. Если StorageClass изменен, ни Longhorn, ни Kubernetes не обязаны распространять изменения на ранее созданные тома.

Number Of Replicas (поле: parameters.numberOfReplicas)

По умолчанию: 1

Желаемое количество копий (реплик) для обеспечения отказоустойчивости:

  • Значение должно быть от 1 до 20.

  • Реплики будут размещены максимально равномерно по зонам, узлам и дискам кластера, с учетом ограничений (например, NodeSelector).

Глобальная настройка: Default Replica Count.

Stale Replica Timeout (поле: parameters.staleReplicaTimeout)

По умолчанию: 30

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

From Backup (поле: parameters.fromBackup)

По умолчанию: "". Пример: s3://backupbucket@us-east-1?volume=minio-vol01&backup=backup-eeb2782d5b2f42bb

URL-адрес резервной копии, из которой будет восстановлен том.

FS Type (поле: parameters.fsType)

По умолчанию: ext4.

Тип файловой системы, которая будет создана на томе при его инициализации.

Подробнее см. в статье Creating Longhorn Volumes with Kubernetes.

Mkfs Params (поле: parameters.mkfsParams)

По умолчанию: "".

Дополнительные параметры команд mkfs, передаваемые при создании файловой системы на томе. Подробнее см. в статье Creating Longhorn Volumes with Kubernetes.

Migratable (поле: parameters.migratable)

По умолчанию: false.

Включает поддержку живой миграции (live migration) тома между узлами. Основной вариант использования - работа с томами в Harvester.

Encrypted (поле: parameters.encrypted)

По умолчанию: false.

Включает шифрование тома.

Подробнее см. в статье Encrypted Volumes.

Data Locality (поле: parameters.dataLocality)

По умолчанию: disabled.

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

  • best-effort — реплика будет размещена локально, если возможно, но может быть перемещена.

  • strict-local — количество реплик должно быть равно 1, иначе создание тома завершится ошибкой валидации параметров.

  • Если режим strict-local невозможен по какой-либо причине, создание тома завершится ошибкой. Реплика в режиме strict-local, которая была отделена от своей рабочей нагрузки, будет переведена в состояние stopped.

Глобальная настройка: Default Data Locality. Подробнее см. в статье Data Locality.

Replica Auto-Balance (поле: parameters.replicaAutoBalance)

По умолчанию: ignored.

Если включено, перемещает реплики на менее загруженные узлы.

  • ignored означает использование глобальной настройки.

  • Другие варианты: disabled, least-effort, best-effort.

Глобальная настройка: Replica Auto Balance. Подробнее в Auto Balance Replicas.

Disk Selector (поле: parameters.diskSelector)

По умолчанию: "". Пример: "ssd, fast"

Список тегов для выбора дисков, которые являются кандидатами для размещения реплик.

Подробнее см. в статье Storage Tags.

Node Selector (поле: parameters.nodeSelector)

По умолчанию: "". Пример: "storage,fast"

Список тегов для выбора узлов, которые являются кандидатами для размещения реплик.

Подробнее в Storage Tags.

Recurring Job Selector (поле: parameters.recurringJobSelector)

По умолчанию: "". Пример: [{"name":"backup", "isGroup":true}]

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

Подробнее см. в статье Recurring Snapshots and Backups.

Backing Image Name (поле: parameters.backingImageName)

По умолчанию: "".

Имя базового образа диска, используемого как общий read-only слой для всех томов, созданных через этот StorageClass.

Подробнее см. в статье Backing Image.

Backing Image Checksum (поле: parameters.backingImageChecksum)

По умолчанию: ""

Контрольная сумма базового образа диска для проверки целостности перед использованием.

Подробнее см. в статье Backing Image.

Backing Image Data Source Type (поле: parameters.backingImageDataSourceType)

По умолчанию: "".

Тип источника данных для загрузки базового образа диска (например, HTTP, образ из другого тома и т.п.).

Подробнее см. в статье Backing Image.

Backing Image Data Source Parameters (поле: parameters.backingImageDataSourceParameters)

По умолчанию: "".

Параметры для первоначальной загрузки базового образа из внешнего источника (URL, S3, timeout и др.). Используются только при первом создании образа. После загрузки образ становится общим неизменяемым слоем для всех томов StorageClass.

Подробнее см. в статье Backing Image.

Unmap Mark Snap Chain Removed (поле: parameters.unmapMarkSnapChainRemoved)

По умолчанию: ignored.

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

  • ignored означает использование глобальной настройки. Другие значения: enabled и disabled.

Глобальная настройка: Remove Snapshots During Filesystem Trim.

Подробнее см. в статье Trim Filesystem.

Disable Revision Counter (поле: parameters.disableRevisionCounter)

По умолчанию: true.

Отключает ревизионный счетчик, используемый Longhorn для отслеживания записей на репликах. Может повышать производительность, но снижает точность диагностики расхождений

Глобальная настройка: Disable Revision Counter.

Подробнее см. в статье Revision Counter.

Replica Soft Anti-Affinity (поле: parameters.replicaSoftAntiAffinity)

По умолчанию: ignored.

Определяет, можно ли размещать несколько реплик одного тома на одной ноде.

  • ignored означает использование глобальной настройки.

  • Другие значения: enabled и disabled.

Глобальная настройка: Replica Node Level Soft Anti-Affinity.

Подробнее см. в статье Scheduling и Best Practices.

Replica Zone Soft Anti-Affinity (поле: parameters.replicaZoneSoftAntiAffinity)

По умолчанию: ignored.

Определяет, можно ли размещать несколько реплик одного тома в одной зоне.

  • ignored означает использование глобальной настройки.

  • Другие значения: enabled и disabled.

Глобальная настройка: Replica Zone Level Soft Anti-Affinity.

Подробнее см. в статье Scheduling.

Replica Disk Soft Anti-Affinity (поле: parameters.replicaDiskSoftAntiAffinity)

По умолчанию: ignored.

Определяет, можно ли размещать несколько реплик одного тома на одном физическом диске.

  • ignored означает использование глобальной настройки.

  • Другие значения: enabled и disabled.

Глобальная настройка: Replica Disk Level Soft Anti-Affinity.

Подробнее см. в статье Scheduling.

NFS Options (поле: parameters.nfsOptions)

По умолчанию: "". Пример: hard, sync

Дополнительные параметры монтирования NFS для RWX-томов, управляемых Share Manager. Следует использовать только при необходимости - встроенные параметры отличаются между версиями Longhorn.

Подробнее в RWX Workloads.

Data Engine (поле: parameters.dataEngine)

По умолчанию: v1.

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

  1. v1 - классический (основной) движок данных Longhorn.

  2. v2 - новый механизм хранения, представленный как экспериментальная функция начиная с версии Longhorn 1.6.0.

Глобальная настройка: V2 Data Engine.

Подробнее см. в статье V2 Data Engine Quick Start.

Freeze Filesystem For Snapshot (поле: parameters.freezeFilesystemForSnapshot)

По умолчанию: ignored.

Управляет заморозкой (freeze) файловой системы перед созданием снимка тома для гарантии консистентности данных.

  • ignored указывает Longhorn использовать глобальную настройку.

  • Другие значения: enabled и disabled.

Глобальная настройка: Freeze File System For Snapshot.