Gluster File System 是一款自由软件,主要由Z RESEARCH 公司负责开发,十几名开发者,最近非常活跃。文档也比较齐全,不难上手。Gluster是由GNU托管的自由软件,许可证是AGPL。Gluster公司,是Gluster的首要商业赞助商,且提供商业产品以及基于Gluster的解决方案。
主要应用
主要应用在集群系统中,具有很好的可扩展性。软件的结构设计良好,易于扩展和配置,通过各个模块的灵活搭配以得到针对性的解决方案。可解决以下问题:网络存储,联合存储(融合多个节点上的存储空间),冗余备份,大文件的负载均衡(分块)。由于缺乏一些关键特性,可靠性也未经过长时间考验,还不适合应用于需要提供 24 小时不间断服务的产品环境。目前适合应用于大数据量的离线应用。由于它良好的软件设计,以及由专门的公司负责开发,进展非常迅速,几个月或者一年后将会有很大的改进,非常值得期待。GlusterFS通过Infiniband RDMA 或者Tcp/Ip 方式将许多廉价的x86 主机,通过网络互联成一个并行的网络文件系统。它有包括云计算在内的多重应用,诸如:生物信息学,文档存储。
设计
Gluster是Client/Server架构。服务器典型的布置在存储卷上,每一台服务器运行一个名为glusterfsd 的守护进程,将本地文件系统作为卷进行输出。Gluster的客户端进程通过TCP/IP,InfiniBand或SDP一类客户协议连接到服务器,将远端卷组成一个大的所谓折叠式翻译器。最终的卷通过一种叫做FUSE的用户空间文件机制机载到客户机。有大量文件应用的I/O同样可以用libglusterfs 客户端库来直接连接服务器并内在的运行翻译器,而无需经过文件系统以及FUSE。大多数GlusterFS功能被实现为翻译器,包括了基于文件的镜像与赋值技术、基于文件的数据存储计算领域的数据带技术、基于文件的负载平衡技术、卷的双机备份技术、磁盘高速缓存技术以及排产。Gluster的设计遵循奥卡姆剃刀原则的简单性:尽管它导出一已存在,但是构建存储的决定权在于客户端翻译器。客户端自身都是没有状态的,互相之间没有交互。但是期望相互间的翻译器配置是一致的。这会引发内存一致性模型问题,但这种设计允许Gluster用商用硬件在规模上能达到数个拍字节,避免了通常影响分布式文件系统的紧内聚松耦合瓶颈。
设计指标
1. 容量:
Scalable Beyond Peta Bytes
2. I/O能力:
Pluggable Clustered i/o Schedulers
Advantage of RDMA transport
3. 可靠性:
Non Stop Storage
No Meta Data
4. 易管理性:
Self Heal
NFS like Disk Layout
5. 设计优势:
Stackable Modules
Not tied to I/O Profiles or Hardware or OS
输出比较
I/O调度类型支持:
1. ALU:Adaptive least usage
2. NUFA
3. Random
4. Custom
5. RR:Round robin
环境描述
性能测试方法:多客户端同时执行dd命令生成或读取不同大小的block文件
存储单元规模:16个存储单元
存储单元配置:Xeon 5160 3.00GHz/8GB FB-DIMM/Kernel-2.6.18-5 EM64T+ofed111(Debian)/SATA-II 500GB/mellanox MHGS18-XT/S InfiniBand HCA
客户端规模:64个客户端
客户端配置:Pentium D 3.40GHz/4GB DDR2/Kernel-2.6.18-5 EM64T+ofed111(Debian)/SATA-II 500GB/Mellanox MHGS18-XT/S InfiniBand HCA
内部交换网络设备:Voltaire Port InfiniBand Switch (14U)
GlusterFS版本:1.3.pre0-BENKI