В настоящее время у меня есть несколько узлов Elasticsearch, работающих на нескольких машинах с голым железом, содержащих индексы размером в ТБ. Мы находимся в процессе реструктуризации нашей инфраструктуры, и я не уверен, что это лучший способ.
Я рассматривал Docker, Mesos и Vagrant в качестве альтернативы, но не уверен, возможны ли они вообще. Есть четыре ситуации, которые я считаю актуальными (наряду с моей проблемой):
- Mesos-Elasticsearch: этот пакет запускает Elasticsearch в Mesos. Это кажется отличным, но, похоже, позволяет масштабировать узлы данных только при небольшом размере диска. Кроме того, нет основных / клиентских узлов. На данный момент пакет является альфа-версией Github - я получил ошибку «Нет маршрута к хосту» и MasterNotDiscoveredException при их настройке по умолчанию. У кого-нибудь есть опыт в этом?
- Docker: я не слишком знаком с контейнерами, но в Dockerhub есть несколько контейнеров для Elasticsearch. Кроме того, Mesos позволяет запускать контейнеры поверх него. Меня беспокоит нехватка места на диске в каждом контейнере, так как мои данные находятся в масштабе ТБ. Кроме того, данные постоянны. Возможно ли изменение размера диска контейнера или есть другая настройка для контейнеров Docker?
- Бродячие виртуальные машины: я бы мог представить себе виртуальную машину для каждого узла ES, подходящую для распределения ресурсов. Есть ли в этом какие-то существенные преимущества по сравнению с работой на голом железе? Похоже, это несовместимо с Mesos.
- Без металла: это текущая настройка.
Я хотел бы знать, какая из четырех настроек является вашей предпочтительной для кластера Elasticsearch на уровне TB. Плюсы и минусы каждого варианта?