1、MooseFS
支持FUSE,相对比较轻量级,对master服务器有单点依赖,用perl编写,性能相对较差,国内用的人比较多,易用,稳定,对小文件很高效。
2、MogileFS
Key-Value型元文件系统,不支持FUSE,应用程序访问它时需要API,主要用在web领域处理海量小图片,效率相比mooseFS高很多,据说对于 Web 2.0 应用存储图片啥的很好。
不适合做通用文件系统,适合存储静态只读小文件,比如图片
网上说这个是性能最高的, 不过是perl编写的代码, 对外提供API来进行使用, 搭建相对比较复杂一点, 因为需要安装很多依赖的第三方perl包,另外还要安装MySQL数据库来支持。
安装完毕后, 服务器端起来了, 客户端有Java, PHP, PERL, RUBY 等开发的, 我需要的是要支持 FUSE 的, 但是这个分布式的文件系统,对FUSE的支持需要安装一个PERL与C通信的模块, 这个模块死活编译不过去, 最后无法测试成功,无奈只能有时间了继续研究。
3、GlusterFS
支持FUSE,比mooseFS庞大,感觉广告宣传做的比产品本身好。
4、GFS2
http://sourceware.org/cluster/wiki/DRBD_Cookbook
http://www.smop.co.uk/blog/index.php/2008/02/11/gfs-goodgrief-wheres-the-documentation-file-system/
http://wiki.debian.org/kristian_jerpetjoen
http://longvnit.com/blog/?p=941
http://blog.chinaunix.net/u1/53728/showart_1073271.html (基于红帽RHEL5U2 GFS2+ISCSI+XEN+Cluster 的高可性解决方案)
http://www.yubo.org/blog/?p=27 (iscsi+clvm+gfs2+xen+Cluster)
http://linux.chinaunix.net/bbs/thread-777867-1-1.html
并不是 distributed file system, 而是 shared disk cluster file system,需要某种机制在机器
之间共享磁盘,以及加锁机制,因此需要 drbd/iscsi/clvm/ddraid/gnbd 做磁盘共享,以及 dlm 做锁管理)
5、OCFS2
GFS 的 Oracle 翻版,据说性能比 GFS2 好 (Debian: aptitude install ocfs2-tools, 图形配置工具包 ocfs2console)
不支持 ACL、flock,只是为了 Oracle database 设计
6、OpenAFS/Coda
是很有特色的东西。
7、ceph
支持FUSE,客户端已经进入了Linux-2.6.34内核,也就是说可以像ext3/rasierFS一样,选择ceph为文件系统。彻底的分布式,没有单点依赖,用C编写,性能较好。基于不成熟的btrfs,其本身也非常不成熟
网上搜索了一些资料, 说 ceph 性能最高,C++编写的代码,支持Fuse,并且没有单点故障依赖, 于是下载安装, 由于 ceph 使用 btrfs 文件系统, 而btrfs 文件系统需要 Linux 2.6.34 以上的内核才支持, 显然我使用的 RHEL5 的内核还不支持 btrfs文件系统, 于是下载最新的内核进行升级, 搞了2天没有升级成功, 编译一次都要耗费1个多小时才能完成,最后发现最新版的 ubuntu 系统支持btrfs文件系统, 于是安装 ubuntu 的虚拟机,btrfs 文件系统搞定了, 但是启动ceph的相关进程出错, 无法启动成功。所以谈不上对其进行过测试。
CEPH中使用了一个比较先进的算法 crush算法, 据翻译出来,为分布式基于对象的存储系统设计了一个可升级的伪随机的数据分布函数,它能够有效地管理数据对象和存储设备,而不需要通过一个中心目录。由于大系统都是动态的,CRUSH被设计成为一个当把不需要的数据迁移最小化时,能方便的增加或移除存储设备。这个算法提供了一个大范围的不同种类的数据复制和可靠性机制,以及根据用户自定义的策略来分配数据,这种策略迫使数据复制从故障领域分离出来。
另外CEPH使用的文件系统为btrfs, 这个文件系统具有很多先进的特性, 为下一代Linux使用的文件系统。
BTRFS最终可能会给ZFS等带来更多威胁,它具有在线碎片整理功能(只有固态盘有这项功能)、Copy-On-Write技术、数据压缩、镜像、数据条带和快照等等。
另外,BTRFS在数据存储方面比ext更完善。它包括一些逻辑卷管理和RAID硬件功能,可以对内部元数据和用户数据进行检验和,同时内嵌了快照功能。ext4也可以实现以上一些功能,但是需要与文件系统和逻辑卷管理器进行通信。
8、Lustre
Oracle公司的企业级产品,非常庞大,对内核和ext3深度依赖
复杂,高效,适合大型集群。
9、PVFS2
http://blog.csdn.net/yfw418/archive/2007/07/06/1680930.aspx
搭配定制应用会很好,据说曙光的并行文件系统就是基于 PVFS。
10、fastDFS:国人在mogileFS的基础上进行改进的key-value型文件系统,同样不支持FUSE,提供比mogileFS更好的性能。
我安装了一下, 安装还算简单, 不支持fuse, 上传文件后会生成一个http的下载地址, 通过http的方式进行下载。这种方式显然不适合我想要的生产环境。
下面是一个网友写的 FastFDS和MogileFS的对比文章, 感觉比较客观真实, 所以在这里给大家转帖一下。
FastDFS设计时借鉴了MogileFS的一些思路。FastDFS是一个完善的分布式文件存储系统,通过客户端API对文件进行读写。可以说,MogileFS的所有功能特性FastDFS都具备,MogileFS网址:http://www.danga.com/mogilefs/。
另外,相对于MogileFS,FastDFS具有如下特点和优势:
a. FastDFS完善程度较高,不需要二次开发即可直接使用;
b. 和MogileFS相比,FastDFS裁减了跟踪用的数据库,只有两个角色:tracker和storage。FastDFS的架构既简化了系统,同时也消除了性能瓶颈;
c. 在系统中增加任何角色的服务器都很容易:增加tracker服务器时,只需要修改storage和client的配置文件(增加一行tracker配置);增加storage服务器时,通常不需要修改任何配置文件,系统会自动将该卷中已有文件复制到该服务器;
d. FastDFS比MogileFS更高效。表现在如下几个方面:
1)参见上面的第2点,FastDFS和MogileFS相比,没有文件索引数据库,FastDFS整体性能更高;
2)从采用的开发语言上看,FastDFS比MogileFS更底层、更高效。FastDFS用C语言编写,代码量不到2万行,没有依赖其他开源软件或程序包,安装和部署特别简洁;而MogileFS用perl编写;
3)FastDFS直接使用socket通信方式,相对于MogileFS的HTTP方式,效率更高。并且FastDFS使用sendfile传输文件,采用了内存零拷贝,系统开销更小,文件传输效率更高。
e. FastDFS有着详细的设计和使用文档,而MogileFS的文档相对比较缺乏。
f. FastDFS的日志记录非常详细,系统运行时发生的任何错误信息都会记录到日志文件中,当出现问题时方便管理员定位错误所在。
g. FastDFS还对文件附加属性(即meta data,如文件大小、图片宽度、高度等)进行存取,应用不需要使用数据库来存储这些信息。
h. FastDFS从V1.14开始支持相同文件内容只保存一份,这样可以节省存储空间,提高文件访问性能。
11、Coda
12、Hadoop HDFS
本地写缓存,够一定大小 (64 MB) 时传给服务器
不适合通用文件系统
13、FastDFS
14、NFS
老牌网络文件系统,具体不了解,反正NFS最近几年没发展,肯定不能用。
15、dCache
依赖 PostgreSQL
16、xtreemfs
17、CloudStore (KosmosFS)
18、NFSv4 Referrals
19、NFSv4.1 pNFS
20、spNFS
21、GFarm
http://datafarm.apgrid.org/software/