Centos7部署glasterfs详细指导

Glusterfs分布式存储

一、简介

Glusterfs是一个开源分布式文件系统,具有强大的横向扩展能力,可支持数PB存储容量和数千客户端,通过Infiniband RDMA 或Tcp/Ip 方式将许多廉价的x86 主机,通过网络互联成一个并行的网络文件系统。具有可扩展性、高性能、高可用性等特点。

Glusterfs采用可堆叠的用户空间设计,如图所示:

在这里插入图片描述

Glusterfs堆栈式结构

Glusterfs是根据fuse提供的接口实现的一个用户态的文件系统,主要包括gluster、glusterd、glusterfs和glusterfsd四大模块组成:
gluster:是cli命令执行工具,主要功能是解析命令行参数,然后把命令发送给glusterd模块执行。
glusterd:是一个管理模块,处理gluster发过来的命令,处理集群管理、存储池管理、brick管理、负载均衡、快照管理等。集群信息、存储池信息和快照信息等都是以配置文件的形式存放在服务器中,当客户端挂载存储时,glusterd会把存储池的配置文件发送给客户端。
glusterfsd:是服务端模块,存储池中的每个brick都会启动一个glusterfsd进程。此模块主要是处理客户端的读写请求,从关联的brick所在磁盘中读写数据,然后返回给客户端。
glusterfs:是客户端模块,负责通过mount挂载集群中某台服务器的存储池,以目录的形式呈现给用户。当用户从此目录读写数据时,客户端根据从glusterd模块获取的存储池的配置文件信息,通过DHT算法计算文件所在服务器的brick位置,然后通过Infiniband RDMA 或Tcp/Ip 方式把数据发送给brick,等brick处理完,给用户返回结果。存储池的副本、条带、hash、EC等逻辑都在客户端处理。

在使用glusterfs提供的存储服务之前,需要先挂载存储池,向挂载点写数据,会经过fuse内核模块传给客户端,客户端检查存储池的类型,然后计算数据所在服务器 ,最后通过socket或rdma与服务器通信,如图2所示:
在这里插入图片描述

二、环境准备(两台机器为例)

1、在每台机器的hosts中添加

192.168.16.118 glusterfs01
192.168.16.119 glusterfs02


119
在这里插入图片描述
118
在这里插入图片描述

2、安装gluster存储库资源(两台服务器均操作)

yum install centos-release-gluster
yum --enablerepo=centos-gluster*-test install glusterfs-server
systemctl enable glusterd
systemctl start glusterd
systemctl status  glusterd

118
在这里插入图片描述
119
在这里插入图片描述

3、服务器磁盘环境配置(两台服务器均操作)

每台机器上有用来做存储的磁盘/dev/sdb(如果没有也没有关系,直接用本地一个目录来测试操作)

mkfs.xfs -i size=512 /dev/sdb         #格式化
mkdir -p /test/bk1                    #创建挂载目录
cat /etc/fstab                        #永久挂载
/dev/sdb /test/bk1 xfs defaults 1 2 
mount -a                              #执行挂载命令
df  -h                                #查看是否挂载

4、没有磁盘的话,也可以用目录代替,意义一样(两台服务器均操作)

mkdir -p /u01/isi/glusterdata

5、添加节点信息(任意一台服务器操作,以118为例)

注意:在118上添加之后,在119上同样可以看到添加的节点信息,无需再次添加;若在119上操作可以看到提示已经有添加了

gluster peer probe glusterfs02

在这里插入图片描述
在这里插入图片描述

6、创建复制卷(任意一台服务器操作,以118为例)

gluster volume create volume1 replica 2 glusterfs01:/u01/isi/glusterdata/
glusterfs02:/u01/isi/glusterdata/

在这里插入图片描述

7、启动卷(任意一台服务器操作,以118为例)

gluster volume start volume1

8、查看卷信息(任意一台服务器操作,以118为例,119可以查看)

gluster volume info

在这里插入图片描述

9、创建挂载卷目录(两台服务器均操作)

mkdir /brick1

10、挂载卷(两台服务器均操作)

118

mount -t glusterfs glusterfs01:/volume1 /brick1

在这里插入图片描述
119

mount -t glusterfs glusterfs02:/volume1 /brick1

在这里插入图片描述

11、写数据测试

for i in `seq -w 1 10`; do cp -rp /var/log/messages  /brick1/copy-test-$i; done

在这里插入图片描述
然后查看/brick1目录里面的数据,同样可以在119的/brick1目录下看到这些数据,因为数据会写两份。
在这里插入图片描述

三、参考链接

https://www.cnblogs.com/bfmq/p/9990467.html
https://www.cnblogs.com/sxchengchen/p/7805667.html

四、问题汇总

1、创建卷失败

GlusterFS创建volume失败的解决方法,(* or a prefix of it is already part of a volume)

rm -rf  /u01/isi/glusterdata/.glusterfs/   						#删除数据目录下的数据
setfattr -x trusted.glusterfs.volume-id  /u01/isi/glusterdata   #清除属性信息
setfattr -x trusted.gfid  /u01/isi/glusterdata       			#清除属性信息

重新创建即可

2、常见复制卷失败

volume create: volume1: failed: Staging failed on glusterfs02. Error: The brick 
glusterfs02:/u01/isi/glusterdata is being created in the root partition. It is 
recommended that you don't use the system's root partition for storage backend. 
Or use 'force' at the end of the command if you want to override this behavior.

是因为创建的卷占用了/分区,在命令的后面加上force即可

gluster volume create volume1 replica 2 glusterfs01:/u01/isi/glusterdata/ 
glusterfs02:/u01/isi/glusterdata/ force

3、卸载过程(两台服务器均操作)

step1:卸载盘和停止卷
cd
umount /brick1/  (两台服务器均操作)                     #卸载盘
gluster volume stop volume1(任意一台服务器操作,以118为例)#停止卷

在这里插入图片描述

step2:删除卷
gluster volume delete volume1  	#删除卷
gluster volume list           	#列出集群中的所有卷
gluster volume info         	#查看集群中的卷信息
gluster volume status     	 	#查看集群中的卷状态
gluster volume status all 	    #查看集群中的卷状态

在这里插入图片描述

step3:删除peer节点
gluster peer detach glusterfs02

在这里插入图片描述

step4:停用服务
systemctl stop glusterd
systemctl disable glusterd
systemctl status glusterd

在这里插入图片描述

step5:卸载服务
yum -y remove glusterfs-server centos-release-gluster  #卸载服务
rm -rf /u01/isi/glusterdata  /brick1    #删除数据目录和挂载卷目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值