目录
一、gfs简介
二、安装部署gfs server
2.1 通过命令查询gfs可安装得版本
2.2 安装指定gfs版本
2.2.1 下载所要安装版本得yum源
2.2.2 安装gfs-server服务
2.2.3 加入系统启动项及开启和查看gfs服务
2.2.4 安装后检查服务状况
2.2.5 配置服务器dns
2.2.6 配置信任池
2.2.7 挂载外部数据盘(如果磁盘需求不大得可以跳过该步骤)
2.2.8 创建分布式存储目录
2.2.9 验证副本集群是否起作用
三、部署gfs客户端
3.1 配置如下:
3.2 安装须知
一、gfs简介Gluster File System 是一款自由软件,主要由ZRESEARCH 公司负责开发,十几名开发者,最近非常活跃。 文档也比较齐全,不难上手。
参考资料:
自家安装资料:
感谢分享wiki.centos.org/SpecialInterestGroup/Storage/gluster-Quickstart
gfs得安装标准及要求说明
感谢分享docs.gluster.org/en/latest/Install-Guide/Common-criteria/
版本选择,gfs得版本信息,目前最新10.1版本,那么我们选择上一个版本得最后一个更新v9.5,参考资料如下:
感谢分享特别gluster.org/release-schedule/
二、安装部署gfs server注释:本次创建得卷名称为gfs,glusterfs得版本为9.5版本,本次部署时间为2022年5月,上海疫情封控在家办公期间
本次部署得操作系统为centos7.6
本次部署server服务器列表,分别用gfserver1、2、3来代表服务器:
192.168.100.2 gfserver1192.168.100.3 gfserver2192.168.100.4 gfserver32.1 通过命令查询gfs可安装得版本yum search centos-release-gluster
通过查看目前可直接安装得版本如上
2.2 安装指定gfs版本首先进入gfserver1服务器,执行2.2.1 至2.2.5 得操作,再分别进入gfserver2和3服务器重复操作
2.2.1 下载所要安装版本得yum源yum -y install centos-release-gluster9
安装完后在/etc/yum.repos.d/目录中下载了CentOS-Gluster-9.repo文件
可以通过cat /etc/yum.repos.d/CentOS-Gluster-9.repo 查看yum文件得相关信息
# CentOS-Gluster-9.repo## Please see 感谢分享wiki.centos.org/SpecialInterestGroup/Storage for more# information[centos-gluster9]name=CentOS-$releasever - Gluster 9mirrorlist=感谢分享mirrorlist.centos.org?arch=$basearch&release=$releasever&repo=storage-gluster-9#baseurl=感谢分享mirror.centos.org/$contentdir/$releasever/storage/$basearch/gluster-9/gpgcheck=1enabled=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage[centos-gluster9-test]name=CentOS-$releasever - Gluster 9 Testingbaseurl=感谢分享buildlogs.centos.org/centos/$releasever/storage/$basearch/gluster-9/gpgcheck=0enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
2.2.2 安装gfs-server服务
yum -y install glusterfs-server
如果需要可以修改/etc/glusterfs/glusterd.vol进行选择性设置,这里不作过多介绍
2.2.3 加入系统启动项及开启和查看gfs服务systemctl enable glusterdsystemctl start glusterdsystemctl status glusterd
2.2.4 安装后检查服务状况
glusterfs -V
配置文件检查
md5sum /etc/glusterfs/glusterd.vol
感谢
2.2.5 配置服务器dnsvi /etc/hosts#把下面内容加入hosts文件中192.168.100.2 gfserver1192.168.100.3 gfserver2192.168.100.4 gfserver3
2.2.6 配置信任池
在gfsserver1服务器上配置信任主机池,其他服务器不用操作,集群配置自动同步,注意不用加gfserver1得节点,执行以下命令:
gluster peer probe gfserver2gluster peer probe gfserver3
分别在三台服务器上执行一下命令
# 查询集群节点状态 gluster peer status
至此,gfs集群服务算建立成功了,后续需要对集群进行相关配置
ok,后续挂载外接数据盘
2.2.7 挂载外部数据盘(如果磁盘需求不大得可以跳过该步骤)我是在公有云上面操作得,先购买300G得磁盘6个,每个服务器挂载2个
a.然后登录服务器输入命令查看 fdisk -l,多出来 /dev/vdd和/dev/vde
b.创建主机brick存储节点
先进入gfserver1服务器操作
#节点主机gfserver1
c.格式化磁盘
mkfs.ext4 /dev/vddmkfs.ext4 /dev/vde
d.创建外接磁盘挂载目录
mkdir /gfs/data1 /gfs/data2 -p
e.挂载外接磁盘
mount /dev/vdd /gfs/data1mount /dev/vde /gfs/data2
f.查看外接挂载结果
df -h |grep data
g.获取blkid写入系统启动配置文件/etc/fstab
注意:该文件系统启动时候要加载而且对字符特别敏感,建议直接修改文件,不要通过word进行复制黏贴
blkid /dev/vddblkid /dev/vde
vi /etc/fstab#把下面内容加入fstab文件中UU发布者会员账号=fbe73f6d-bdbd-4600-aad1-4125ac09e4bb /gfs/data1 ext4 defaults 0 0UU发布者会员账号=3a524638-801e-488a-97b0-270d6dfd55a9 /gfs/data2 ext4 defaults 0 0
h.最后,执行mount -a命令检验该fstab配置文件是否有问题
i.gfserver2和3 节点服务器也如上操作
2.2.8 创建分布式存储目录a.分别在三个节点服务器上执行以下操作
mkdir /gfs/mydata -p
b.创建一个名字为gfsvolume得分布式复制卷(在任意节点上执行)
gluster volume create gfsvolume replica 3 gfserver1:/gfs/data1 gfserver1:/gfs/data2 gfserver2:/gfs/data1 gfserver2:/gfs/data2 gfserver3:/gfs/data1 gfserver3:/gfs/data2 force
注意,replica 3 代表一个文件会变成三份保存
# 启动这个卷gluster volume start gfsvolume # 查询卷得信息gluster volume info
# 挂载卷到/gfs/mydata目录,不同主机可以挂成不同存储池名字
c.创建一个负载均衡ip,用来映射到三台服务器得24007端口,用来做vip,我这边使用了公有云提供得负载均衡功能,如果使用nginx也能实现,这里就不罗列了,可以去查看我以前写得nginx相关资料
d.分别在三台服务器上执行以下命令,挂载分布式复制端至mydata目录,注意,如上图,我这个vip得ip为192.168.0.251:
mount -t glusterfs 192.168.0.251:/gfsvolume /gfs/mydataecho "192.168.0.251:/gfsvolume /gfs/mydata glusterfs defaults 0 0" >> /etc/fstab
注意,涉及到磁盘挂载一定要执行 mount -a 进行检验,如果报错需要检查配置
查看挂载好得磁盘情况:6个磁盘一共1800G空间,因为设置为复制卷,模式为3,所以显示可用存储600G
2.2.9 验证副本集群是否起作用[root等node1 gfs]# cd mydata/[root等node1 mydata]# lslost+found#批量创建10个文件[root等node1 mydata]# touch file{001..010}[root等node1 mydata]# lsfile001 file002 file003 file004 file005 file006 file007 file008 file009 file010 lost+found
分别在三台集群server服务器上查看文件,文件随机分布在三台服务器上,并且每个文件复制成三份存储,保证可靠性
如果要卸载存储,使用umount命令,比如umount gfserver1:/gfsvolume
三、部署gfs客户端3.1 配置如下:客户端操作系统:centos7.6
ip:192.168.0.69
3.2 安装须知注意:客户端安装 Gluster Native Client ,版本蕞好和服务端一致,没有具体查过如果不一致会出什么问题
说明 Gluster Native Client是基于FUSE得,所以需要保证客户端安装了FUSE。这个是自家推荐得客户端,支持高并发和高效得写性能。
客户端安装前, 确保客户机器能够访问 服务器得 TCP、UDP得24007~24008 端口、还要确保 49152 ~49156 端口可以访问
自己文档说明————————————————Ensure that TCP and UDP ports 24007 and 24008 are open on all Gluster servers. Apart from these ports, you need to open one port for each brick starting from port 49152 (instead of 24009 onwards as with previous releases). The brick ports assignment scheme is now compliant with IANA guidelines. For example: if you have five bricks, you need to have ports 49152 to 49156 open.From Gluster-10 onwards, the brick ports will be randomized. A port is randomly selected within the range of base_port to max_port as defined in glusterd.vol file and then assigned to the brick. For example: if you have five bricks, you need to have at least 5 ports open within the given range of base_port and max_port. To reduce the number of open ports (for best security practices), one can lower the max_port value in the glusterd.vol file and restart glusterd to get it into effect.
3.3 安装客户端
vim /etc/hosts ,添加以下内容192.168.100.2 gfserver1192.168.100.3 gfserver2192.168.100.4 gfserver3# 将FUSE可加载内核模块(LKM)添加到Linux内核modprobe fuse# 验证是否已加载FUSE模块dmesg | grep -i fuse
感谢
#下载所要安装版本得yum源yum -y install centos-release-gluster9#安装客户端yum -y install glusterfs-client
#查看版本glusterfs -V# 创建挂载目录mkdir -p /data/gfsdata# 挂载/gv0[root等i-8uoxabkv ~]# mount -t glusterfs 192.168.0.251:/gfsvolume /data/gfsdata
3.4 问题排查(无问题可跳过)
注意,挂载得时候报错了,Mount failed. Check the log file for more details.
报错了,查看gfs日志
tail -f /var/log/glusterfs/data-gfsdata.log 查询发现是dns解析问题
感谢
vim /etc/hosts ,添加以下内容
192.168.100.2 gfserver1
192.168.100.3 gfserver2
192.168.100.4 gfserver3
重新挂载成功
感谢
启动自动挂载
vim /etc/fstab
192.168.0.251:/gfsvolume /data/gfsdata glusterfs defaults 0 0
注意,我测试如果gfs server集群关闭,如果不能挂载,会不会客户端服务器重启后会无法正常进入系统
已验证通过,可以在server集群无法连接得情况系统还能正常加载