Longhorn#
Longhorn - это распределенная, облачно-нативная система хранения (CSI). Она предоставляет легковесное, надежное и масштабируемое блочное хранилище на основе реплицированных постоянных томов, созданных из локального дискового пространства узлов кластера.
Важно
Для корректной работы на узлах, где будут работать 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 для инструментов приведено в разделе «Конфигурации инструментов дополнительных компонентов».
ingress – настройки Ingress для маршрутизации внешнего трафика
annotations – аннотации, добавляемые ко всем создаваемым ресурсам
extraObjects – добавление дополнительных динамических объектов в Helm-чарте
networkPolicies – параметры сетевой политики#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение |
|
|
Дистрибутив, определяющий политику доступа для |
|
image – параметры контейнерного образа#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Реестр образа Longhorn Engine |
|
|
Репозиторий образа Longhorn Engine |
|
|
Тег образа Longhorn Engine |
|
|
Реестр образа Longhorn Manager |
|
|
Репозиторий образа Longhorn Manager |
|
|
Тег образа Longhorn Manager |
|
|
Реестр образа Longhorn UI |
|
|
Репозиторий образа Longhorn UI |
|
|
Тег образа Longhorn UI |
|
|
Реестр образа |
|
|
Репозиторий образа |
|
|
Тег образа |
|
|
Реестр образа Longhorn Share Manager |
|
|
Репозиторий образа Longhorn Share Manager |
|
|
Тег образа Longhorn Share Manager |
|
|
Реестр образа Backing Image Manager |
|
|
Репозиторий образа Backing Image Manager |
|
|
Тег образа Backing Image Manager |
|
|
Реестр образа |
|
|
Репозиторий образа |
|
|
Тег образа |
|
|
Реестр образа CSI Attacher |
|
|
Репозиторий образа CSI Attacher |
|
|
Тег образа CSI Attacher |
|
|
Реестр образа CSI Provisioner |
|
|
Репозиторий образа CSI Provisioner |
|
|
Тег образа CSI Provisioner |
|
|
Реестр образа |
|
|
Репозиторий образа |
|
|
Тег образа |
|
|
Реестр образа CSI Resizer |
|
|
Репозиторий образа CSI Resizer |
|
|
Тег образа CSI Resizer |
|
|
Реестр образа |
|
|
Репозиторий образа |
|
|
Тег образа |
|
|
Реестр образа CSI Liveness Probe |
|
|
Репозиторий образа CSI Liveness Probe |
|
|
Тег образа CSI Liveness Probe |
|
|
Реестр образа OAuth Proxy. Укажите исходный образ. Применяется только для OpenShift |
|
|
Репозиторий образа OAuth Proxy. Укажите исходный образ. Применяется только для OpenShift |
|
|
Тег образа OAuth Proxy. Укажите версию OCP/OKD 4.1 или выше. Применяется только для OpenShift |
|
|
Политика загрузки образов для всех пользовательских компонентов Longhorn |
|
service – настройки Service#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Тип |
|
|
Порт узла для Longhorn UI. При пустом значении будет выбран свободный порт в диапазоне |
|
|
Класс реализации балансировщика нагрузки |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам Service Longhorn UI. |
|
|
Метки, добавляемые ко всем создаваемым ресурсам Service Longhorn UI. |
|
|
Тип |
|
|
Порт узла для Longhorn Manager. При пустом значении будет выбран свободный порт в диапазоне |
|
persistence – параметры постоянного хранилища (PVC)#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
|
Установка Longhorn |
|
|
Тип файловой системы Longhorn |
|
|
Параметры mkfs для Longhorn |
|
|
Количество реплик Longhorn |
|
|
Локальность данных для Longhorn |
|
|
Политика удаления |
|
|
Режим привязки |
|
|
Включение горячей миграции |
|
|
Отключение счетчика версий, предотвращающее отслеживание всех операций записи в |
|
|
Параметры монтирования NFS для Longhorn |
|
|
Включение селектора периодических заданий для Longhorn |
|
|
Селектор периодических заданий для Longhorn |
|
|
Включение базового образа в Longhorn |
|
|
Базовый образ для создания и восстановления |
|
|
Тип источника данных базового образа в Longhorn |
|
|
Параметры источника данных базового образа в Longhorn |
|
|
Ожидаемая контрольная сумма базового образа в Longhorn |
|
|
Включение селектора дисков для Longhorn |
|
|
Селектор дисков для Longhorn |
|
|
Включение селектора узлов для Longhorn |
|
|
Селектор узлов для Longhorn |
|
|
Включение |
|
|
Селектор узлов для pod |
|
|
Включение |
|
|
|
|
|
Включение автоматического удаления снепшотов при очистке файловой системы. |
|
|
Версия движка хранения данных по умолчанию. |
|
|
Имя целевого хранилища резервных копий для Longhorn |
|
|
Аннотации для Longhorn |
|
preUpgradeChecker – проверки перед обновлением#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Выполнение проверок перед обновлением Longhorn |
|
|
Проверка версии обновления после запуска pod Longhorn Manager |
|
csi – параметры CSI-компонентов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Корневой каталог |
|
|
Настройка правил разграничения pod для предотвращения запуска нескольких экземпляров на одном узле |
|
|
Количество реплик CSI Attacher |
|
|
Количество реплик CSI Provisioner |
|
|
Количество реплик CSI Resizer |
|
|
Количество реплик |
|
defaultSettings – настройки по умолчанию#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Автоматическое подключение тома и создание снимка или резервной копии при запуске периодических заданий |
|
|
Автоматическое создание диска по умолчанию только на узлах с меткой |
|
|
Путь по умолчанию для хранения данных на хосте. Абсолютный путь к каталогу указывает на диск типа filesystem для V1 Data Engine, путь к блочному устройству — на диск типа block для V2 Data Engine |
|
|
Data locality по умолчанию. Том Longhorn имеет data locality, если локальная реплика существует на том же узле, где работает pod с этим томом |
|
|
Планирование на узлах со здоровыми репликами того же тома. Отключено по умолчанию |
|
|
Автоматический rebalance реплик при обнаружении доступного узла |
|
|
Процент хранения, который можно выделить относительно емкости диска |
|
|
Процент минимально доступной емкости диска. При превышении минимально доступной емкости над общей доступной — диск становится unschedulable |
|
|
Процент диска, который не выделяется для диска по умолчанию на каждом новом узле Longhorn |
|
|
Компонент проверки обновлений периодически проверяет наличие новых версий Longhorn. При наличии — уведомление в интерфейсе Longhorn |
|
|
Компонент опроса об обновлениях отправляет уведомление о доступности новой версии Longhorn для обновления |
|
|
Префикс URL, встроенный в ссылки ответов API Longhorn Manager (поля |
|
|
Количество реплик по умолчанию для томов, созданных через Longhorn UI. Для конфигурации Kubernetes измените поле |
|
|
Имя статического Longhorn |
|
|
Количество минут хранения ресурса сбойной резервной копии. При значении |
|
|
Количество минут, разрешенных для выполнения резервного копирования |
|
|
Восстановление периодических заданий из тома резервной копии на цели резервного копирования и создание периодических заданий при их отсутствии во время восстановления |
|
|
Максимальное количество успешных периодических заданий резервного копирования и создания снимков для хранения. При значении |
|
|
Максимальное количество периодических |
|
|
Максимальное количество снимков или резервных копий для хранения |
|
|
Максимальное количество пакетов поддержки в кластере, завершившихся с ошибкой |
|
|
Taint или toleration для system-managed компонентов Longhorn. Укажите значения через точку с запятой в синтаксисе |
|
|
Селектор узлов для управляемых системой компонентов Longhorn |
|
|
Лимиты ресурсов для управляемых системой CSI-компонентов |
|
|
PriorityClass для управляемых системой компонентов Longhorn. Помогает предотвратить вытеснение при давлении на узел |
|
|
Автоматическое восстановление томов при неисправности всех реплик. Включено по умолчанию |
|
|
Автоматическое удаление рабочего pod под управлением контроллера (например, |
|
|
Черный список контроллеров |
|
|
Предотвращение планирования реплик Longhorn на заблокированном узле Kubernetes. Включено по умолчанию |
|
|
Планирование новых реплик тома на узлах в той же зоне, где существуют исправные реплики. Longhorn использует метку |
|
|
Планирование на дисках с исправными репликами того же тома |
|
|
Политика действий Longhorn при застревании тома с pod |
|
|
Политика действий Longhorn при дренировании узла с последней исправной репликой тома |
|
|
Автоматическое отключение вручную подключенных томов при блокировке узла |
|
|
Количество секунд ожидания перед повторным использованием данных сбойной реплики вместо создания новой реплики деградированного тома |
|
|
Максимальное количество одновременно собираемых реплик на каждом узле |
|
|
Максимальное количество операций синхронизации файлов, выполняемых одновременно во время повторной сборки одной реплики. Применяется только к V1 Data Engine |
|
|
Максимальное количество томов, восстанавливаемых одновременно из резервной копии на каждом узле. При значении |
|
|
Отключение счетчика версий, предотвращающее отслеживание всех операций записи в том. Применяется только к томам, созданным через интерфейс Longhorn |
|
|
Политика загрузки образов для управляемых системой pod (Instance Manager, образов движка, драйвера CSI). Применяется после перезапуска |
|
|
Создание и подключение тома без планирования всех реплик в момент создания |
|
|
Автоматическое удаление системного снимка после завершения повторной сборки реплики |
|
|
Автоматическое удаление снимка, созданного периодическим заданием резервного копирования |
|
|
Максимальное количество движков, обновляемых одновременно на каждом узле после обновления Longhorn Manager. При значении |
|
|
Количество минут ожидания перед удалением файла базового образа, когда ни одна реплика на диске его не использует |
|
|
Количество секунд ожидания перед повторной загрузкой файла базового образа при статусе |
|
|
Процент доступных ядер CPU на каждом узле, резервируемый для каждого pod диспетчера экземпляров |
|
|
Уведомление Longhorn об использовании автомасштабирования кластера |
|
|
Автоматическое удаление изолированных ресурсов и связанных данных (например, устаревших реплик). Укажите типы ресурсов через точку с запятой. |
|
|
Время ожидания в секундах перед автоматическим удалением изолированного пользовательского ресурса и связанных ресурсов |
|
|
Сеть хранилища для внутрикластерного трафика. При пустом значении используется сеть кластера Kubernetes |
|
|
Выделенная сеть для монтирования томов с доступом RWX (ReadWriteMany). Оставьте пустым для использования сети кластера Kubernetes |
|
|
Флаг предотвращения случайного удаления Longhorn |
|
|
Время ожидания между Longhorn Engine и репликами |
|
|
Включение и отключение хеширования снимков и проверок целостности данных |
|
|
Отключение хеширования снимков после создания снимка для минимизации влияния на производительность |
|
|
Время проверки целостности данных в файлах дисков снимков. Используйте формат cron-выражения Unix |
|
|
Контроль количества ресурсоемких операций со снимками (очистка, клонирование), выполняемых одновременно на узле. Механизм наилучших усилий |
|
|
Автоматическая пометка последнего снимка и родительских файлов как удаленных при обрезке файловой системы. Longhorn не удаляет снимок с несколькими дочерними файлами |
|
|
Быстрая повторная сборка реплик на основе контрольной суммы файлов дисков снимков. Перед включением установите |
|
|
Количество секунд ожидания HTTP-клиентом ответа от сервера синхронизации файлов |
|
|
Время ожидания в секундах для завершения повторной сборки реплики и операций клонирования снимков |
|
|
Уровни логирования в Longhorn Manager. |
|
|
Каталог на хосте для файлов журналов pod диспетчера экземпляров. Применяется только к pod диспетчера экземпляров в V2 Data Engine |
|
|
Метод сжатия резервной копии |
|
|
Максимальное количество рабочих потоков для каждой резервной копии одновременно |
|
|
Размер блока резервной копии по умолчанию в |
|
|
Максимальное количество рабочих потоков для каждой операции восстановления одновременно |
|
|
Включение V1 Data Engine |
|
|
Включение экспериментального V2 Data Engine на базе SPDK. Не используйте в рабочей среде |
|
|
Включение больших страниц для демона SPDK target в V2 Data Engine. При отключении используется устаревшая память |
|
|
Размер большой страницы в MiB для демона SPDK target в V2 Data Engine |
|
|
Ядра CPU для демона SPDK target в V2 Data Engine. Принимает шестнадцатеричные маски (например, |
|
|
Лимит полосы пропускания при записи (МБ/с) для повторной сборки реплик в V2 Data Engine (SPDK). При значении |
|
|
Глубина очереди по умолчанию для фронтенда Ublk в V2 Data Engine |
|
|
Количество очередей по умолчанию для фронтенда Ublk в V2 Data Engine |
|
|
Интервал между проверками работоспособности pod образа движка в секундах |
|
|
Время ожидания проверки работоспособности pod образа движка в секундах |
|
|
Количество последовательных сбоев проверки работоспособности перед перезапуском pod образа движка |
|
|
Время ожидания проверки работоспособности pod диспетчера экземпляров в секундах |
|
|
Планирование томов с пустым селектором узлов на любом узле |
|
|
Планирование томов с пустым селектором дисков на любом диске |
|
|
Периодический сбор анонимных метрик использования Longhorn для улучшения продукта |
|
|
Временное предотвращение всех попыток очистки снимков томов |
|
|
Максимальное количество снимков для тома. Значение от 2 до 250 |
|
|
Порог предупреждения для условия |
|
|
Уровень логирования демона SPDK target в V2 Data Engine. Поддерживаемые значения: |
|
|
Флаги журнала для демона SPDK target в V2 Data Engine |
|
|
Заморозка файловой системы на корневом разделе перед созданием снимка |
|
|
Автоматическое удаление снимка при удалении резервной копии |
|
|
Автоматическое удаление снимка после завершения резервного копирования по требованию |
|
|
Обнаружение сбоя узла и немедленная миграция затронутых томов RWX |
|
|
Автоматическая повторная сборка деградированных реплик при отключенном томе. Применяется, если настройка тома установлена в |
|
|
Мониторинг и запись информации о состоянии дисков узлов Longhorn. При отключении проверки состояния дисков и обновление статуса пропускаются |
|
|
Список топологических ключей, разрешенных для передачи драйверу CSI Longhorn. При пустом значении топологические ключи не передаются, PV не имеют nodeAffinity |
|
|
Контроль емкости хранилища CSI, позволяющий планировщику kube-scheduler фильтровать узлы, не вмещающие запрашиваемый том |
|
|
Запрос к серверу метрик Kubernetes ( |
|
defaultBackupStore – параметры backupstore по умолчанию#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Конечная точка хранилища резервных копий по умолчанию. |
|
|
Имя |
|
|
Количество секунд ожидания перед проверкой хранилища резервных копий по умолчанию на наличие новых резервных копий |
|
privateRegistry – параметры приватного реестра образов#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Автоматическое создание нового |
|
|
URL-адрес приватного реестра. При пустом значении используется системный реестр по умолчанию |
|
|
Пользователь для аутентификации в приватном реестре |
|
|
Пароль для аутентификации в приватном реестре |
|
|
Имя |
|
longhornManager – параметры Longhorn Manager#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Формат логов Longhorn Manager. |
|
|
Опциональный идентификатор дистрибутива для отчетов Upgrade Responder |
|
|
PriorityClass для Longhorn Manager |
|
|
|
|
|
Запросы и ограничения ресурсов для контейнера Longhorn Manager |
|
|
Селектор узлов для планирования pod Longhorn Manager. |
|
|
Аннотации, добавляемые ко всем создаваемым ресурсам. Для |
|
|
Метки, добавляемые ко всем создаваемым ресурсам. Для |
|
|
Стратегия обновления |
|
longhornDriver – параметры Longhorn Driver Deployer#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Формат логов Longhorn Driver. |
|
|
PriorityClass для Longhorn Driver |
|
|
|
|
|
Селектор узлов для планирования pod Longhorn Driver. |
|
longhornUI – параметры Longhorn UI#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Количество реплик pod Longhorn UI |
|
|
PriorityClass для Longhorn UI |
|
|
Настройки правила привязки ( |
|
|
|
|
|
Селектор узлов для планирования pod. Для Longhorn UI. |
|
ingress – настройки Ingress для маршрутизации внешнего трафика#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение |
|
|
Имя класса контроллера |
|
|
Имя хоста балансировщика нагрузки L7 |
|
|
Дополнительные имена хостов для TLS (дополнительные имена субъектов). Используйте при необходимости нескольких FQDN для одного ingress. |
|
|
Включение TLS для Ingress |
|
|
Включение защищенного подключения к |
|
|
TLS |
|
|
Путь |
|
|
Тип соответствия пути |
|
|
Аннотации |
|
|
|
|
httproute – параметры HTTPRoute для Longhorn UI#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Создание |
|
|
Ссылки на родительские ресурсы Gateway для HTTPRoute. |
|
|
Список hostname для HTTPRoute. |
|
|
Default path для HTTPRoute |
|
|
Path match type для HTTPRoute. |
|
|
Аннотации для |
|
enablePSP – включение политики безопасности pod#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение PodSecurityPolicy для запуска privileged pod Longhorn. Применяется только к кластерам Kubernetes 1.25 и ниже с включенным контроллером Pod Security admission |
|
namespaceOverride – переопределение пространства имен#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Переопределение пространства имен вместо значения по умолчанию |
|
annotations – аннотации, добавляемые ко всем создаваемым ресурсам#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации, добавляемые ко всем создаваемым ресурсам. Аннотации для pod Longhorn Manager |
|
serviceAccount – настройки сервисного аккаунта#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Аннотации, добавляемые ко всем создаваемым ресурсам. Для |
|
metrics – параметры метрик Longhorn#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Активация создания |
|
|
Дополнительные метки для ресурса Prometheus |
|
|
Аннотации для ресурса Prometheus |
|
|
Интервал сбора целевых метрик Prometheus |
|
|
Тайм-аут сбора метрик |
|
|
Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик. Для |
|
|
Правила фильтрации и преобразования меток, применяемые к собранным метрикам. Для samples перед ingestion |
|
|
Лимит samples на scrape. Значение |
|
openshift – параметры интеграции Longhorn с OpenShift#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Интеграция Longhorn с OpenShift |
|
|
Маршрут для соединений между Longhorn и веб-консоли OpenShift |
|
|
Порт доступа к веб-консоли OpenShift |
|
|
Порт прокси для доступа к веб-консоли OpenShift |
|
enableGoCoverDir – генерация code coverage profiles#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Генерация Go code coverage profiles для Longhorn |
|
extraObjects – добавление дополнительных динамических объектов в Helm-чарте#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Добавление дополнительных динамических объектов в Helm-чарте. Список объектов |
|
consoleLink – интеграция Longhorn с DropApp Console#
Параметр |
Описание |
Значение по умолчанию |
|---|---|---|
|
Включение создания ресурса |
|