Elasticsearch: обновление discovery.zen.minimum_master_nodes через API

При построении кластера Elasticsearch необходимо указывать количество мастер нод, необходимых для запуска кластера, для того что бы избежать проблемы Split Brain.

Elasticsearch

Split-brain - это когда в кластере имеется более одного главного узла (master ноды).

Количество мастер нод, для установки minimum_master_nodes, рассчитывается по формуле

minimum_master_nodes = <Количество мастер нод в кластере> / 2 + 1

При развертывании кластера, данный параметр указывается в файле /etc/elasticsearch/elasticsearch.yml, к примеру:

Данный параметр прописывается в файле конфигурации /etc/elasticsearch/elasticsearch.yml при построении кластера, но при дальнейшем масштабировании могут появиться новые мастер ноды или уменьшиться их количество. Для изменения его в файле конфигурации потребуется изменить его на каждой ноде и перезапустить сервис Elasticsearch, что в большинстве случаев является не желательным, так как кластер и данные в нем будут не доступны, но и могут возникнуть другие проблемы с запуском.

Для изменения количества мастер нод в кластере, можно использовать следующий API метод

Данный параметр является более приоритетным, чем тот что указан в файле конфигурации.

Если при обновлении возникнет ошибка, аналогичная то что ниже, это означает что в кластере не достаточное количество мастер нод.

{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"illegal value can't update [discovery.zen.minimum_master_nodes] from [1] to [2]"}],"type":"illegal_argument_exception","reason":"illegal value can't update [discovery.zen.minimum_master_nodes] from [1] to [2]","caused_by":{"type":"illegal_argument_exception","reason":"cannot set discovery.zen.minimum_master_nodes to more than the current master nodes count [1]"}},"status":400}

Понравилась статья? Поделиться с друзьями:
Добавить комментарий