2014-10-17 5 views
4

Мне нужна какая-то распределенная файловая система, работающая на кластере CoreOS.CoreOS & HDFS - Запуск распределенной файловой системы в Linux Контейнеры/Докер

Как таковой, я хотел бы запустить HDFS на узлах CoreOS. Это возможно?

Я могу видеть 2 варианта;

  1. Развернуть CoreOS - Установить HDFS непосредственно на CoreOS - не идеал, как он ломает всю концепцию контейнеризации CoreOS и будет означать, установка много дополнительных компонентов
  2. Каким-то образом запустить HDFS в контейнере Докер на CoreOS и аффинности

Вариант 2 кажется лучшим подходом, однако есть некоторые потенциальные блокираторы;

  • Как надежно выставлять физические диски в контейнер Docker с HDFS?
  • Как вы оцениваете сходство контейнеров?
  • Как это работает на узлах имени и т. Д.?

Cheers.

+0

Я не думаю, что Docker подходит для запуска демонов. HDFS построена с демонами DataNode и DataNode в распределенной системе, вариант 2 кажется неприемлемым. –

+0

Это хороший момент. В теории вы могли бы объединить их. Но на самом деле план заключался бы в том, чтобы запускать каждый в виде отдельных контейнеров и общаться с ними через интерфейс 'docker0' при работе в качестве локального кластера или vOpenSwitch и связывать их вместе. – NightWolf

ответ

6

Я постараюсь предоставить две возможности. Я не пробовал ни одного из них, поэтому они в основном являются предложениями. Но может привести вас к правильному пути.

Во-первых, если вы хотите использовать HDFS и для этого требуется доступ к устройству на хосте, было бы запустить демоны HDFS в привилегированном контейнере, имеющем доступ к требуемым хост-устройствам (непосредственно на дисках). См. https://docs.docker.com/reference/run/#runtime-privilege-linux-capabilities-and-lxc-configuration для информации о флагах --privileged и --device.

Теоретически вы можете передавать устройства в контейнер, который обрабатывает доступ к дискам. Тогда вы можете использовать что-то вроде --link, чтобы разговаривать друг с другом. NameNode будет хранить метаданные на хосте с использованием тома (передается с -v). Хотя, учитывая небольшое чтение, которое я сделал о NameNode, похоже, что пока не будет хорошего решения для высокой доступности, и это единственная точка отказа.

Второй вариант поиска, если вы ищете кластерную файловую систему, а не HDFS, в частности, должен был проверить недавнюю поддержку поддержки Ceph FS в ядре в CoreOS 471.1.0: https://coreos.com/releases/#471.1.0. Затем вы можете использовать один и тот же подход привилегированного контейнера для доступа к хост-дискам для создания кластера Ceph FS. Тогда у вас может быть контейнер «только данных», в котором были установлены инструменты Ceph для монтирования каталога в кластере Ceph FS и выставлены это как тома для других используемых контейнеров.

Хотя все это только идеи, и я лично не использовал HDFS или Ceph (хотя я слежу за Ceph и хотел бы попробовать что-то подобное в качестве доказательства концепции).

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

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