目录
一、GlusterFS
1、简介
GlusterFS是一个开源的分布式文件系统,有存储服务器、客户端以及NFS/Samba存储网关组成,没有单独的元数据服务器。
2、特点
①具有扩展性和高性能、高可用
GlusterFS利用双重特性来提供高容量存储解决方案:
Scale-Out架构允许通过简单的增加存储节点的方式来提高存储容量和性能,支持10GbE和InfiniBand等高速网络互联。Gluster弹性哈希解决了GlusterFS对元数据服务器的依赖,改善了单点故障和性能瓶颈,真正实现了并行化数据访问。GLusterFS采用弹性哈希算法在存储池中可以智能的定位任意数据分片(将数据分片存储在不同节点上),不需要查看索引或者向元数据服务器查询。
②全局统一命名空间
集中化管理,系统里根据他命名所定义的隔离区域,是一个独立空间;统一的命名空间,与客户端交互,把请求存放至后端的块数据服务器。
③弹性卷管理
方便扩容及对后端存储集群的管理和维护,较为负载。GlusterFS通过将数据存储在逻辑卷中,逻辑卷从逻辑存储池进行独立逻辑划分而得到。逻辑存储池可以在线进行增加和移除,不会导致业务中断。逻辑卷可以根据需求在线增长和缩减并可以在多个节点中实现负载均衡。而文件系统配置也可以实时在线进行更改并应用,从而可以适应工作负载条件变化或在线性能调优。
④基于标准协议
基于标准化的文件使用协议,让centos兼容GFS。现有的应用程序不需要做任何修改就可以对Gluster中的数据进行访问,也可以使用专用的API进行访问。
3、文件系统
①文件系统组成
文件系统接口、对对象管理的软件集合、对象及属性
②文件系统作用
从系统角度看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。主要负责为用户建立文件,修改文件,转储文件和控制文件的存取。
4、GFS专业术语
①brick
块存储服务器,实际存储用户数据的服务器。
②volume
本地文件系统的“分区”。
③FUSE
用户空间的文件系统类似于EXT4,但是是一个伪文件系统,用于实现跨节点存储数据。
④VFS
虚拟端口,内核态的虚拟文件系统。用户先提交请求给VFS然后VFS交给FUSE再交给GFS客户端,最后由客户端交给远端的存储。
⑤glusterd
是运行在存储结点的进程。客户端运行的是gluster client。整个GFS之间的交互是由gluster client和glusterd完成的。
二、GlusterFS卷类型
GLusterFS支持其中卷,即分布式卷、条带卷、复制卷、分布式条带卷、分布式复制卷、条带复制卷和分布式条带复制卷。
1、分布式卷
①简介
没有对文件进行分块处理,通过扩展文件属性保存HASH值,支持多种底层文件系统包括EXT3、EXT4、ZFS、XFS等。文件通过哈希算法分布到所有的Brick Server上,这种卷时GlusterFS的默认卷。
②特点
文件分布在不同的服务器,不具备冗余性;
更容易和廉价的扩展卷的大小;
单点故障会造成数据丢失;
依赖底层的数据保护。
2、条带卷
①简介
根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点。文件存储以数据块为单位,支持大文件存储,文件越大读取效率越高,但是不具备冗余性。
②特点
数据被分割成更小块分布到块服务器群中的不同条带区;
分布减少了负载且更小的文件加速了存取的速度;
没有数据冗余。
3、复制卷
①简介
同一文件保存一份或多份副本,因此磁盘利用率较低,但是具有冗余性。若多个节点上的存储空间不一致将按照木桶效应取最低节点的容量作为该卷的总容量。因为数据分散在多个Brick中,所以读性能得到很大提高,但是写性能降低。
②特点
卷中所有的服务器军保存一个完整的副本;
卷的副本数量可由客户创建的的时候决定,但复制数必须等于卷中Brick所包含的存储服务器数;
至少由两块服务器或更多;
具备冗余性。
4、分布式条带卷
①简介
兼顾分布式卷和条带卷的功能,主要用于大文件访问处理,至少需要4台服务器来实现。创建卷时,存储服务器的数量如果等于条带或者复制数,那么创建的是条带卷或者复制卷;如果存储服务器的数量是条带或者复制数的两倍甚至更多,那么将创建的是分布式条带卷或者分布式复制卷。
5、分布式复制卷
①简介
Brick Server数量是镜像数的倍数,兼具分布式卷和复制卷的特点。主要用于需要冗余的情况下。
创建一个分布式复制卷,配置分布式的复制卷时卷中brick所包含的存储服务器数必须是复制数的2倍或以上。
6、条带复制卷
①简介
类似于RAID10,同时具有条带卷和复制卷的特点。
7、分布式条带复制卷
①简介
三种基本卷的复合卷,通常用于类Map Reduce应用。
三、GFS部署
1、环境
node1 192.168.10.101
node2 192.168.10.102
node3 192.168.10.103
node4 192.168.10.104
client 192.168.10.30