Gluster是一个可水平拓展的网络文件系统。它是各种不同的存储服务器之上的组合,这些服务器由以太网Infiniband RDMA网络互相融汇,最终形成一个大的并行网络文件系统。它有包括云计算在内的多重应用,诸如:生物信息学流媒体、文档存储和CDN等。Gluster是由GNU托管的自由软件,许可证是AGPL[3]。Gluster公司[4],是Gluster的首要商业赞助商,且提供商业产品以及基于Gluster的解决方案。

GlusterFS
原作者Gluster
开发者Red Hat公司
当前版本
  • 11.1(2023年11月6日;稳定版本)[1]
编辑维基数据链接
源代码库 编辑维基数据链接
操作系统Linux, OS X, FreeBSD, NetBSD, OpenSolaris
类型分布式文件系统
许可协议GNU通用公共许可证第三版[2]
网站www.gluster.org

设计

编辑

Gluster是客户端-服务器架构。服务器一般被部署成存储砖(storage brick),每一台服务器运行一个名为glusterfsd 的守护进程,将本地文件系统导出为。Gluster的客户端进程通过TCP/IP,InfiniBand或SDP之上构建的自定义协议连接到服务器,使用可以叠加的翻译器(translator)将多个远程服务器上的虚拟卷组聚合起来。通常情况下,每个文件会被作为一个整体来存储,但是,将文件条带化存放在多个远程卷组也是可以实现的。客户端可以通过 FUSE 机制使用 GlusterFS 的原生协议,或者通过内置的服务端翻译器使用NFS v3 协议来挂载这个聚合的卷,或者直接使用 gfapi 客户端函数库来访问这个卷。客户端可以使用统一文件对象(Unified File and Object, UFO)翻译器来二次导出一个原生协议挂载,比如通过内核空间的 NFS v4 服务器、SAMBA 或是基于对象的 OpenStack Storage 协议。

大多数GlusterFS功能被实现为翻译器,包括了:

  • 基于文件的镜像[5]与赋值[6]技术
  • 基于文件的数据存储计算领域的数据带[7]技术
  • 基于文件的负载平衡[8]技术
  • 卷的双机备份[9]技术
  • 磁盘高速缓存[10]技术以及排产[11]

Gluster的设计遵循奥卡姆剃刀原则的简单性:尽管它导出一已存在,但是构建存储的决定权在于客户端翻译器。客户端自身都是没有状态的,互相之间没有交互。但是期望相互间的翻译器配置是一致的。这会引发内存一致性模型问题,但这种设计允许Gluster用商用硬件在规模上能达到数个拍字节,避免了通常影响分布式文件系统的紧内聚松耦合瓶颈。

另见

编辑

引用

编辑