В CSS вы можете обновить версию кластера Elasticsearch, чтобы использовать новые функции и улучшения производительности или исправить известные проблемы.
Тип обновления | Сценарий | Процесс обновления |
|---|---|---|
Обновление той же версии | Обновите kernel‑patches кластера. Кластер обновляется до последнего образа текущей версии для исправления известных проблем или оптимизации производительности. Например, если текущая версия кластера 7.10.2(7.10.2_24.3.3_0102), при обновлении той же версии кластер будет обновлён до последнего образа 7.10.2(7.10.2_24.3.4_0109) версии 7.10.2. (Номера версий приведены только в качестве примера.) |
Узлы в кластерах обновляются поочерёдно, чтобы не прерывать работу сервисов. |
Обновление между версиями | Обновите кластер до последнего образа целевой версии, чтобы расширить функциональность или включить новые версии. Например, если текущая версия кластера 7.6.2(7.6.2_24.3.3_1224), при обновлении между версиями кластер будет обновлён до последнего образа 7.10.2(7.10.2_24.3.4_0109) версии 7.10.2. (Номера версий приведены только в качестве примера.) |
Узлы в кластерах обновляются по одному, чтобы избежать прерывания сервисов. |
Поддерживаемые целевые версии зависят от текущей версии. Подробнее см. Table 2.
Текущая версия | Целевая версия |
|---|---|
Elasticsearch: 6.2.3 | Elasticsearch: 6.5.4 or 6.8.23 |
Elasticsearch: 6.5.4 | Elasticsearch: 6.8.23 |
Elasticsearch: 6.8.23 | Elasticsearch: 7.6.2 or 7.10.2 |
Elasticsearch: 7.1.1 | Elasticsearch: 7.6.2 or 7.10.2 |
Elasticsearch: 7.6.2 | Elasticsearch: 7.10.2 |
Elasticsearch: 7.10.2 | OpenSearch: 1.3.6 |
Примечание:
| |
Перед обновлением кластера необходимо оценить потенциальные последствия и изучить рекомендации по эксплуатации. Это позволяет правильно спланировать время обновления, обеспечить плавный процесс обновления и минимизировать перебои в работе сервиса.
Узлы кластера обновляются по одному, чтобы обеспечить непрерывность сервиса. Однако миграция данных, происходящая во время обновления, потребляет I/O‑производительность, и вывод отдельных узлов из эксплуатации всё же оказывает некоторое влияние на общую производительность кластера.
Чтобы минимизировать это влияние, рекомендуется регулировать скорость миграции данных в зависимости от цикла трафика кластера: увеличивать скорость миграции данных в часы низкой нагрузки, чтобы сократить продолжительность задачи, и уменьшать её до пиковых часов, чтобы обеспечить оптимальную производительность кластера. Скорость миграции данных определяется параметром indices.recovery.max_bytes_per_sec. Значение параметра по умолчанию равно количеству vCPUs, умноженному на 8 MB. Например, для четырёх vCPUs скорость миграции данных составляет 32 MB/s. Вы можете изменить её в соответствии с требованиями сервиса.
Во время обновления узлы обновляются по одному. Запросы, отправленные на узел, который находится в процессе обновления, могут завершиться с ошибкой. Чтобы смягчить это влияние, можно принять следующие меры:
Kibana и Cerebro будут пересобраны во время обновления, что сделает их временно недоступными. Кроме того, из‑за проблем совместимости разных версий Kibana может стать недоступной во время обновления. Эти проблемы исчезнут после завершения обновления.
После запуска задачу обновления нельзя остановить, пока она не завершится успешно или с ошибкой. Сбой обновления затрагивает только один узел и не прерывает сервисы, если существуют реплики данных. При необходимости вы можете восстановить узел, который не удалось обновить, выполнив Replacing a Faulty Node.
Для оценки времени, необходимого для обновления кластера, можно использовать следующую формулу:
Продолжительность обновления (мин) = 15 (мин) × Общее количество узлов для обновления + Продолжительность миграции данных (мин)
где,
Data migration duration (min) = Total data size (MB)/[Total number of vCPUs of the data nodes x 8 (MB/s) x 60 (s) x Concurrency]
где,
Приведённые выше формулы используют оценки при идеальных условиях. На практике рекомендуется добавить 20 %–30 % резерв.
Чтобы обеспечить успешное обновление, необходимо проверить элементы, перечисленные в таблице ниже, перед выполнением обновления.
Check Item | Check Method | Description | Normal Status |
|---|---|---|---|
Cluster status | System check | После запуска задачи обновления система автоматически проверяет статус кластера. Кластеры, у которых статус green или yellow, могут корректно предоставлять услуги и не имеют нераспределённых первичных шардов. | Кластер доступен и текущих задач нет. |
Количество узлов | System check | После запуска задачи обновления система автоматически проверяет количество узлов. Чтобы обеспечить непрерывность обслуживания, в каждом AZ кластера должно быть не менее двух узлов каждого типа. Для кластера с master nodes должно быть не менее двух data nodes. Для кластера без master nodes количество data nodes + cold data nodes должно быть не менее трёх. |
|
Disk capacity | System check | После запуска задачи обновления система автоматически проверяет disk capacity. Во время обновления узлы выводятся из эксплуатации по одному, затем создаются новые узлы. Убедитесь, что суммарная disk capacity оставшихся узлов достаточна для обработки всех данных кластера, и что использование диска узлами остаётся ниже 80%. | После вывода из эксплуатации отдельного узла суммарная disk capacity оставшихся узлов достаточна для обработки всех данных кластера, и использование диска узлами остаётся ниже 80%. |
Data replicas | System check | Проверьте, что оставшиеся data nodes и cold data nodes могут обрабатывать максимальное количество primary и standby shards индексов в кластере. Во время обновления не должно быть нераспределённых реплик. | Количество data nodes + Количество cold data nodes > Максимальное количество реплик индекса + 1 |
Бэкап данных | Проверка системы | Перед обновлением выполните резервное копирование данных, чтобы предотвратить потерю данных из‑за сбоев обновления. При отправке задачи обновления вы можете выбрать, проверять ли full index snapshots. | Проверьте, была ли выполнена резервная копия данных. |
Ресурсы | Проверка системы | После запуска задачи обновления система автоматически проверяет ресурсы. Во время обновления будут созданы новые ресурсы. Убедитесь, что ресурсы доступны. | Ресурсы доступны и достаточны. |
Пользовательские плагины | Проверка системы и ручная проверка | Выполняйте эту проверку только в том случае, если в исходном кластере установлены пользовательские плагины. Если в кластере есть пользовательский плагин, загрузите все пакеты плагинов целевой версии на странице управления плагинами перед обновлением. Во время обновления установите пользовательский плагин на новых узлах. В противном случае пользовательские плагины будут потеряны после успешного обновления кластера. После запуска задачи обновления система автоматически проверяет, был ли загружен пакет пользовательского плагина, но вам необходимо проверить корректность загруженного пакета плагина. ПРИМЕЧАНИЕ: Если загруженный пакет плагина некорректен или несовместим, пакет плагина не может быть автоматически установлен во время обновления. В результате задача обновления завершается с ошибкой. Чтобы восстановить кластер, вы можете завершить задачу обновления и восстановить узел, который не удалось обновить, выполнив Replacing a Faulty Node. После завершения обновления статус пользовательского плагина сбрасывается на Uploaded. | Пакет плагина кластера, который будет обновлен, загружен в plugin list. |
Пользовательские конфигурации | Проверка системы | Во время обновления система автоматически синхронизирует содержимое файла конфигурации кластера elasticsearch.yml. | Пользовательские конфигурации кластеров не теряются после обновления. |
Нестандартные операции | Ручная проверка | Проверьте, были ли в кластере выполнены нестандартные операции. Нестандартные операции относятся к ручным действиям, которые не фиксируются. Эти операции не могут быть автоматически перенесены во время обновления, например, изменение конфигурационного файла kibana.yml, системных настроек и маршрутов возврата. | Некоторые нестандартные операции совместимы. Например, изменение плагина безопасности можно сохранить с помощью метаданных, а изменение системной конфигурации можно сохранить с использованием образов. Некоторые нестандартные операции, такие как изменение файла kibana.yml, не могут быть сохранены, и файл необходимо заранее создать резервную копию. |
Проверка совместимости | Проверка системы и ручная проверка | После запуска задачи кросс-версионного обновления система автоматически проверяет, есть ли несовместимые конфигурации между исходной и целевой версиями. Если для кластера установлен пользовательский плагин, совместимость версии пользовательского плагина необходимо проверять вручную. | Конфигурации до и после кросс-версионного обновления совместимы. |
Проверить нагрузку кластеров | Системная и ручная проверка | Если кластер сильно загружен, существует высокая вероятность, что обновление зависнет или завершится с ошибкой. Рекомендуется проверить нагрузку кластера перед обновлением и выполнять обновление только в непиковые часы. Вы также можете выбрать проверку нагрузки кластера при настройке информации об обновлении. |
|
При создании задачи обновления вы можете выбрать проверку, был ли выполнен бэкап полных данных индекса с помощью снапшотов. Это помогает предотвратить потерю данных в случае сбоя обновления.
Parameter | Description |
|---|---|
Upgrade Type | Выберите тип обновления.
|
Target Image | Образ целевой версии. При выборе образа отображаются имя образа и детали целевой версии. Поддерживаемые целевые версии отображаются в раскрывающемся списке Target Image. Если целевой образ недоступен, возможные причины следующие:
|
При включении CSS проверяет действительные Снапшоты, сопоставляя индексы по имени. Снапшоты помогают предотвратить потенциальную потерю данных, вызванную сбоями обновления.
CSS не может проверять содержимое или время резервного копирования Снапшотов. Вам следует вручную проверять существующие Снапшоты. Если какой-либо из них старше одного месяца, создайте последний Снапшот.
Во время обновления миграция данных и перезапуск узлов будут потреблять ресурсы кластера и увеличивать нагрузку. Когда эта опция включена, CSS оценивает риски перегрузки кластера и снижает вероятность сбоя обновления кластера, вызванного перегрузкой.
Элементы проверки следующие:
Если любой из результатов аномален, дождитесь снижения нагрузки или активно оптимизируйте её перед выполнением обновления.
Увеличение параллелизма миграции данных может ускорить процесс обновления, но более быстрая миграция данных приводит к более высокому использованию I/O. Более высокий параллелизм, вероятно, приведёт к большей нагрузке кластера, что может повлиять на производительность кластера. Рекомендуется оставить значение по умолчанию 1. Значение не должно превышать половину количества узлов данных.
Если проверка обновления не удалась, информация об ошибке отображается в правом верхнем углу консоли. Скорректируйте конфигурацию кластера соответствующим образом и повторите попытку.
Figure 1 Ошибки проверки обновления

Когда Task Status в списке задач ниже меняется на Successful, обновление завершено.
В списке кластеров найдите целевой кластер и проверьте версию кластера в столбце Version, чтобы увидеть, успешно ли выполнено обновление.
На странице обновления вы можете проверить текущую задачу обновления в области Upgrade Records, чтобы узнать прогресс и статус задачи.
Разверните список задач и нажмите View Progress, чтобы проверить прогресс обновления и статус узлов.
Если Task Status равно Failed, вы можете повторить задачу или завершить её.
После завершения задачи обновления узлы, у которых обновление не удалось, останутся в текущем состоянии, тогда как узлы, успешно обновлённые, не будут откатываться к предыдущей версии. В результате узлы в одном кластере могут иметь разные версии. Рекомендуется перезапустить обновление как можно скорее после устранения соответствующих проблем, чтобы обеспечить одинаковую версию на всех узлах.