Снимок (снапшот) - это резервная копия, сделанная из работающего кластера 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 для восстановления потока данных или индекса на текущей версии. Переиндексация с удаленного источника возможна только в том случае, если для исходного потока данных или индекса включен источник. Извлечение и переиндексация данных может занять значительно больше времени, чем простое восстановление моментального снимка. Если у вас большой объем данных, мы рекомендуем протестировать процесс переиндексации с удаленного источника на подмножестве ваших данных, чтобы понять, сколько времени потребуется, прежде чем приступать к процессу.