一、GlusterFS简介
- GlusterFS 是一个开源的分布式文件系统。
- 由存储服务器、客户端以及NFS/Samba存储网关(可选,根据需要选择使用)组成。
- 没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性
二、GlusterFS特点
2.1 扩展性和高性能
GlusterFS利用双重特性来提供高容量存储解决方案。
Scale-Out架构允许通过简单地增加存储节点的方式来提高存储容量和性能(磁盘、计算和I/O资源都可以独立增加),支持10GbE和InfiniBand等高速网络互联。
Gluster弹性哈希(ElasticHash) 解决了GlusterFS对元数据服务器的依赖,改善了单点故障和性能瓶颈,真正实现了并行化数据访问。GlusterFS采用弹性哈希算法在存储池中可以智能地定位任意数据分片(将数据分片存储在不同节点上),不需要查看索引或者向元数据服务器查询。
2.2 高可用性
GlusterFS可以对文件进行自动复制,如镜像或多次复制,从而确保数据总是可以访问,甚至是在硬件故障的情况下也能正常访问当数据出现不一致时,自我修复功能能够把数据恢复到正确的状态,数据的修复是以增量的方式在后台执行,几乎不会产生性能负载。
GlusterFS可以支持所有的存储,因为它没有设计自己的私有数据文件格式,而是采用操作系统中主流标准的磁盘文件系统(如EXT3、XFS等)来存储文件,因此数据可以使用传统访问磁盘的方式被访问。
2.3 全局统一命名空间
分布式存储中,将所有节点的命名空间整合为统一命名空间,将整个系统的所有节点的存储容量组成一个大的虛拟存储池,供前端主机访问这些节点完成数据读写操作。
2.4 弹性卷管理
GlusterFs通过将数据储存在逻辑卷中,逻辑卷从逻辑存储池进行独立逻辑划分而得到。
逻辑存储池可以在线进行增加和移除,不会导致业务中断。逻辑卷可以根据需求在线增长和缩减,并可以在多个节点中实现负载均衡。
文件系统配置也可以实时在线进行更改并应用,从而可以适应工作负载条件变化或在线性能调优。
2.5 基于标准协议
Gluster存储服务支持NFS、CIFS、HTTP、FTP、SMB 及Gluster原生协议,完全与POSIX标准(可移植操作系统接口)兼容。
现有应用程序不需要做任何修改就可以对Gluster中的数据进行访问,也可以使用专用API进行访问。
三、GlusterFS专业术语
###一个节点就是一台服务器
1. Brick(单独服务器)
###每一个Brick就是一个单独的服务器
###多个Brick(服务器)组合起来就是分布式文件系统
2. Volume(逻辑卷)
###一个逻辑卷是多个服务器组成,类型与LVM中的逻辑卷
###通过Volume扩大磁盘空间
3. FUSE(内核文件系统)
###数据写在磁盘上,利用FUSE保存到具体的文件系统
###允许用户创建自己的文件系统,无须修改内核代码
4. VFS(虚拟接口)
###用户空间访问内核空间,通过VFS来对接
5. Glussterd(后台服务)
###管理集群的配置和启动
四、GlusterFS工作原理
1. 客户端通过挂载点目录访问数据,数据交给VFS(虚拟接口),转换数据后给FUSE(内核文件系统)
2. FUSE把数据放在内存中(/dev/fuse)
3. 通过poll(指针)指向客户端处理数据
4. GFS(分布式文件系统)通过TCP网络模式给服务端
5. 服务端通过VFS(虚拟接口)保存在EXT3中
五、弹性hash算法原理
把数据通过hash算法,分布到每个节点中,来实现负载均衡
六、GFS支持的7中卷
1. 分布式卷
1)没有分块处理,文件只能存在一个server中,效率不提升
2)没有备份,一台坏了,数据就丢了
3)依赖底层数据保护
2.条带卷
1)没有数据备份
2)被分成小块
3. 复制卷
1)同一文件保存多份副本
2)至少有两块服务器
3)可以数据备份
4)速度会降低
4. 分布式条带卷
1)至少要四台主机
2)能做高性能分布式存储
3)没有冗余备份
5. 分布式复制卷
1)至少要四台主机
2)有冗余备份