FS基于数据库而不使用保险丝

Dev*_*rim 3 linux filesystems

要从单个目录中提供数百万个文件,能够从数百个端点连接到驱动器,并且由于其他一些原因(为了避免基于gluster/nfs/all fs的网络解决方案),我想评估制作的可能性一个基于mongodb(或任何其他)的文件系统.

基本上,它像fusefs一样工作,每个文件都保存在mongo gridfs中.理论上,我这样做,

mount mongodbfs /mountPoint mongodb://localhost

然后当我说touch /mountPoint/test.txt这个文件被插入mongodb.这个FS还会将uid/gid和perms存储在文件中,我们可以向它发送数百个服务器,而且useradd不需要.我不打算包括FS的所有功能,只需要我们需要的功能.

我的问题是,我如何开始寻找资源,书籍,链接,人员,开发人员,帮助我实现这一目标?至少是一个概念证明.这可行吗?作为此类承诺的时间表,我应该期待什么?

请只考虑大量的小文件和文件夹.

ps:经过几天的研究后,我认为这是我的方向 http://www.ibm.com/developerworks/library/l-sc12.html http://www.flipcode.com/archives/Programming_a_Virtual_File_System -Part_I.shtml

ps2:我知道这项工作的难度.然而,我们愿意留出一个严肃的预算并愿意组建一个认真的团队来实施它 - 只有在我们确定这不是一个黑洞(因此问题)之后.

小智 6

你最常见的建议就是"使用FUSE".这是一个很好的建议,你应该注意它(因为Sciurus指出已经有gridfs-fuse,它非常接近你想要的).

也就是说,如果你想走漫长而艰难的痛苦之路(编写自己的文件系统),你几乎肯定想在当地大学学习操作系统课程,或者查看一些在线课程资料("写一篇简单的FS"通常是一个小项目.文件系统通常很糟糕,因为它们是学术玩具).接下来
使用Linux文件系统(Moshe Bar)并仔细阅读一些简单的文件系统驱动程序,以查看您需要执行的操作的基本框架.

至于时间轴,如果你是一个体面的编码器,你可以在几天到一周内写一个基本的文件系统(但它会很快).我甚至猜不到编写一个好的文件系统需要多长时间- 至少从20世纪70年代末/ 80年代初开始,UFS/FFS(BSD文件系统)一直在不断发展,并且改进/增强/错误修复仍然流行偶尔起来.Sun/Oracle的ZFS在其相对较短的(6年)生命中经历了20多次迭代,尽管其中大部分都与卷管理功能有关.