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

    Уважаемое Хабрасообщество!

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

    Система строится на базе 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).
    Поделиться публикацией

    Комментарии 48

      –2
      ZFS чем не катит? о_0
        0
        ZFS это локальная файловая система. Мне же нужно кластерное хранилище, распределённое по большому кол-ву серверов, а в будущем ещё и географическая репликация. Читайте внимательнее текст пожайлуста.

        К тому же нормального порта ZFS под Linux ещё толком нету.
          –1
          используйте freebsd :)
            0
            совет из разряда медвежих
            да, зфс там +
            но по сабжу, под фряху становится только кода и та не очень красиво работает
            ну есть еще извраты с геом гейт + миррор
            а так-же сообщение о том, что весной планируется зарелизить проект HAST (high avail. storage)

            так шо, если нужно хоть что-то сделать по сабжу на базе бесплатного опенсорса — только в туксах
              0
              точно. я заговорил о фряхе из-за zfs. Gate кстате не дает монтировать девайс нескольких точек.Точнее позволяет, но работает как-то криво — 2компа пишут 2 разных файла, куча ерроров и сервера не видят файлы записаные другим сервером. А ZFS — iSCSI не работает. Все хочу OpenSolaris поковырять.
                0
                в текущей реализации гейта нет мастер-мастер реплики, только мастер-слейв
                слышал, что в ХАСТе хотят м-м
                а так-же в стрекозе — хаммер, уже долго пытаются м-м заимплементить
                можно покрутить иСказю, в портах есть нетБсдовый порт демона иСкази, но не стабильно оно все
                вобщем, в данный момент фрюха не готова под сторедж с подвыподвертом
                  0
                  iSCSI я имел ввиду реализация прямо в zfs как в солярке (кстате nfs работает на ура). Думал стрекоза активнее развивается, они же ее на HL вроде крутили. Фряха к облачному и распределенному пока не тянется, чисто standalone или распределение задач/демонов.

                  p.s.
                  есть еще вроде Xsan, но это маковская штука и ничего кроме рекламной инфе я не слышал.
              0
              Когда начинаешь строить кластер, то знаешь обычно на базе чего ты это делаешь и почему. FreeBSD не годится, под него такие вещи не адаптируют как правило, в основном всё это делают под Linux, т.к. корпоративный сектор работает именно с линуксом. Да и многие специфичные вещи если и работают на FreeBSD, то в рамках стандартных вещей. Пробуешь прикрутить какой-нить мега-буст патч и упс — Linux only.

              ZFS не кластерная распределённая сетевая файловая система. Она предназначена для других целей и в данном случае это неправильный инструмент для решения задачи.
          0
          А люстру от сана упустил?
            0
            А можете по подробнее о ней? Вся цель топика именно в этом — узнать что есть ещё и узнать об опыте использования таких систем другими. Призываю к бурному обсуждению! :)
          0
          Мне тут хабр контекстно подсказал ответ на Ваш вопрос: Распределенная файловая система GFS (Google File System)
            0
            Google File System — это комерческая тайна Google. Её использование возможно только через API в Google Apps Engine, так что оно ну совсем не подходит. К тому же оно примерно тоже самое что и Handoop (Handoop создан по образу и подобию Google File System), а это уже фреймворк для интеграции в приложение, а не полноценная POSIX файловая система.
              +1
              Hadoop
                –1
                Вы читали, что я написал в P.S. про хандуп?
                  +4
                  Читал. Я не предлагаю, я вам на опечатку указываю.
              +1
              Ключевое слово Google.
              «proprietary distributed file system developed by Google Inc. for its own use»

              Можно не беспокоится
              :-)
              +1
              Общался с создателем Гластера на рутконфе, позже применял на практике для одного музкального проекта как файлораздачу — там есть мод для апача, что очень удобно.
              Однако его настройка — это отдельная пестня и местами матерная.
                0
                Песней не поделитесь? :) Ибо пока всё склоняется именно к GlusterFS.
                  0
                  Да, кстати. Как справлялось с раздачей файлов? Задержек сильных небыло при работе с файловой системой? Насколько она отзывчива?
                    –1
                    Никаких проблем небыло — nginx же впереди апача ;)
                      0
                      :)))

                      У вас чисто хранилище с одним фронтэндом? :)

                      Я просто планирую полноценный хостинг, поетому там будет не только чтение, но и работа с самой FS: запись, удаление и.т.д.
                        0
                        К php не приделали нативного мода, так что невыйдет обычный хостинг
                          0
                          Я собираюсь маунтить её как обычную файловую систему, а не использовать API напрямую. Судя по документации она это делает на ура.
                            0
                            >её как обычную файловую систему

                            Fuse пропатченный от них не забудь поставить. Иначе проблем получишь не очень прозрачных.
                              0
                              В курсе, вобщем-то в Gentoo об этом уже позаботились — там всё ставится из коробки :)
                            0
                            вообще есть хоть какое-нибудь понятие о glusterfs ?!?
                          0
                          что за бред :(
                          при чем тут nginx если использовали модуль для апача?
                          статику с гластера кто раздавал?
                          0
                          есть проблемы и баги в каждой версии вплоть до 3.0.4
                          0
                          давно уже нету мода для апача
                          0
                          Не смотрели в сторону PohmelFS?
                            0
                            Спасибо, прочитаю о PohmelFS (название конечно для рускоязычного человека… Ну сами понимаете :D) и Ceph.
                              0
                              :)) developed by Russian Linux hacker © Wikipedia
                                0
                                Почитал я о ней, сыро ещё. Она сейчас подобие GFS, что не очень то годится.
                            0
                            Кстати Ceph ещё поглядите, тоже всё описанное умеет и тоже монтируется как обычная FS
                              0
                              Ceph ещё бета, так что тоже исключается.
                              0
                              GridFS? Работает поверх MongoDB, через FUSE.
                                0
                                Не подходит. Мне же нужна POSIX совместимая файловая система — GridFS ну совсем не файловая система. Это родственник MogileFS.
                                  0
                                  а разве при работе через FUSE получается не POSIX совместимая FS? C точки зрения самой системы.
                                    0
                                    А вы не посмотрели что оно в стадии разработки и даже ещё не альфа. Одни только Limitations уже отметают без каких либо сожалений эту идею, а они такие:

                                    Current Limitations
                                    * No directories
                                    * No permissions or Mongo authentication
                                    * File creation/writing very experimental
                                +2
                                отпишитесь, плз, с выводами: что выбрали, как установилось, как работало, на чем итп
                                  0
                                  Я постараюсь, но это будет в ближайшую неделю-две. Работа, тесты и всё такое — не хочу сырое решение описывать :)
                                    0
                                    Интересуюсь тем же вопросом, поэтому подниму тему — не родилось ничего стоящего того чтоб поделиться?
                                  +1
                                  Кстати, очень рекомендую автору топика обратить внимание на эту штуку: blog.backblaze.com/2009/09/01/petabytes-on-a-budget-how-to-build-cheap-cloud-storage/
                                    0
                                    Да, я читал об этих штуках. Возможно что какраз то что надо. Дальше нужно смотреть в сторону софта, т.к. это просто storage на JFS — строить полноценный кластер всёравно нужно нам. Но в любом случае спасибо что напомнили!
                                      0
                                      Бенчмарки бы по этой системе.

                                      Лучше независимые.

                                      1. С какой скоростью читает/пишет большие/мелкие файлы?
                                      2. Как ведет себя при массовых конкурентных чтении/записи?
                                      3. Не очень понятно про горячую замену винтов?
                                      4. Где у нее botlenek, не получится ли так, что скорость отдачи будет существенно ниже необходимой для информации поместившейся в на дисках? Это уже конечно от задачи зависит, но лучше это понять до того, а не когда уже поздно :-(
                                      5. Очень смущает наличие внутри Western Digital Caviar WD800BB 80GB 7200 RPM IDE Ultra ATA100 3.5″. Могу вас заверить, с вероятностью до 10% в течении года упадете по этому поводу.
                                      0
                                      Вот выдержка из похожего исследования годовой давности (стиль вольный). Может чем-то поможет.
                                      Хотя за год многое уже могло измениться.

                                      Поставленная задача — найти РФС, которая:
                                      1. поддерживает прямой доступ к файлам (отдача мелких файлов веб сервером напрямую)
                                      2. репликацию файлов для надежности (от 2 копий, настраиваемое)
                                      3. простое включение и выключение дисков и серверов в/из кластера
                                      4. автоматическую реконфигурацию кластера при изменении/сбое диска, сервера
                                      5. собственное обеспечение для защиты от сбоев серверов с основными частыми…?

                                      Поискал в инете и нашел много-много всяких разных РФС.
                                      Выбрал те, которые:
                                      * бесплатные (и если можно свободные)
                                      * не требуют изменения OS для всей системы или специализированного оборудования
                                      * за которые глаз зацепился или название показалось знакомым

                                      1. Gluster www.gluster.org/

                                      Индийская фигня.
                                      Индийская потому, что все базовые программеры с индийскими именами,
                                      а фигня потому что обеспечивает только часть нужной функциональности,
                                      1.х вышла давно, а 2.0, которая и обеспечивает нужное, в состоянии беты.

                                      2. Hadoop hadoop.apache.org/

                                      интересная штука. Для _тысяч_ серверов с данными,
                                      над которыми совершаются (здесь хочется написать надругательства) вычисления.
                                      Для нашего обычного стораджа это слишком.
                                      Причем приоритетными, что явно сказано в документации, считаются большие гигабайтные файлы.
                                      Статику обрабатывать никак нельзя.

                                      3. Gfarm datafarm.apgrid.org/document/

                                      Рассчитана на вычислительные центры.
                                      Судя по ФАКу — заброшена.

                                      4. MogileFS www.danga.com/mogilefs/

                                      Более-менее отвечает нашим запросам, НО
                                      — изменяется урлы для доступа к файлам
                                      — написана на перле, использует для хранения данных о кластере Mysql (что приводит к еще одной точке отказа?).

                                      Кстати, ФС сервера являются простыми вебдав серверами. :)

                                      5. Lustre wiki.lustre.org/index.php?title=Main_Page

                                      Мега гигант. Встраивается в ядро, демоны являются модулями ядра,
                                      патчат ext3 для улучшения производительности, несколько уровней кеширования и т.д.

                                      Может, кстати, не слишком много. Например, похоже не позволяет:
                                      — статику ( но вроде можно эмулировать. Судя по опубликованным цифрам скорости будет хватать.)
                                      — восстановление дисков, т.к. встретил упоминание в доках, что предполагается запуск ФС поверх рейд-5

                                      Также потребует дофигищи работы и серьезного иследования.


                                      В результате кстати ничего не выбрали, т.к. оказалось реально невостребованным по разным причинам.

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое