2017-01-31 9 views
1

Я пытаюсь запустить ElasticSearch на Docker (фактически на AWS ECS). Если я не настроил том, он работает правильно, но каждый раз, когда я перезапускаю контейнер, я теряю все данные. Не могу понять, как настроить громкость.ElasticSearch с Docker: как сохранить данные с помощью AWS

Что я пробовал:

  1. в определении задач я настроен объем "Name = esdata1" и "исток =/USR/доли/elasticsearch/данные"
  2. внутри определения контейнера в раздел «хранение и ведения журнала» Я настроил точки монтирования «громкость источника = esdata1» и «путь контейнер =/USR/доли/elasticsearch/данные»

Теперь, когда я запускаю контейнер он потерпит неудачу с сообщением об ошибке «доступ отрицал "когда эластичные earch попытайтесь написать в «/ usr/share/elasticsearch/data». Поэтому в разделе Security я настроил «user = ec2-user», но тогда контейнер даже не запустится (оставайтесь в «status = created»). Что мне делать? Я предполагаю, что проблема связана с тем, что пользователь контейнера должен быть тем же, что и на хосте. Пользователь на хосте «ec2-user», я не знаю, как это сделать.

Edit:

Я теперь в состоянии сохранять данные с этой конфигурацией: enter image description here enter image description here

docker inspect: 

"Mounts": [ 
      { 
       "Name": "elasticsearch_data", 
       "Source": "/var/lib/docker/volumes/elasticsearch_data/_data", 
       "Destination": "/usr/share/elasticsearch/data", 
       "Driver": "local", 
       "Mode": "z", 
       "RW": true, 
       "Propagation": "rprivate" 
      } 
     ] 

Теперь данные сохраняются, если остановить контейнер или я перезагрузить хост. Моя последняя проблема заключается в том, что эта папка «/ var/lib/docker/volume/elasticsearch_data/_data» находится на томе ОС, а не на большем объеме докеров. От Aws doc:

Amazon ECS оптимизированных МАССЫ от версии 2015.09.d и последующего запуска с Гигабайт объемом для операционной системы, которая прилагается в/разработчике/xvda и смонтированную как корень файловой системы , Существует дополнительно 22 том GiB, который подключен к/dev/xvdcz, который Docker использует для изображения и хранилища метаданных. Громкость настроена как логическое устройство управления (LVM), и к нему напрямую подключается Docker через задний конец devicemapper .

Как сохранить данные на/dev/xvdcz?

Большое спасибо

ответ

1

Ваш SourcePath путь на хосте, например, где написано данные. В вашем случае elasticsearch_data. Вам нужно указать путь источника к папке, которая существует, и которая находится на диске, который вы хотите на экземпляре EC2.

Итак, прикрепите диск EBS к экземпляру. Установите диск в таком месте, как /data/es, и установите исходный путь в эту папку.

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

+0

Большое спасибо: 1. Извините, я думаю, что это очень глупый вопрос, но «прикрепите диск EBS к экземпляру. Смонтируйте диск» - это действительно то, что мне не хватает: не должен быть этот диск уже смонтирован? (согласно документам AWS) 2. Управляемые ES из AWS довольно старые, я не могу их использовать, так как они обновляют его менее одного раза в год. 3. Настройка действительно не надежная, я на самом деле здесь, чтобы учиться. Я знаю, что мне нужен кластер, вот почему я думал об использовании ECS, чтобы легко запустить кластер узлов. –

+0

@StefanoGiacone Я бы не рекомендовал использовать диск с контейнерами докеров. Вам нужен чистый диск, содержащий только данные ES. Если вы используете конфигурацию запуска для создания экземпляров, вы можете добавить туда еще один диск. Затем в скрипте User Data в конфигурации запуска вы монтируете диск и форматируете его. Или вы можете добавить диск вручную в экземпляр. Я не знаю, как автоматизировать и самостоятельно восстанавливать эту настройку. Но вы должны создать новую EBS только для хранения ES. Это упростит резервное копирование и т. Д. – doorstuck

+0

Я думаю, это хороший подход, я думаю, что поеду за ним. Что касается резервных копий: считаете ли вы полезными? Я считаю, что репликация ES делает лучшую работу. –

 Смежные вопросы

  • Нет связанных вопросов^_^