Pull to refresh

Поиск подходящей распределённой кластерной файловой системы

Reading time2 min
Views5.2K
Уважаемое Хабрасообщество!

Хочу просить вашего совета в выборе распределённой кластерной файловой системы, поскольку опыта работы с ними у меня нету, да и сами они достаточно сильно различаются и имеют кучу особенностей. К тому же ещё и ощущается относительный информационный голод в данном направлении — какая либо конкретика просто отсутствует.

Система строится на базе Linux.

Что мне нужно от этой файловой системы:

  • Распределение данных по сетевым узлам
  • Автоматическое создание реплик (надо 3, лучше если можно настраивать)
  • Для клиентов это должно выглядеть как полноценная POSIX (можно не совсем, но близкая к) файловая система. Для пользователей это должно выглядеть как обычная файловая система
  • Встроенное High Avaliability, автоматическое восстановление, добавление новых узлов на лету
  • Желательна поддержка XFS


Задача?

Задача по сути проста — WEB хостинг, т.е. в хранилище будут хранится сами сайты и их файлы. К хранилищу будут подключатся WEB сервера и работать с ним на прямую как с файловой системой.

Результаты самостоятельных поисков:

Первое на что наткнулись, это DRBD. Это просто репликация, можно использовать для географической репликации. Вобщем не FS.
Следующим на глаза попался GFS (Global File System). После исследования информации по ней обнаружилось, что система не распределённая, а просто позволяет присоединятся клиентам к центральному хранилищу и всем одновременно работать с ним. Для небольших объёмов в общем это очень даже годится. Отказоустойчивость можно организовать с помощью того-же DRBD зеркалируя данные. Однако если вам нужен большой объём, вам придётся изворачиваться с дорогими storage системами, т.к. эта система работает с блочными устройствами, которые подключаются по iSCSI, FC, InfiniBand и.т.д. При больших объёмах затраты резко идут вверх из-за необходимости покупать дорогие железки, к тому же ещё и 2, что бы вторая была slave у первой в запасе. Я конечно не знаю, может и можно соорудить какое-то подобие виртуального блочного устройства из пачки серверов, но это по моему уже извращение.

И тут я наконец докопался до GlusterFS (Офф. сайт). Судя по описанию — то что надо. Распределённая кластерная файловая система, c репликацией данных, распределением данных по сетевым нодам и маштабируется практически линейно. Имеет автоматическое восстановление, добавление нод в кластер на лету и.т.д., вобщем полноценная взрослая FS. Используется на многих производительных кластерах во всём мире.

Собственно, вопросы:

  1. Есть ли кто, кто работал с такими системами. Что от них ожидать, какие подводные камни?
  2. Может кто-то знает другие, более подходящие FS?


P.S. Hadoop, MogileFS и прочие не предлагать, это больше фреймворки для встраивания в приложения. Мне нужно исключительно на уровне файловых систем решение.

P.S.S. Прошу обратить внимание, что мы обсуждаем полностью работоспособные и стабильные FS, которые можно использовать в production. Многие предлагают продукты, которые в ранней разработке (PohmelFS) и/или имеют кучу ограничений (GridFS, в котором нету ни permissions, ни папок, да ещё и создание файлов — экспериментальная фишка. GridFS сделан поверх MongoDB).
Tags:
Hubs:
Total votes 8: ↑8 and ↓0+8
Comments48

Articles