Распределение, перемещение и восстановление фрагментов
Каждый индекс в Elasticsearch разделен на один или несколько фрагментов. Каждый документ в индексе принадлежит одному фрагменту.
Кластер может содержать несколько копий фрагмента. Каждый фрагмент имеет одну выделенную копию фрагмента, называемую главной, и ноль или более неглавных копий, называемых репликами. Главная копия фрагмента служит основным входом для всех операций индексирования. Затем операции с главной копией фрагмента передаются ее репликам.
Реплики поддерживают дублированные копии ваших данных на узлах вашего кластера, защищая от сбоев оборудования и увеличивая емкость для обработки запросов на чтение, таких как поиск или извлечение документа. Если главная копия фрагмента выходит из строя, то реплика повышается до главной и берет на себя обязанности главной.
В ходе нормальной работы Elasticsearch распределяет копии фрагментов по узлам, перемещает копии фрагментов между узлами для балансировки кластера или удовлетворения новых ограничений распределения и восстанавливает фрагменты для инициализации новых копий. В этом разделе вы узнаете, как работают эти операции и как их можно контролировать.
Чтобы узнать о способах оптимизации количества и размера фрагментов в вашем кластере, ознакомьтесь с размером фрагментов. Чтобы узнать, как операции чтения и записи дублируются по фрагментам и копиям фрагментов, см. чтение и запись документов.
Распределение фрагментов
Распределение фрагментов — это процесс назначения копий фрагментов узлам. Это может происходить во время первоначального восстановления, распределения реплик, перебалансировки, при добавлении или удалении узлов из кластера или при обновлении настроек кластера или индекса, влияющих на распределение.
По умолчанию главные и реплицированные копии фрагментов индекса могут быть распределены на любой узел кластера и могут быть перемещены для балансировки кластера.
Настройка параметров распределения фрагментов
Вы можете контролировать распределение копий фрагментов, используя следующие настройки:
- Настройки распределения фрагментов на уровне кластера: Используйте эти настройки для управления распределением и балансировкой копий фрагментов по всему кластеру. Например, вы можете разместить узлы в зонах доступности или предотвратить использование определенных узлов для проведения технического обслуживания.
- Настройки распределения фрагментов на уровне индекса: Используйте эти настройки для управления распределением копий фрагментов для определенного индекса. Например, вы можете разместить индекс на узле в определенном уровне данных или на узле с определенными атрибутами.
Отслеживание распределения фрагментов
Если копия фрагмента не назначена, это означает, что копия фрагмента не назначена ни одному узлу кластера. Это может произойти, если в кластере недостаточно узлов для назначения копии фрагмента или если копия фрагмента не может быть назначена ни одному узлу, который удовлетворяет правилам фильтрации распределения фрагментов. Когда копия фрагмента не назначена, ваш кластер считается нездоровым и возвращает статус кластера желтый или красный.
Вы можете использовать следующие API для отслеживания распределения фрагментов:
Восстановление фрагментов
Восстановление фрагмента — это процесс инициализации копии фрагмента, например, восстановления главной копии фрагмента из снимка или создания реплики фрагмента из главной копии фрагмента. После завершения восстановления фрагмента восстановленный фрагмент доступен для поиска и индексирования.
Восстановление автоматически происходит во время следующих процессов:
- При первом создании индекса.
- Когда узел присоединяется к кластеру и запускает любые отсутствующие главные копии фрагментов, используя данные, которые он хранит в своем пути данных.
- Создание новых реплик фрагментов из главной копии.
- Перемещение копии фрагмента на другой узел в том же кластере.
- восстановление снимка.
- клонирование, уменьшение или разделение операции.
Вы можете определить причину восстановления фрагмента, используя API восстановления или cat recovery.
Настройка параметров восстановления фрагментов
Для управления тем, как восстанавливаются фрагменты, например, ресурсами, которые могут использоваться операциями восстановления, и индексами, которые должны иметь приоритет для восстановления, вы можете настроить следующие параметры:
Операции восстановления фрагментов также учитывают общие настройки распределения фрагментов.
Отслеживание восстановления фрагментов
Вы можете использовать следующие API для отслеживания распределения фрагментов:
- Просмотреть список текущих и завершенных восстановлений, используя cat recovery API
- Просмотреть подробную информацию о конкретном восстановлении, используя index recovery 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/8.17/shard-allocation-relocation-recovery.html