Longhorn#
Longhorn - это распределенная, облачно-нативная система хранения (CSI) для Kubernetes. Она предоставляет легковесное, надежное и масштабируемое блочное хранилище на основе реплицированных постоянных томов, созданных из локального дискового пространства узлов кластера.
Важно
Для корректной работы на узлах, где будут работать pod Longhorn, должны быть установлены необходимые пакеты и включены службы:
sudo dnf install -y iscsi-initiator-utils nfs-utils device-mapper cryptsetup
sudo systemctl enable --now iscsid
sudo modprobe iscsi_tcp
sudo modprobe nfs
Эти пакеты есть в BaseOS репозитории Platform V Sberlinux.
Основные задачи и возможности
Создает и управляет постоянными томами (
PersistentVolume- далее PV) с помощью локальных дисков, объединяя их в отказоустойчивую распределенную систему.Поддерживает репликацию томов между узлами. При сбое одного узла данные остаются доступны благодаря автоматическому переключению.
Поддерживает гибкое управление томами:
создает снимки и резервные копии;
восстанавливает тома из бекапов;
клонирует тома;
масштабирует емкость.
Позволяет сохранять резервные копии во внешние хранилища: S3, NFS, MinIO и другие.
Предоставляет удобный UI для управления томами, узлами, резервным копированием и отслеживания состояния системы.
Примечание
Longhorn не является инструментом по умолчанию в компоненте Storage. Его можно установить как инструмент (Tool), или явно включить в список spec.tools при установке компонента Storage.
Конфигурация values#
Параметры Longhorn можно переопределить через редактирование нужных значений в spec.values. Общее описание конфигурации values для инструментов приведено в разделе «Конфигурации инструментов дополнительных компонентов».
-
networkPolicies - определить параметры NetworkPolicy для Longhorn
persistence - определить параметры StorageClass и постоянного хранения Longhorn
preUpgradeChecker - определить проверки перед обновлением Longhorn
defaultSettings - определить системные настройки Longhorn по умолчанию
defaultBackupStore - определить параметры backupstore по умолчанию
privateRegistry - определить параметры приватного container registry
longhornDriver - определить параметры Longhorn Driver Deployer
enablePSP - определить создание PodSecurityPolicy для Longhorn
namespaceOverride - переопределить namespace установки Longhorn
annotations - определить annotations для pod Longhorn Manager DaemonSet
serviceAccount - определить параметры ServiceAccount Longhorn
openshift - определить параметры интеграции Longhorn с OpenShift
enableGoCoverDir - определить генерацию code coverage profiles
extraObjects - определить дополнительные Kubernetes-манифесты
consoleLink - определить интеграцию Longhorn с DropApp Console
networkPolicies - определить параметры NetworkPolicy для Longhorn#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает |
|
|
Дистрибутив Kubernetes, под который формируются правила ingress-доступа |
|
image - определить параметры контейнерных образов Longhorn#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Реестр образа Longhorn Engine |
|
|
Репозиторий образа Longhorn Engine |
|
|
Метка образа Longhorn Engine |
|
|
Реестр образа Longhorn Manager |
|
|
Репозиторий образа Longhorn Manager |
|
|
Метка образа Longhorn Manager |
|
|
Реестр образа Longhorn UI |
|
|
Репозиторий образа Longhorn UI |
|
|
Метка образа Longhorn UI |
|
|
Реестр образа Longhorn Instance Manager |
|
|
Репозиторий образа Longhorn Instance Manager |
|
|
Метка образа Longhorn Instance Manager |
|
|
Реестр образа Longhorn Share Manager |
|
|
Репозиторий образа Longhorn Share Manager |
|
|
Метка образа Longhorn Share Manager |
|
|
Реестр образа Backing Image Manager |
|
|
Репозиторий образа Backing Image Manager |
|
|
Метка образа Backing Image Manager |
|
|
Реестр образа Longhorn Support Bundle Manager |
|
|
Репозиторий образа Longhorn Support Bundle Manager |
|
|
Метка образа Longhorn Support Bundle Manager |
|
|
Реестр образа CSI Attacher |
|
|
Репозиторий образа CSI Attacher |
|
|
Метка образа CSI Attacher |
|
|
Реестр образа CSI Provisioner |
|
|
Репозиторий образа CSI Provisioner |
|
|
Метка образа CSI Provisioner |
|
|
Реестр образа CSI Node Driver Registrar |
|
|
Репозиторий образа CSI Node Driver Registrar |
|
|
Метка образа CSI Node Driver Registrar |
|
|
Реестр образа CSI Resizer |
|
|
Репозиторий образа CSI Resizer |
|
|
Метка образа CSI Resizer |
|
|
Реестр образа CSI Snapshotter |
|
|
Репозиторий образа CSI Snapshotter |
|
|
Метка образа CSI Snapshotter |
|
|
Реестр образа CSI liveness probe |
|
|
Репозиторий образа CSI liveness probe |
|
|
Метка образа CSI liveness probe |
|
|
Реестр образа OAuth Proxy |
|
|
Репозиторий образа OAuth Proxy |
|
|
Метка образа OAuth Proxy |
|
|
Политики Image pull для пользовательских компонентов Longhorn |
|
service - определить параметры Service для Longhorn#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Тип |
|
|
|
Отсутствует |
|
Класс реализации LoadBalancer для Longhorn UI |
|
|
Дополнительные аннотации для Longhorn UI |
|
|
Дополнительные метки для Longhorn UI |
|
|
Тип |
|
|
|
|
persistence - определить параметры StorageClass и постоянного хранения Longhorn#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Делает Longhorn |
|
|
Тип файловой системы для Longhorn |
|
|
Дополнительные параметры |
|
|
Количество реплик для Longhorn |
|
|
|
|
|
Политики |
|
|
Режим привязки тома и динамического |
|
|
Включает live-migration-тома Longhorn между узлами |
|
|
Отключает revision counter для тома |
|
|
NFS mount options для тома RWX в Longhorn |
|
|
Включает recurring job selector для Longhorn |
|
|
Список recurring job selector для Longhorn |
|
|
Разрешает использовать backing image в Longhorn |
|
|
Имя backing image для создания и восстановления тома |
Отсутствует |
|
Тип источника данных backing image |
Отсутствует |
|
Параметры источника данных backing image в виде JSON-строки |
Отсутствует |
|
Ожидаемая SHA-512 контрольная сумма backing image |
Отсутствует |
|
Включает селектор дисков для Longhorn |
|
|
Селектор дисков для выбора дисков по меткам |
|
|
Включает селектор узлов для Longhorn |
|
|
Селектор узлов для выбора узлов по меткам |
|
|
Управляет автоматическим удалением snapshot chain при filesystem trim |
|
|
Версия data engine для Longhorn |
|
|
Имя backup target для Longhorn |
|
preUpgradeChecker - определить проверки перед обновлением Longhorn#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает pre-upgrade checks перед обновлением Longhorn |
|
|
Включает проверку версии после старта Longhorn Manager |
|
csi - определить параметры CSI-компонентов Longhorn#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Корневой каталог Kubelet, используемый CSI-компонентами |
Отсутствует |
|
Заранее настроенная политика anti-affinity для распределения pod CSI по узлам |
Отсутствует |
|
Количество реплик CSI Attacher |
Отсутствует |
|
Количество реплик CSI Provisioner |
Отсутствует |
|
Количество реплик CSI Resizer |
Отсутствует |
|
Количество реплик CSI Snapshotter |
Отсутствует |
defaultSettings - определить системные настройки Longhorn по умолчанию#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Разрешает автоматически подключать тома и создавать снимок или backup при запуске recurring job |
Отсутствует |
|
Создает диск по умолчание только на узлах с меткой |
Отсутствует |
|
Путь на хосте для хранения данных Longhorn |
Отсутствует |
|
Data locality по умолчанию для тома |
Отсутствует |
|
Разрешает scheduling на узлах, где уже есть healthy-реплика того же тома |
Отсутствует |
|
Включает автоматическое перераспределение реплик при появлении доступного узла |
Отсутствует |
|
Процент overprovisioning относительно емкости диска |
Отсутствует |
|
Минимальный процент свободного места на диске для возможности scheduling |
Отсутствует |
|
Процент дискового пространства, резервируемый на диск по умолчанию каждого нового узла |
Отсутствует |
|
Включает периодическую проверку новых версий Longhorn |
Отсутствует |
|
URL Upgrade Responder для уведомлений о доступных обновлениях |
Отсутствует |
|
Внешний URL Longhorn Manager API для ссылок в ответах API |
Отсутствует |
|
Количество реплик по умолчанию для томов, созданных через Longhorn UI |
Отсутствует |
|
Имя static |
Отсутствует |
|
Время хранения failed backup resource в минутах |
Отсутствует |
|
Максимальное время выполнения backup в минутах |
Отсутствует |
|
Восстанавливает recurring jobs из backup-тома при restore |
Отсутствует |
|
Максимальное количество успешных recurring jobs в истории |
Отсутствует |
|
Максимальное количество failed recurring jobs в истории |
Отсутствует |
|
Максимальное количество снимков или backup, сохраняемых recurring job |
Отсутствует |
|
Максимальное количество failed support bundles в кластере |
Отсутствует |
|
Taint toleration для system-managed-компонентов Longhorn |
Отсутствует |
|
Селектор узлов для system-managed компонентов Longhorn |
Отсутствует |
|
Resource limits для system-managed CSI-компонентов Longhorn |
Отсутствует |
|
|
|
|
Включает автоматическое восстановление тома при отказе всех реплик |
Отсутствует |
|
Удаляет workload pod под управлением контроллера при неожиданном detach-томе |
Отсутствует |
|
Список controller |
Отсутствует |
|
Запрещает scheduling реплик на cordoned-узле |
Отсутствует |
|
Разрешает scheduling новых реплик в той же зоне, где уже есть healthy-реплики |
Отсутствует |
|
Разрешает scheduling реплик на дисках, где уже есть healthy-реплики того же тома |
Отсутствует |
|
Политика удаления pod при отказе узла, на котором остался том |
Отсутствует |
|
Политика Longhorn при drain узла с последней healthy-реплики тома |
Отсутствует |
|
Автоматически отключать тома, которые были подключены вручную, когда узел помечается как |
Отсутствует |
|
Время ожидания перед повторным использованием данных failed-реплик вместо создания новой реплики |
Отсутствует |
|
Максимальное количество параллельных rebuild-реплик на каждом узле |
Отсутствует |
|
Максимальное количество параллельных file sync операций в одной rebuild-реплике |
Отсутствует |
|
Максимальное количество параллельных restore volume из backup на каждом узле |
Отсутствует |
|
Отключает revision counter для томов, созданных через Longhorn UI |
|
|
Политики Image pull для system-managed pod Longhorn |
Отсутствует |
|
Разрешает создавать attach-тома до scheduling всех реплик |
Отсутствует |
|
Автоматически удаляет system-generated-снимок после завершения rebuild-реплики |
Отсутствует |
|
Автоматически удаляет снимок, созданный recurring backup job |
Отсутствует |
|
Максимальное количество engine, параллельно обновляемых на каждом узле |
Отсутствует |
|
Время ожидания перед удалением backing image file, который не используется реплика |
Отсутствует |
|
Время ожидания перед повторной загрузкой backing image при failed или unknown статусе файлов |
Отсутствует |
|
Процент allocatable CPU, резервируемый для каждого instance manager pod |
Отсутствует |
|
Указывает Longhorn, что в кластере используется Kubernetes Cluster Autoscaler |
Отсутствует |
|
Включает автоматическое удаление orphaned resources и связанных данных или процессов |
Отсутствует |
|
Время ожидания перед автоматическим удалением orphaned Custom Resource и связанных ресурсов |
Отсутствует |
|
Выделенная storage network для in-cluster трафика Longhorn |
Отсутствует |
|
Выделенная сеть для монтирования RWX-тома |
Отсутствует |
|
Флаг защиты от случайного удаления Longhorn |
Отсутствует |
|
Тайм-аут между Longhorn Engine и репликой |
Отсутствует |
|
Управляет hashing снимков и проверками целостности данных |
Отсутствует |
|
Отключает или включает проверку hashing снимков сразу после создания снимка |
Отсутствует |
|
Cron-расписание проверки целостности снимка disk files |
Отсутствует |
|
Лимит параллельных тяжелых снимков operations на узле |
Отсутствует |
|
Автоматически помечает последний снимок и parent files как |
Отсутствует |
|
Включает fast rebuild реплик на основе checksum snapshot disk files |
Отсутствует |
|
HTTP client тайм-аут для ответа File Sync server |
Отсутствует |
|
Максимальное время выполнения операций replica rebuild и snapshot clone |
Отсутствует |
|
Уровень логирования Longhorn Manager |
Отсутствует |
|
Каталог на host для логов instance manager pod |
Отсутствует |
|
Метод сжатия backup |
Отсутствует |
|
Максимальное количество worker threads на backup |
Отсутствует |
|
Размер backup block по умолчанию в MiB |
Отсутствует |
|
Максимальное количество worker threads на restore operation |
Отсутствует |
|
Включает V1 Data Engine |
Отсутствует |
|
Включает экспериментальный V2 Data Engine на базе SPDK |
Отсутствует |
|
Включает hugepages для SPDK target daemon в V2 Data Engine |
Отсутствует |
|
Размер памяти hugepage для SPDK target daemon в MiB |
Отсутствует |
|
CPU mask для SPDK target daemon в V2 Data Engine |
Отсутствует |
|
Лимит write bandwidth для rebuild replica в V2 Data Engine |
Отсутствует |
|
Queue depth по умолчанию для Ublk frontend |
Отсутствует |
|
Количество queues по умолчанию для Ublk frontend |
Отсутствует |
|
Тайм-аут liveness probe для instance manager pod в секундах |
Отсутствует |
|
Разрешает scheduling тома с пустым селектором узлов на любом узле |
Отсутствует |
|
Разрешает scheduling тома с пустым селектором дисков на любой disk |
Отсутствует |
|
Разрешает сбор анонимных метрик Longhorn |
Отсутствует |
|
Временно запрещает все попытки purge снимков |
Отсутствует |
|
Максимальное количество снимков для одного тома |
Отсутствует |
|
Уровень логирования SPDK target daemon для V2 Data Engine |
Отсутствует |
|
Log flags для SPDK target daemon в V2 Data Engine |
Отсутствует |
|
Замораживает filesystem на root partition перед созданием снимка |
Отсутствует |
|
Автоматически удаляет снимок при удалении backup |
Отсутствует |
|
Автоматически удаляет снимок после завершения on-demand backup |
Отсутствует |
|
Включает fast failover для RWX-тома при отказе узла |
Отсутствует |
|
Включает rebuild degraded реплики, пока тома detached |
Отсутствует |
|
Включает мониторинг health-состояния дисков узла |
Отсутствует |
|
Список topology keys, которые CSI driver может передавать в topology segments |
Отсутствует |
defaultBackupStore - определить параметры backupstore по умолчанию#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Endpoint default backupstore |
Отсутствует |
|
Имя секретов Kubernetes с credentials для backup target |
Отсутствует |
|
Интервал проверки default backupstore на наличие новых backups |
Отсутствует |
privateRegistry - определить параметры приватного container registry#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Автоматически создает новый секрет для приватного реестра |
Отсутствует |
|
URL приватного реестра |
Отсутствует |
|
Пользователь для аутентификации в приватном реестре |
Отсутствует |
|
Пароль для аутентификации в приватном реестре |
Отсутствует |
|
Имя секрета для pull image из приватного реестра |
Отсутствует |
longhornManager - определить параметры Longhorn Manager#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Формат логов Longhorn Manager |
|
|
|
|
|
Tolerations для Longhorn Manager на узлах, где разрешен запуск компонентов Longhorn. Пример конфигурации: |
|
|
Resource requests и limits для pod Longhorn Manager |
Отсутствует |
|
Селектор узлов для Longhorn Manager. Пример конфигурации: |
|
|
Annotations для Longhorn Manager Service. Пример конфигурации: |
|
|
Labels для Longhorn Manager Service. Пример конфигурации: |
|
|
Максимальное количество недоступных Longhorn Manager pod при rolling update |
|
longhornDriver - определить параметры Longhorn Driver Deployer#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Формат логов Longhorn Driver |
|
|
PriorityClass для Longhorn Driver |
|
|
Tolerations для Longhorn Driver на узлах, где разрешен запуск компонентов Longhorn. Пример конфигурации: |
|
|
Селектор узлов для Longhorn Driver. Пример конфигурации: |
|
longhornUI - определить параметры Longhorn UI#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Количество реплик Longhorn UI |
|
|
PriorityClass для Longhorn UI |
|
|
Affinity для pod Longhorn UI |
|
|
Tolerations для Longhorn UI на узлах, где разрешен запуск компонентов Longhorn. Пример конфигурации: |
|
|
Селектор узлов для Longhorn UI. Пример конфигурации: |
|
ingress - определить параметры Ingress для Longhorn UI#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создает Ingress для Longhorn UI |
|
|
|
|
|
Hostname L7 load balancer для Longhorn UI |
|
|
Дополнительные hostnames для TLS SAN. Пример конфигурации: |
|
|
Включает TLS для Ingress Longhorn UI |
|
|
Включает secure backend connection к Longhorn UI |
|
|
Имя TLS Secret для Ingress |
|
|
Path для доступа к Longhorn UI через Ingress |
|
|
Тип path matching для Ingress |
|
|
Аннотации для Ingress в формате ключ-значение. Пример конфигурации: |
Отсутствует |
|
TLS-секреты для пользовательских сертификатов Ingress. Пример конфигурации: |
Отсутствует |
httproute - определить параметры HTTPRoute для Longhorn UI#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создает HTTPRoute для Longhorn UI через Gateway API |
|
|
Список Gateway references, которые должны обрабатывать HTTPRoute. Пример конфигурации: |
|
|
Список hostnames для HTTPRoute. Пример конфигурации: |
|
|
Path для доступа к Longhorn UI через HTTPRoute |
|
|
Тип path matching для HTTPRoute |
|
|
Аннотации для HTTPRoute. Пример конфигурации: |
|
enablePSP - определить создание PodSecurityPolicy для Longhorn#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает |
|
namespaceOverride - переопределить namespace установки Longhorn#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределяет пространство имен релиза Longhorn |
|
annotations - определить annotations для pod Longhorn Manager DaemonSet#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для pod Longhorn Manager |
|
serviceAccount - определить параметры ServiceAccount Longhorn#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации для |
|
metrics - определить параметры метрик Longhorn#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создает Prometheus |
|
|
Дополнительные метки для |
|
|
Аннотации для |
|
|
Интервал scrape метрик Prometheus |
|
|
Тайм-аут scrape-запроса Prometheus |
|
|
Relabeling rules для target metadata labels |
|
|
Metric relabeling rules для samples перед ingestion |
|
openshift - определить параметры интеграции Longhorn с OpenShift#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает интеграцию Longhorn с OpenShift |
|
|
Маршрут для соединений между Longhorn и OpenShift web console |
|
|
Порт доступа к OpenShift web console |
|
|
Порт proxy для доступа к OpenShift web console |
|
enableGoCoverDir - определить генерацию code coverage profiles#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает генерацию Go coverage profiles для Longhorn |
|
extraObjects - определить дополнительные Kubernetes-манифесты#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Список дополнительных объектов Kubernetes-manifest, добавляемых чарты |
|
consoleLink - определить интеграцию Longhorn с DropApp Console#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включает |
|