一、MTFS是什么?
1. MTFS(MulTi File System)是一个基于副本的可靠性增强系统。它通过维持文件的多个副本,提高分布式存储系统的可靠性。
2. MTFS是一个堆叠式的(stackable)文件系统,它本身不提供数据的存储能力,而直接利用下层文件系统存储数据。因此MTFS可独立于下层文件系统的具体实现,专注于副本策略的设计。MTFS支持包括本地文件系统、网络文件系统、分布式文件系统在内的多种的文件系统。现支持的文件系统包括ext2、ext3、ext4、nfs、ntfs-3g、tmpfs和Lustre。
3. MTFS还是一个文件系统开发的综合平台。它运用了模块化的设计思想,具有灵活的系统结构,提供了包含丰富测试用例的文件系统测试框架,不仅可以提供基于同步副本的可靠性增强机制,而且可以在此基础上实现异步副本、归档、数据缓存、名字空间统一等功能。
二、MTFS不是什么?
1. MTFS不是一个凭空构想出来的项目。事实上,MTFS项目是受现实需求的驱动才被发起的项目。其最基本和最主要的目标是解决基于Lustre文件系统的可靠性问题。熟悉Lustre的人都知道,Lustre是一个优秀的高性能分布式并发集群文件系统,然而却缺少数据冗余机制,因而面临严峻的可靠性挑战。
2. MTFS不是一个缺少发展空间的项目。由于MTFS不依赖于下层文件系统的具体实现,因此MTFS本身的发展不受Lustre或其他任何下层文件系统应用前景的制约。又由于基于MTFS可以实现多种功能,因而某种功能需求的退化或消失不会影响MTFS的继续发展。
3. MTFS不是一个尚未成型的项目。历经15个月的成长,MTFS已经拥有超过15000行代码,具备基本的框架和功能。任何有经验的开发人员都可以轻松的构建试用环境,并尝试是否能通过MTFS把内核搞垮。
4. MTFS不是一个没有测试的项目。事实上,到目前为止,MTFS是一个测试驱动的项目。新加入的任何子系统,都需要提供足够的测试用例。对现有系统的任何更新,都需要通过数百道回归测试的检验。
5. MTFS不是一个没有文档的项目。MTFS的文档受到了高度的重视。文档的编写共耗费了60天,最终形成了50余页,20000余字的开发手册。这些数字还在不断增长中。之所以在开发最关键的时期,进行文档的编写,就是为了让新加入的开发人员更快速、深入地投入到该项目中去。
三、如何参与MTFS项目?
1. 参与MTFS软件结构的设计。将MTFS的软件结构进一步模块化、层次化。
2. 参与MTFS新功能的设计。MTFS暂时只支持同步副本功能,可以在此基础上设计其他功能,研究新功能的现实需求、应用场景、实现方式等问题。
3. 为MTFS设计算法。例如,为MTFS设计可动态更新的文件名最长后缀匹配算法,或可扩展的类型枢纽匹配算法。
4. 为MTFS编写内核层代码。将一个系统逐渐推向成熟、稳定将是一种非常有趣的活动。
5. 为MTFS编写用户层管理工具。例如,为MTFS实现文件破损分支修复工具。
6. 强化MTFS对Lustre的支持。例如,为MTFS添加对Lustre-1.8.x的支持。
7. 为MTFS新添下层文件系统支持。这是一个较易上手的活动,可以用来快速地熟悉MTFS。
8. 为MTFS编写测试用例。找出MTFS的BUG,并编写短小精悍的回归测试用例。
9. 对MTFS发表任何意见、建议。
四、联系方式
1. http://www.multifs.com,MTFS的网站,正在建设中。
2. http://code.google.com/p/mtfs,MTFS的项目网站,可以下载源码。
3. http://groups.google.com/group/mtfs,MTFS的邮件链表,可在此讨论问题。
4. http://blog.csdn.net/fsdev,我的博客,整理好的文档将陆续在此发布。
5. pkuelelixi@gmail.com,我的个人邮箱。
6. 给我发站内信。
本文章欢迎转载,请保留原始博客链接http://blog.csdn.net/fsdev/article