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

Восстановление тома

Longhorn предоставляет два механизма для сохранения работоспособности томов в различных ситуациях.

1. Автоматическое удаление Pod’ов с нагрузкой

Этот механизм восстановления включается настройкой Автоматическое удаление Pod рабочих нагрузок.

Когда происходит одна из следующих ситуаций, Longhorn автоматически пытается удалить pod’ы с нагрузкой, которые управляются контроллером (например, Deployment, StatefulSet или DaemonSet). После удаления контроллер перезапускает pod, а Kubernetes выполняет повторное подключение и монтирование тома.

  1. Том был неожиданно отсоединен из-за обновления Kubernetes, проблем с сетевой связностью или сбоя движка тома.

  2. Том был автоматически восстановлен после того, как все реплики стали неисправными, например, из-за сетевой проблемы.Longhorn пытается определить исправные реплики и использовать их для тома.

  3. Произошла ошибка в pod’е Share Manager, который использует том типа RWX.

Если вы хотите предотвратить автоматическое удаление pod’ов Longhorn’ом, отключите параметр Automatically Delete Workload Pod when The Volume Is Detached Unexpectedly в интерфейсе Longhorn.

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

2. Автоматическое повторное монтирование тома

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

Том может перейти в состояние только для чтения, если возникают ошибки вводавывода (IO errors). Причины ошибок IO могут быть разными, в том числе:

  • Потеря сетевого соединения: прервано соединение между движком (engine) и репликами.

  • Высокая задержка диска: значительная задержка передачи данных между репликой и ее диском.

Longhorn проверяет состояние глобальной точки монтирования тома каждые 10 секунд. Когда файловая система тома переходит в режим "только для чтения", Longhorn обновляет соответствующее состояние в движке данных тома. Затем Longhorn автоматически пытается перемонтировать глобальную точку монтирования на узле, чтобы вернуть режим "чтение-запись". Если перемонтирование проходит успешно, рабочие pod’ы продолжают функционировать без перебоев. Однако если точка монтирования становится защищенной от записи и Longhorn не удаётся ее перемонтировать, может потребоваться вручную пересоздать рабочую нагрузку (workload), чтобы инициировать повторное подключение и монтирование тома.

Этот механизм может не работать в некоторых ситуациях. Например, если происходит сбой движка данных тома, Longhorn автоматически отсоединяет и повторно подключает том. В этом случае файловая система переходит в режим "только для чтения". Longhorn определит этот режим и обновит состояние, но механизм автоматического перемонтирования не сможет вернуть режим "чтениезапись", поскольку устройство теперь защищено от записи. В такой ситуации можно полагаться только на механизм автоматического удаления pod’ов, поскольку пересоздание pod’а позволяет выполнить повторное монтирование тома.

3. Результат

Автоматическое удаление Pod рабочих нагрузок срабатывает при возникновении неожиданных сбоев. Контроллер удаляет pod и затем перезапускает его, а Kubernetes выполняет повторное подключение и монтирование тома. Этот процесс может привести к кратковременным перебоям в работе приложения. Если вы хотите предотвратить автоматическое удаление pod’ов Longhorn’ом, отключите параметр Automatically Delete Workload Pod when The Volume Is Detached Unexpectedly в интерфейсе Longhorn.

Автоматическое повторное монтирование тома срабатывает, когда файловая система тома переходит в режим «только чтение». Longhorn перемонтирует глобальную точку монтирования на хосте, возвращая режим "чтение-запись".