Принятие решений на основе кворума
Выбор узла-мастера и изменение состояния кластера — две фундаментальные задачи, которые должны выполняться совместно узлами, имеющими право быть мастерами. Важно, чтобы эти действия работали надёжно даже если некоторые узлы вышли из строя. Elasticsearch добивается этой надёжности, рассматривая каждое действие как успешное при получении ответов от кворума, который представляет собой подмножество узлов кластера, имеющих право быть мастерами. Преимущество в требовании ответов только от подмножества узлов заключается в том, что некоторые узлы могут выйти из строя, не мешая кластеру продвигаться вперёд. Кворумы тщательно выбираются, чтобы кластер не попал в ситуацию «разделенного мозга», когда он разделён на две части, каждая из которых может принимать решения, не согласующиеся с решениями другой части.
Elasticsearch позволяет добавлять и удалять узлы с правом быть мастерами в работающий кластер. Во многих случаях это можно сделать, просто запустив или остановив узлы по мере необходимости. См. Добавление и удаление узлов.
При добавлении или удалении узлов Elasticsearch поддерживает оптимальный уровень отказоустойчивости, обновляя конфигурацию голосования кластера, которая является набором узлов с правом быть мастерами, ответы которых учитываются при принятии решений, таких как выбор нового мастера или утверждение нового состояния кластера. Решение принимается только после того, как более чем половина узлов в конфигурации голосования ответили. Обычно конфигурация голосования совпадает с набором всех узлов с правом быть мастерами, которые в настоящее время находятся в кластере. Однако в некоторых ситуациях они могут отличаться.
Чтобы убедиться, что кластер остаётся доступным, нельзя одновременно останавливать половину или больше узлов в конфигурации голосования. Пока доступна более половины узлов голосования, кластер может работать нормально. Это означает, что если есть три или четыре узла с правом быть мастерами, кластер может переносить отсутствие одного из них. Если есть два или меньше узлов с правом быть мастерами, они все должны оставаться доступными.
После того, как узел присоединился к кластеру или покинул его, избранный мастер должен выпустить обновление состояния кластера, которое корректирует конфигурацию голосования, и это может занять некоторое время. Важно дождаться завершения этой корректировки, прежде чем удалять из кластера дополнительные узлы.
Выборы мастера
Elasticsearch использует процесс выборов для согласования узла-мастера, как при запуске, так и в случае сбоя существующего избранного мастера. Любой узел с правом быть мастером может начать выборы, и обычно первые выборы будут успешными. Выборы обычно терпят неудачу только тогда, когда два узла начинают свои выборы примерно в одно и то же время, поэтому выборы планируются случайным образом на каждом узле для снижения вероятности этого. Узлы будут повторять выборы до тех пор, пока мастер не будет избран, отступая при ошибках, чтобы в конечном итоге выборы увенчались успехом (с произвольно высокой вероятностью). Планирование выборов мастера контролируется настройками выборов мастера.
Техническое обслуживание кластера, поэтапные перезапуски и миграции
Многие задачи по обслуживанию кластера предполагают временную остановку одного или нескольких узлов, а затем их повторный запуск. По умолчанию Elasticsearch может оставаться доступным, если один из его узлов с правом быть мастером отключён, например, во время поэтапного перезапуска. Кроме того, если несколько узлов остановлены и затем запущены повторно, он автоматически восстановится, например, во время полного перезапуска кластера. В этих случаях нет необходимости предпринимать какие-либо дополнительные действия с описанными здесь API, так как набор узлов-мастеров не изменяется постоянно.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/modules-discovery-quorums.html