Перестроение кластера

Кластер хранилища является самовосстанавливающимся. При отказе узла или диска кластер автоматически попытается восстановить потерянные данные, то есть перестроить себя.

Предварительные требования для перестроения

Для успешной перестройки кластер должен иметь как минимум:

Процесс перестроения

Процесс перестроения включает несколько этапов. Каждый сервер хранения фрагментов отправляет heartbeat-сообщение на один из MDS-серверов (серверов метаданных) каждые пять секунд. Если сообщение не отправлено, сервер хранения фрагментов считается неактивным и MDS-сервер направляет всем компонентам кластера указание прекратить операции с запросами к данным на этом сервере хранения фрагментов. Если heartbeat-сообщения не поступают от сервера хранения фрагментов в течение 15 минут, то MDS-сервер считает его недоступным и начинает перестройку кластера (при соблюдении указанных ниже условий). В процессе перестройки MDS-сервер находит серверы хранения фрагментов, на которых нет фрагментов (реплик) потерянных данных, и восстанавливает эти данные по одному фрагменту (реплике) за раз следующим образом.

  • Если используется репликация, существующие реплики потерянного фрагмента блокируются (чтобы обеспечить идентичность всех реплик) и одна из них копируется на новый сервер хранения фрагментов. Если в это время клиенту нужно прочитать данные, которые еще не были восстановлены, он читает эти данные из любой оставшейся реплики.
  • Если используется избыточное кодирование, новый сервер хранения фрагментов запрашивает практически все оставшиеся фрагменты данных для восстановления недостающих фрагментов. Если в это время клиенту нужно прочитать данные, которые еще не были восстановлены, эти данные восстанавливаются вне очереди и возвращаются клиенту.

Самовосстановление требует больше сетевого трафика и ресурсов ЦП, если используется репликация. С другой стороны, перестроение с избыточным кодированием выполняется медленнее.

Если узел или диск становится недоступен во время обслуживания, самовосстановление кластера задерживается для экономии ресурсов. По умолчанию задержка составляет 30 минут. Это время можно настроить, задав значение параметра mds.wd.offline_tout_mnt в миллисекундах с помощью команды vstorage -c <cluster_name> set-config.

Рекомендации по перестроению кластера

Две рекомендации, которые помогут уменьшить дополнительный расход ресурсов при перестроении:

  • Чтобы упростить перестройку, используйте одинаковое количество дисков одной емкости на всех узлах.
  • Перестройка сопровождается дополнительной нагрузкой на сеть и увеличивает задержку операций чтения и записи. Чем больше пропускная способность сети в кластере, тем быстрее будет завершена перестройка и высвобождены ресурсы.