Описание и примеры values.yaml
Zakroma-ZDS — нижний слой хранения (для схемы Erasure Coding 2+1 минимальное требование — 3 пода; режим Full Copy задаётся политикой хранения на группах).
Helm‑чарт создает StatefulSet и его конфигурацию для запуска в Kubernetes.
1. Поддерживаемые сценарии установки
- Erasure Coding (EC): Режим с избыточностью данных (количество частей данных и частей избыточности необходимо определить перед установкой)
- Full Copy (FC): Режим полного копирования файлов (количество реплик задаётся в
persistence.replicaCount)
2. Подготовка Kubernetes‑пространства
Создайте namespace:
1kubectl create namespace zakroma-zds
3. Подготовить values.yaml для Helm чарта
Ниже приведены базовые команды установки и примеры values.yaml для типовых сценариев.
4. Установка
1helm upgrade --install zakroma-zds <chart-ref> -n zakroma-zds -f values.yaml
Где
<chart-ref>— путь к локальному чарту или<repo>/<chart>из добавленного Helm‑репозитория.
5. Глобальные параметры хранения и переопределение для групп хранения
Настройки хранения задаются в блоке persistence. Глобальные параметры действуют на все группы хранения, а список persistence.volumes определяет их количество, и позволяет точечно переопределить параметры отдельных групп.
Не путайте:
replicaCountна верхнем уровне — число подов ZDS;persistence.replicaCount— число реплик файла в режиме FC.
Глобальные параметры (persistence.*)
| Параметр | Назначение |
|---|---|
size | Размер PVC для data-тома (если том не задаёт свой size) |
storageClass | Kubernetes StorageClass для data PVC (пустая строка — StorageClass кластера по умолчанию) |
storageClassZds | Класс хранения ZDS отображающийся в Закрома: HDD, SSD или RAM |
storageMode | Глобальный режим хранения: EC или FC |
dataPart / parityPart | Схема EC (D + N), например 2 + 1 |
replicaCount | Число реплик для FC |
volumes | Список томов; длина списка = число MountPoint/PVC на под |
annotations | Глобальные аннотации data PVC |
SystemVolumeSize / storageClassSystemVolume | Размер и StorageClass system-volume (changelog/registry/vacuum-state) |
Группу хранения в volumes можно задать так:
"default"(или""/{}) — взять все значения из глобальных параметров;- map с полями-переопределениями — заменяет указанные глобальные значения для данной группы хранения, остальные параметры берутся из глобальных.
Для PVC переопределяются: storageClass, storageClassZds, size, annotations (аннотации тома мержатся поверх persistence.annotations, значения тома приоритетнее), storageMode, dataPart, parityPart, replicaCount.
Пример: одна группа хранения с глобальными настройками
1persistence: 2 size: 3Gi 3 storageClass: "" 4 storageClassZds: "HDD" 5 storageMode: EC 6 dataPart: 2 7 parityPart: 1 8 replicaCount: 2 9 volumes: 10 - default
У каждого пода будет один data PVC с глобальными параметрами. storagePolicyOverrides не создаётся.
Пример: несколько одинаковых групп хранения
1persistence: 2 size: 100Gi 3 storageClass: "fast-ssd" 4 storageClassZds: "SSD" 5 storageMode: EC 6 dataPart: 2 7 parityPart: 1 8 volumes: 9 - default 10 - default
Два MountPoint на под (data-1, data-2), оба с размером 100Gi и StorageClass fast-ssd.
Пример: переопределение размера и StorageClass у второй группы хранения
1persistence: 2 size: 100Gi 3 storageClass: "hdd" 4 storageClassZds: "HDD" 5 storageMode: EC 6 dataPart: 2 7 parityPart: 1 8 volumes: 9 - default 10 - storageClass: fast-ssd 11 storageClassZds: SSD 12 size: 50Gi 13 annotations: 14 example.org/volume: data-2
- Группа хранения 1 — глобальные
hdd/HDD/100Gi; - Группа хранения 2 —
fast-ssd/SSD/50Giи дополнительная аннотация PVC.
Пример: разные политики хранения на разных томах
1persistence: 2 storageMode: EC 3 dataPart: 4 4 parityPart: 1 5 replicaCount: 2 6 volumes: 7 - default 8 - storageMode: EC 9 dataPart: 3 10 parityPart: 2 11 - storageMode: FC 12 replicaCount: 3
- Группа хранения 1 (
default) — использует глобальную схему EC 4+1, отдельный override не создаётся; - Группа хранения 2 — EC 3+2 через
storagePolicyOverridesдля storageGroup2; - Группа хранения 3 — FC с
maxReplicas: 3для storageGroup3(allowEC: false).
Для схемы EC число доступных дисков в группе хранения должно быть не меньше
dataPart + parityPart. Число подов задаётся отдельно верхнеуровневымreplicaCount.
Подробнее о режимах EC/FC и группах хранения см. Как ZDS хранит данные и Конфигурация ZDS.
Пример values.yaml для установки в режиме Erasure Coding (EC 2:1)
1#===================================================# 2#=============== Основные параметры ================# 3#===================================================# 4# Количество подов ZDS 5replicaCount: 3
Пример values.yaml для установки в режиме Full Copy (FC)
1#===================================================# 2#=============== Основные параметры ================# 3#===================================================# 4# Количество подов ZDS 5replicaCount: 3