Elasticsearch: Снапшоты и восстановление данных

Снимок (снапшот) - это резервная копия, сделанная из работающего кластера Elasticsearch. Вы можете делать снимки всего кластера, включая все его потоки данных и индексы. Также можно делать снимки только определенных потоков данных или индексов в кластере.

Elasticsearch

Снапшоты и восстановление данных

Перед созданием снимков необходимо зарегистрировать хранилище.

Снимки можно хранить в локальных или удаленных хранилищах. Удаленные хранилища могут располагаться на Amazon S3, HDFS, Microsoft Azure, Google Cloud Storage и других платформах, поддерживаемых плагином хранилища.

Снимки инкрементные: каждый снимок хранит только те данные, которые не являются частью предыдущего снимка. Это позволяет делать частые снимки с минимальными накладными расходами.

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

Можно использовать управление жизненным циклом моментальных снимков для автоматического создания и управления моментальными снимками.

Вы не можете создать резервную копию кластера Elasticsearch, просто скопировав каталоги данных всех его узлов. Elasticsearch может вносить изменения в содержимое своих каталогов данных во время работы; нельзя ожидать, что копирование каталогов данных позволит получить последовательную картину их содержимого. Если вы попытаетесь восстановить кластер из такой резервной копии, это может закончиться неудачей и сообщением о повреждении и/или отсутствии файлов. Или же может показаться, что восстановление прошло успешно, хотя часть данных была беззвучно потеряна. Единственным надежным способом резервного копирования кластера является использование функции моментального снимка и восстановления.

Совместимость версий

Совместимость версий относится к совместимости базового индекса Lucene.

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

В следующей таблице указана совместимость моментальных снимков между версиями. Первый столбец обозначает базовую версию, с которой можно восстанавливать снимки.

2.x 5.x 6.x 7.x 8.x
1.x → +
2.x → + +
5.x → + +
6.x → + +
7.x → + +

Для восстановления моментальных снимков и индексов в разных версиях действуют следующие условия:

  • Снимки: Вы не можете восстановить снимки из более поздних версий Elasticsearch в кластер, работающий на более ранней версии Elasticsearch. Например, нельзя восстановить снимок, сделанный в версии 7.6.0, в кластер, работающий под управлением версии 7.5.0.
  • Индексы: Вы не можете восстановить индексы в кластере, на котором работает версия Elasticsearch, которая более чем на одну основную версию новее версии Elasticsearch, использованной для создания моментального снимка индексов. Например, нельзя восстановить индексы из снимка, сделанного в версии 5.0, в кластер, работающий под управлением версии 7.0.

Единственная оговорка заключается в том, что снимки, сделанные в Elasticsearch 2.0, можно восстановить в кластерах с Elasticsearch 5.0.

Каждый снимок может содержать индексы, созданные в различных версиях Elasticsearch. Сюда входят резервные индексы, созданные для потоков данных. При восстановлении моментального снимка должна быть возможность восстановить все эти индексы в целевом кластере. Если какие-либо индексы в моментальном снимке были созданы в несовместимой версии, вы не сможете восстановить моментальный снимок.

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

Если вы оказались в ситуации, когда вам нужно восстановить моментальный снимок потока данных или индекса, несовместимого с текущей версией кластера, вы можете восстановить его на последней совместимой версии и использовать reindex-from-remote для восстановления потока данных или индекса на текущей версии. Переиндексация с удаленного источника возможна только в том случае, если для исходного потока данных или индекса включен источник. Извлечение и переиндексация данных может занять значительно больше времени, чем простое восстановление моментального снимка. Если у вас большой объем данных, мы рекомендуем протестировать процесс переиндексации с удаленного источника на подмножестве ваших данных, чтобы понять, сколько времени потребуется, прежде чем приступать к процессу.

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