Прошу прощения, что это, вероятно, некий широкий вопрос, но я еще не нашел решение этой проблемы.Стратегия сохранения данных узла для динамических кластеров Elasticsearch
Я пытаюсь запустить кластер Elasticsearch на Mesos через Marathon с контейнерами докеров. Поэтому я построил Docker image, который может запускаться на марафоне и динамически масштабироваться через интерфейс или API.
Это отлично подходит для тестовых установок, но остается вопрос о том, как сохранить данные так, чтобы, если либо кластер был уменьшен (я знаю, что это также касается самой конфигурации индекса), либо остановлен, и я хочу перезапустить позже (или увеличить) с теми же данными.
Дело в том, что Марафон решает, где (на котором ведется Мезос), узлы запускаются, поэтому с моей точки зрения не предсказуемо, если все данные доступны для «новых» узлов при перезагрузке, когда я пытаюсь сохранить данные для хостов Docker через объемы докеров.
Единственное, что приходит на ум, являются:
Использование распределенной файловой системы, как HDFS или NFS, с установленными объемами либо на хосте Докер или самих изображений Докер. Тем не менее, это оставит вопрос о том, как загружать все данные во время запуска нового кластера, если «старый» кластер имел, например, 8 узлов, а новый имеет только 4.
Использованиеиз Elasticsearch для сохранения в общий диск где-то в сети. Я предполагаю, что у этого будут штрафы за производительность ...
Есть ли другой способ приблизиться к этому? Есть ли рекомендации? К сожалению, я не нашел хорошего ресурса по этой теме. Заранее большое спасибо.
Elasticsearch и NFS не самые лучшие друзья ;-). Вы не хотите запускать свой кластер в NFS, он слишком медленный, и Elasticsearch работает лучше, если скорость хранения лучше. Если вы представите сеть в этом уравнении, вы попадете в беду. Я понятия не имею о Докере или Мезосе. Но я точно рекомендую против NFS. Используйте моментальный снимок/восстановление. –
@AndreiStefan Большое спасибо за понимание NFS.Действительно ли API-интерфейс моментального снимка - это способ, если у нас есть 100 ГБ данных? – Tobi
Последующие снимки являются инкрементальными. Итак, первый снимок займет некоторое время, но остальные снимки должны занимать меньше места и меньше времени. 100 ГБ данных в общей сложности или 100 ГБ только для праймериз (без реплик)? Также обратите внимание, что «incremental» означает инкрементное значение на уровне файла, а не уровень документа. –