NoSQL для организации хранения и репликации файловой системы?

В нашей группе мы обсуждали разработку стратегии хранилища данных для удовлетворения требований к тестированию, воспроизводимости и синхронизации данных. Одна из предлагаемых идей - адаптировать подход NoSQL с помощью существующего инструмента, а не пытаться повторно реализовать То же самое и в файловой системе. Я не знаю, является ли подход NoSQL даже лучшим подходом к тому, что мы пытаемся достичь, но, возможно, если я опишу, что нам нужно / что мы хотим, вы все сможете помочь.

  1. Большинство наших файлов имеют размер более 50 Гб и хранятся в проприетарном стороннем формате. Нам необходимо иметь доступ к каждому файлу по комбинации имени / даты / источника / времени / артефакта. По сути, поиск в стиле пары "ключ-значение".
  2. Когда мы запрашиваем файл, мы не хотим загружать его все в память. Они действительно слишком велики и могут затопить наш сервер. Мы хотим иметь возможность каким-то образом получить ссылку на файл, а затем использовать проприетарный сторонний API для приема его частей.
  3. Мы хотим легко добавлять, удалять и экспортировать файлы из хранилища.
  4. Мы хотим настроить автоматическую репликацию файлов между двумя серверами (мы можем написать для этого сценарий). То есть синхронизировать содержимое одного сервера с другим. Нам не нужна распределенная система, в которой создается впечатление, будто у нас есть один сервер. Хотелось бы полной репликации.
  5. У нас также есть другие файлы меньшего размера, которые имеют древовидную связь с большими файлами. Содержимое одного файла будет указывать на следующий и так далее, и так далее. Это не «колесо со спицами», это полностью распустившееся дерево.

Мы бы предпочли, чтобы API Python, C или C ++ работал с такой системой, но большинство из нас имеет опыт работы с множеством языков. Мы не против, пока он работает, выполняет свою работу и экономит время. Что думаешь? Есть ли что-то подобное?


person wheaties    schedule 05.05.2010    source источник


Ответы (3)


Что не так с проверенной кластерной файловой системой? Блеск и ceph - хорошие кандидаты.

Если вы ищете хранилище объектов, Hadoop был создан с учетом этого. По моему опыту, работать с Hadoop и поддерживать его сложно.

person Yann Ramin    schedule 05.05.2010
comment
Вообще ничего. Я посмотрю на них, спасибо. Я думаю, что NoSQL был упомянут, потому что это новая популярность. - person wheaties; 05.05.2010

Вы смотрели на MongoDB GridFS. http://www.mongodb.org/display/DOCS/GridFS+Specification

Вы можете запрашивать файлы по метаданным по умолчанию, а также по вашим собственным дополнительным метаданным. Файлы разбиты на небольшие части, и вы можете указать, какие части вам нужны. Кроме того, файлы хранятся в коллекции (аналогично таблице СУБД), и вы можете загружать функции репликации Mongo.

person azymm    schedule 05.05.2010

Для меня и Lustre, и Ceph имеют некоторые проблемы, которых нет в таких базах данных, как Cassandra. Я думаю, что главный вопрос здесь в том, какой недостаток будет у Cassandra и других подобных баз данных в качестве серверной части FS.

Производительность, очевидно, могла быть одной из них. А что насчет использования пространства? Последовательность?

person falde    schedule 22.03.2012