GlusterFS是一款诞生于云时代初期的开源分布式文件系统,它的核心设计理念是"简单、可扩展、无中心",这使其在过去十几年中成为了许多企业处理海量非结构化数据的可靠选择。回想当前研究GlusterFS没少巴拉刘爱贵老师的博客,嘿嘿。
GlusterFS是最成功的一个无元数据服务器设计的分布式文件系统,通过计算路径名的哈希值直接确定,避免了元数据服务器的性能瓶颈和单点故障,2011年被红帽(Red Hat)收购被红帽持续维护并整合在其企业级存储产品(如Red Hat OpenShift Data Foundation)中。
1. 节点环境如下
本集群将配置2个普通节点server1,server2部署glusterfs
|-------------|--------------|--------------------|
| 节点名 | IP地址 | 操作系统 |
| server1 | 10.10.14.48 | 统信服务器操作系统V20-1070e |
| server2 | 10.10.14.49 | 统信服务器操作系统V20-1070e |
个节点均需关闭防火墙和selinux
#systemctl stop firewalld.service
#systemctl disable firewalld.service
关闭SElinux
#sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
#setenforce 0
安装软件包,两个节点都需要安装
yum install glusterfs

UOS上面的glusterfs版本是7.0,现在glusterfs虽然不活跃了,但是最新release版本是好像11了,还是差了不少版本呢~
2. 配置glusterfs
启动glusterd服务进程,两个节点都需要执行
#systemctl restart glusterfsd.server
#systemctl status glusterd.service

将49节点添加到集群中
gluster peer probe 10.10.14.49

使用#gluster pool list 显示Connected表示集群加入成功
下面可以创建卷,测试一下了
创建哈希卷:
gluster volume create test 10.10.14.48:/data 10.10.14.49:/data force

可以通过# gluster volume info 查看卷详细信息

最后就是挂载glusterfs这个卷了
#mount -t glusterfs 10.10.14.48,10.10.14.49:/test /mnt/

最后经过测试发现在GlusterFS7.0中,条带卷(Stripe Volume)理由 是其无冗余 特性------任何一个砖块故障就会导致整个卷数据全部丢失 ,风险极高,但是我想说下哈希卷不也是有数据盘快掉也会影响卷使用么,官方推荐了一种**纠删码(Disperse)**简称EC卷,我把命令简单贴出来,反正我场景里面没有使用过这个卷,我都是默认数据三副本的需求
#gluster volume create <VOLUME_NAME> disperse <k+m> redundancy <m> <BRICK_LIST><VOLUME_NAME>: 卷的名称,如 ec-vol。
<k+m>: 块总数。
<m>: 冗余级别(即可承受的故障块数)。
<BRICK_LIST>: 按顺序列出的所有块路径。
假设有6个节点(node1~6),每个节点有一个块路径 /data/brick1,要创建 k=4, m=2 的EC卷:
#gluster volume create ec_volume \
disperse 6 \
redundancy 2 \
node1:/data/brick1 \
node2:/data/brick1 \
node3:/data/brick1 \
node4:/data/brick1 \
node5:/data/brick1 \
node6:/data/brick1
可以简单说明一下如果k=4,m=2那么整个集群的故障冗余度就是支持的宕机的节点数n≤2,当然m的值设置的越大集群中校验节点越多,但是可使用空间越小,这个模式让我想起来一个比较镜像经典场景就是平安城市中的视频监控场景,对于这种性能要求不高,容量需求大还是,文件存储非常合适。
最后glusterfs的配置命令还有好多例如
gluster volume heal <VOLNAME> 自愈
gluster volume rebalance <VOLNAME> start/status/stop 重新平衡卷
gluster volume add-brick <VOLNAME> <NEW_BRICK>... 卷扩容
gluster volume remove-brick <VOLNAME> <BRICK>... start/status/commit 卷缩容
gluster volume set <VOLNAME> <OPTION> <VALUE> 设置卷选项
好了gluster就测试到这里了,个人还是比较这个分布式文件系统,第一个是简单,第二个是单一就是存储文件存储,第三个是轻量自己在家里就可以使用几个pc就可以组一个gluster可以存储一些照片视频之类的~