什么是 Gluster ?
Gluster 是一种可扩展的分布式文件系统,可将来自多个服务器的磁盘存储资源聚合到一个全局命名空间中。
体系结构
GlusterFS 体系结构将计算,存储和 I/O 资源聚合到一个全局命名空间中。 每台服务器加上存储设备(配置为直连存储,JBOD 或使用存储区域网络)被视为节点。 通过添加其它节点或向每个节点添加额外存储来扩展容量。 通过在更多节点之间部署存储来提高性能。 通过在节点之间复制数据来实现高可用性。
优点
- 存储容量可扩展至数 PB
- 可连接数以千计的客户端
- POSIX 兼容
- 使用商用硬件
- 可以使用任何支持扩展属性的磁盘文件系统
- 可使用 NFS 和 SMB 等行业标准协议进行访问
- 提供复制,配额,地理复制,快照和位置检测
- 允许针对不同工作负载进行优化
- 开源
设计
GlusterFS 通过以太网或 Infiniband RDMA 互连将各种存储服务器聚合到一个大型并行网络文件系统中。 GlusterFS 基于可堆叠的用户空间设计。
GlusterFS 有一个客户端和服务器组件。服务器通常部署为 storage bricks,每个服务器运行 glusterfsd 守护程序以将本地文件系统导出为 volume。 glusterfs 客户端进程通过 TCP/IP,InfiniBand 或套接字直接协议连接到具有自定义协议的服务器,使用可堆叠转换器从多个远程服务器创建复合虚拟卷。默认情况下,文件是整体存储的,但也支持跨多个远程卷分割文件。然后,客户端主机可以通过 FUSE 机制使用自己的本机协议,使用内置服务器转换器的 NFS v3 协议或通过 libgfapi 客户端库访问 volume。
GlusterFS 的大多数功能都实现为转换器,包括基于文件的镜像和复制,基于文件的条带化,基于文件的负载均衡,卷故障转移,调度和磁盘缓存,存储配额以及具有用户可维护性的卷快照(自 GlusterFS 3.6 版本以来 )。
GlusterFS 服务器有意保持简单:它按原样导出现有目录,将其留给客户端转换器来构建存储。客户端本身是无状态的,不相互通信,并且期望具有彼此一致的转换器配置。 GlusterFS 依赖于弹性散列算法(elastic hashing algorithm),而不是使用集中式或分布式元数据模型。使用 GlusterFS 3.1 及更高版本,可以动态添加,删除或迁移卷,有助于避免配置一致性问题,并允许 GlusterFS 通过避免通常会影响更紧密耦合的分布式文件系统的瓶颈,在商用硬件上扩展到几PB 。
GlusterFS 通过各种复制选项提供数据可靠性和可用性:复制卷和地理复制。复制卷确保每个文件至少存在一个副本,因此如果一个文件出现故障,仍然可以访问数据。地理复制提供了主从模式的复制, volume 会跨不同的地理位置进行复制。这是异步发生的,在发生故障时备份数据非常有用。
参考引用
https://docs.gluster.org/en/latest/Administrator%20Guide/GlusterFS%20Introduction/
https://en.wikipedia.org/wiki/Gluster