ФС на основе базы данных без использования предохранителя - PullRequest
3 голосов
/ 06 марта 2011

Для обслуживания миллионов файлов из одного каталога, возможности подключения к диску с сотен конечных точек и по некоторым другим причинам (чтобы избежать сетевых решений на основе gluster / nfs / all fs), я хочу оценить возможность создания файловой системы, основанной на mongodb (или любой другой).

По сути, это работает как fusefs, каждый отдельный файл хранится в mongo gridfs. Теоретически, я,

mount mongodbfs /mountPoint mongodb://localhost

тогда, когда я говорю touch /mountPoint/test.txt, этот файл вставляется в mongodb. Эта ФС также будет хранить uid / gid и perms вместе с файлом, мы можем добавить к нему сотни серверов, и useradd не понадобится. Я не собираюсь включать все функции FS, только те, которые нам нужны.

Мой вопрос: как мне начать поиски ресурсов, книг, ссылок, людей, разработчиков, которые помогли бы мне реализовать это? по крайней мере, доказательство концепции. Это возможно? Чего мне ожидать в качестве графика для такого мероприятия?

Пожалуйста, подумайте только о gazillion небольших файлов и папок.

пс: после нескольких дней исследований я думаю, что это направление, в котором я движусь http://www.ibm.com/developerworks/library/l-sc12.html http://www.flipcode.com/archives/Programming_a_Virtual_File_System-Part_I.shtml

PS2: я знаю о трудностях этого начинания. однако мы готовы выделить серьезный бюджет и сформировать серьезную команду, реализующую его, - только после того, как убедимся, что это не черная дыра (таким образом, вопрос).

1 Ответ

6 голосов
/ 07 марта 2011

Ваш самый частый совет здесь будет "Используйте FUSE". Это отличный совет, и вы бы хорошо прислушались к нему (как указал Sciurus, уже есть gridfs-fuse , который довольно близок к тому, что вы хотите).

Тем не менее, если вы хотите пройти долгий, тяжелый путь боли и страданий (написание своей собственной файловой системы), вы почти наверняка захотите пройти курс обучения по операционным системам в местном университете или посмотреть на какой-нибудь онлайн материалы курса («Напиши простую ФС» обычно небольшой проект. Файловые системы, как правило, отстой, потому что они академические игрушки).
Затем ознакомьтесь с Linux File Systems (Moshe Bar) и внимательно ознакомьтесь с некоторыми простыми драйверами файловой системы, чтобы увидеть базовый скелет того, что вам нужно сделать.

Что касается временной шкалы, если вы хороший программист, вы можете написать базовую файловую систему за несколько дней или недель (но это будет SUCK ). Я бы даже не догадывался, сколько времени потребуется, чтобы написать файловую систему GOOD - UFS / FFS (файловая система BSD) постоянно совершенствуется по крайней мере с конца 1970-х / начала 1980-х годов, и улучшения / улучшения / исправления ошибок все еще появляются время от времени. ZFS от Sun / Oracle прошла более 20 итераций за относительно короткий (6 лет) срок службы, хотя, по общему признанию, большая часть этого связана с возможностями управления томами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...