Высокая доступность кластера Managed Service for OpenSearch
Высокая доступность кластера Managed Service for OpenSearch определяется количеством хостов с ролью DATA и MANAGER.
Конфигурация хостов кластера
Кластер Managed Service for OpenSearch состоит из одной или нескольких групп хостов, в которых каждый хост выполняет определенную роль.
Каждая группа хостов OpenSearch может включать хосты с ролями DATA или MANAGER. Если в кластере есть только одна группа OpenSearch, ее хосты совмещают обе роли.
Чтобы кластер обеспечивал высокую доступность и на него распространялось Соглашение об уровне обслуживания (SLA)
- Два и более хоста с ролью
DATA. - Три и более хоста с ролью
MANAGER.
Совет
Для снижения нагрузки на хосты с ролью DATA рекомендуется выделять хосты с ролью MANAGER в отдельную группу.
Защита кластера от опасных изменений
Чтобы кластер нельзя было случайно привести в состояние, в котором он станет недоступен или потеряет данные, Managed Service for OpenSearch блокирует часть запросов к OpenSearch API. Заблокированный запрос завершается ошибкой с описанием причины.
Ограничения действуют для всех пользователей кластера, в том числе для пользователя admin.
Базовые ограничения
Действуют во всех кластерах Managed Service for OpenSearch. Заблокированы:
-
Изменение защищенных настроек кластера. Защищены настройки со следующими префиксами:
cluster.routing.allocation.disk.watermark.;cluster.fault_detection.follower_check.timeout;cluster.fault_detection.leader_check.timeout;cluster.follower_lag.timeout;cluster.publish.timeout;cluster.snapshot.info.max_concurrent_fetches.
Изменить эти настройки можно только через техническую поддержку
. -
Исключение хостов с ролью
MANAGERиз голосования при выборе мастера — запросPOST /_cluster/voting_config_exclusions. Чтобы переключить мастер, используйте команду Yandex Cloud CLIyc managed-opensearch cluster switch-master. -
Операции с системными репозиториями резервного копирования
yc-automatic-backupsиyc-automatic-restore: создание и удаление репозитория, создание и удаление снапшотов в нем. Также защищена одноименная политика Snapshot Managementyc-automatic-backups.
Проверка настроек кластера
Чтобы узнать, какие настройки кластера и индексов нарушают требования к высокой доступности, отправьте запрос:
curl \
--user <имя_пользователя>:<пароль> \
--cacert ~/.opensearch/root.crt \
--request POST \
--header 'Content-Type: application/json' \
--url 'https://<FQDN_хоста_OpenSearch_с_публичным_доступом>:9200/_plugins/_security/availability_guard/analyze' \
--data '{}'
Пустое тело запроса {} означает, что будет проверено текущее состояние кластера. Чтобы заранее оценить последствия изменений, передайте в теле запроса одно или несколько полей:
-
settings— настройки кластера, которые нужно проверить. Они дополняют текущие настройки кластера и переопределяют совпадающие. Так можно оценить последствия запросаPUT /_cluster/settingsдо его выполнения. -
excluding_hosts— список FQDN хостов, которые нужно исключить из проверки. Так можно оценить, что произойдет при удалении этих хостов или при отказе зоны доступности, в которой они расположены. -
excluding_indices— список имен индексов, которые нужно исключить из проверки. Поддерживается подстановочный знак*. -
nodes— состав хостов кластера, который нужно проверить вместо фактического. Ключ — имя хоста (полеnameв ответе на запросGET /_cat/nodes?v), значение — объект с полями:roles— список ролей хоста в терминах OpenSearch:data,cluster_manager,ingest,remote_cluster_clientилиwarm. Поле обязательное;attributes— атрибуты хоста, которые используются в правилах размещения шардов, например зона доступности или группа хостов. Актуальные атрибуты хостов кластера можно получить запросомGET /_cat/nodeattrs?v;disk_size— размер хранилища хоста, например100gb.
Если задано поле
nodes, полеexcluding_hostsигнорируется.
Например, чтобы узнать, что произойдет при отказе зоны доступности, исключите из проверки все хосты этой зоны:
curl \
--user <имя_пользователя>:<пароль> \
--cacert ~/.opensearch/root.crt \
--request POST \
--header 'Content-Type: application/json' \
--url 'https://<FQDN_хоста_OpenSearch_с_публичным_доступом>:9200/_plugins/_security/availability_guard/analyze' \
--data '{
"excluding_hosts": [
"<FQDN_хоста_1>",
"<FQDN_хоста_2>"
]
}'
Обнаруженные проблемы перечислены в ответе массива allocation_impacts, причина каждой из них указана в поле reason. Пустой массив означает, что проблем не найдено.
Настройки хранилища
Когда хранилище заполняется на 95%, хосты кластера автоматически переходят в режим read-only. В этом режиме запросы на запись данных завершаются ошибкой. Чтобы избежать ситуаций, когда свободное место на диске заканчивается и кластер становится недоступным для записи:
- настройте алерты в Yandex Monitoring для отслеживания степени заполнения хранилища;
- настройте автоматическое увеличение размера хранилища.
Подробнее об управлении дисковым пространством в Managed Service for OpenSearch.
Настройки обслуживания
В многохостовых кластерах хосты последовательно проходят техническое обслуживание. Если во время технического обслуживания потребуется перезагрузка хоста, он станет недоступным на это время.
Подробнее о техническом обслуживании в Managed Service for OpenSearch.
Прочие параметры и ограничения
На доступность кластера также могут влиять: