Кластер OpenSearch - состояние кластера, его формирование и основные проблемы

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

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

Примечания и полезные советы

Ключевыми элементами кластеризации являются:

  • Состояние кластера - информация о том, какие индексы находятся в кластере, их маппинг данных и другая информация, которая должна быть совместно использована всеми узлами для обеспечения согласованности всех операций в кластере.
  • Мастер-узел - в каждом кластере должен быть выбран один мастер-узел, отвечающий за координацию работы кластера и обеспечивающий наличие на каждом узле актуальной копии состояния кластера.
  • Формирование кластера - OpenSearch требует набора конфигураций, определяющих, как формируется кластер, какие узлы могут присоединиться к кластеру и как узлы коллективно выбирают главный узел, ответственный за контроль состояния кластера. Эти конфигурации обычно хранятся в файле конфигурации opensearch.yml, переменных окружения на узле или в состоянии кластера.
  • Роли узлов - в небольших кластерах обычно все узлы выполняют все роли; все узлы могут хранить данные, становиться мастер-узлами или обрабатывать конвейеры ввода. Однако по мере роста кластера принято распределять определенные роли между конкретными узлами, чтобы упростить настройку и повысить эффективность работы. В частности, принято определять ограниченное число выделенных мастер-узлов.
  • Реплики- данные могут быть реплицированы на нескольких узлах данных. Это означает, что если один из узлов выйдет из строя, данные не будут потеряны. Это также означает, что поисковый запрос может быть обработан более чем одним узлом.

Общие проблемы

Многие проблемы OpenSearch вызваны операциями, которые создают чрезмерную нагрузку на кластер, поскольку требуют хранения и передачи чрезмерного количества информации между узлами как части состояния кластера. Например:

  • Слишком маленькие шарды
  • Слишком большое количество полей (взрыв полей).

Проблемы также могут быть вызваны неадекватными конфигурациями, приводящими к ситуациям, когда кластер OpenSearch не может безопасно выбрать главный узел. К таким проблемам относятся:

  • Мастер-узел не обнаружен
  • Проблема разделенного мозга

Резервные копии

Поскольку OpenSearch - кластерная технология, недостаточно иметь резервные копии каталога данных каждого узла. Это связано с тем, что резервные копии были сделаны в разное время, и поэтому между ними может не быть полной согласованности. Поэтому единственным способом резервного копирования кластера OpenSearch является использование моментальных снимков, которые содержат полную картину индекса в любой момент времени.

Устойчивость кластера

При проектировании кластера OpenSearch важно подумать об устойчивости кластера. В частности, что произойдет, если один узел выйдет из строя? А для больших кластеров, где несколько узлов могут совместно использовать общие сервисы, такие как сеть или источник питания, - что произойдет, если сеть или источник питания выйдут из строя? Именно в таких случаях полезно обеспечить распределение основных узлов по зонам доступности, а также использовать распределение шардов по разным стойкам или зонам доступности в центре обработки данных.

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