Кластер ZDS и состояния компонентов
Общая информация
Кластер ZDS состоит из нескольких узлов, которые совместно обрабатывают запросы, хранят данные и обмениваются служебной информацией. В режиме Erasure coding (EC) один и тот же файл представлен набором частей, расположенных на разных дисках и узлах.
Поэтому состояние кластера определяется не только общим статусом узлов, но и состоянием отдельных дисков, групп хранения и вольюмов.
Общая схема работы кластера в режиме EC:

Состояния узла
Узел может находиться в одном из следующих состояний.
| Состояние | Что означает | Что происходит |
|---|---|---|
NOT_CONNECTED | Узел ещё не синхронизирован с кластером или недоступен для других узлов | Возможны ограничения на межузловое взаимодействие |
UNSYNC | Узел виден кластеру, но его локальное состояние ещё не приведено к согласованному виду | Выполняется синхронизация данных и служебной информации |
REPAIR | Узел находится в процессе восстановления | Восстанавливаются отсутствующие данные и локальное состояние |
RUNNING | Узел работает штатно | Запросы и фоновые процессы выполняются в обычном режиме |
Когда меняется состояние узла
Изменение состояния возможно в нескольких типовых ситуациях:
- при старте узла;
- при подключении к уже работающему кластеру;
- при рассинхронизации;
- при восстановлении после потери данных или временной недоступности ресурсов.
Состояния диска
Состояние диска напрямую влияет на то, можно ли использовать его для чтения, записи или восстановления.
| Состояние | Что означает | Практический эффект |
|---|---|---|
UNKNOWN | Инициализация не завершена или нет актуальных данных о состоянии | Диск не должен рассматриваться как надёжно доступный |
RUNNING | Диск доступен для обычной работы | Возможны чтение и запись |
FULL | Недостаточно свободного места или inode | Чтение возможно, запись может быть ограничена |
REPAIR | Выполняется восстановление данных на диске | Часть операций может быть ограничена на время восстановления |
ERROR | Ошибка доступа или проверки состояния | Чтение и запись недоступны |
Схема переходов локального диска между состояниями:

Состояния группы хранения
Группа хранения объединяет диски и используется для размещения частей файлов. Её состояние рассчитывается на основе состояния входящих в неё дисков.
| Состояние | Что означает | Практический эффект |
|---|---|---|
RUNNING | В группе достаточно доступных дисков для штатной работы | Группа участвует в чтении и записи |
FULL | Часть дисков заполнена | Возможны ограничения на новые записи |
REPAIR | Один или несколько дисков находятся в восстановлении | Группа продолжает работать, но часть операций может выполняться в ограниченном режиме |
ERROR | Доступных дисков недостаточно для работы по текущей схеме хранения | Запись невозможна, чтение зависит от доступности конкретных частей |
Если одновременно присутствуют признаки FULL и REPAIR, приоритет обычно имеет статус REPAIR, потому что в этот момент для системы важнее процесс восстановления.
Состояния вольюма
Вольюм отражает жизненный цикл логической единицы хранения.
| Состояние | Что означает | Что происходит |
|---|---|---|
NEW | Получен запрос на создание вольюма | Объект создан логически, но ещё не подготовлен к работе |
CREATING | Выполняется создание локальной структуры вольюма | Идёт инициализация служебных данных |
RUNNING | Вольюм доступен для штатной работы | Можно выполнять операции с данными |
MIGRATION_IN_PROGRESS | Выполняется миграция вольюма | Данные и структура могут переноситься в новый контекст |
MIGRATION_DONE | Миграция завершена | Вольюм переведён в следующее состояние эксплуатации |
DESTROYING | Запущен процесс удаления | Идёт асинхронное удаление данных и служебной информации |
DESTROYED | Удаление завершено | Вольюм больше не участвует в работе |
Схема переходов вольюма между состояниями:

Что считается штатной работой кластера
Кластер можно считать работоспособным в штатном режиме, если:
- узлы находятся в состоянии
RUNNING; - диски, необходимые для работы, не находятся в
ERROR; - группы хранения доступны для размещения и чтения частей;
- вольюмы, с которыми выполняются операции, находятся в состоянии
RUNNING.
Типовые ситуации и их интерпретация
| Ситуация | Что означает | Что проверить или сделать |
|---|---|---|
Узел находится в NOT_CONNECTED | Узел ещё не подключился к другим узлам кластера или недоступен для них | Проверить сетевую доступность узла, корректность списка узлов в конфигурации, настройки внутренних адресов и портов, а также ошибки при запуске сервиса |
Узел находится в UNSYNC | Синхронизация ещё не завершена, локальное состояние узла не приведено к согласованному виду | Убедиться, что это не кратковременное состояние после старта, и проверить журнал операций, связность сети и доступность других узлов |
Узел или диск находятся в REPAIR | Выполняется восстановление данных или локального состояния | Оценить, хватает ли доступных частей для чтения файлов, не перешли ли связанные группы хранения в ERROR, и уменьшается ли число проблемных компонентов после завершения фоновых задач |
Группа хранения находится в ERROR | Для текущей схемы хранения недостаточно доступных дисков | Считать ситуацию критичной для записи, проверить состояние входящих дисков и оценить, требуется ли восстановление или расширение ресурсов |
Диск находится в FULL | Недостаточно свободного места или inode для штатной записи | Проверить остаток свободного пространства, количество inode, необходимость перераспределения нагрузки или расширения кластера, а также работу вакуума |
Связанные статьи
За принципами размещения данных обращайтесь к статье Как ZDS хранит данные.
За настройкой узлов и фоновых процессов обращайтесь к статье Конфигурация ZDS.