一、简介
GlusterFS是一个可扩展的分布式文件系统,适用于数据密集型任务,例如:云存储和媒体流等文件的存储。
它可以将多个服务器的磁盘存储资源整合到一个全局名称空间中,形成一个大的磁盘资源池统一进行数据的存储和管理。
GlusterFS是免费的开源软件,可以利用常见的现成硬件来进行GlusterFS系统的搭建。
二、安装
准备三台node节点,关闭防火墙,分别配置hostname,因为后面信任池需要使用主机名(图片中的k8s主机名请是我之前搭建k8s使用的,请忽略。自己定义即可),之后安装启动即可
systemctl stop firewalld ##生产环境请勿使用
systemctl disable firewalld
1#设置hostanme
hostnamectl set-hostname glu_node1 #第一台node
hostnamectl set-hostname glu_node2 #第二台node
hostnamectl set-hostname glu_node3 #第三台node
2#安装glusterfs包
每台node节点都需要执行下面安装命令
yum -y install centos-release-gluster #如果找不到请更换阿里yum源
yum -y install glusterfs-server
systemctl start glusterd #启动glusterfs
三、分区格式化
为每个节点添加单独一块硬盘分区,也可以在系统安装时提前分好区,我在每个node上添加了一块10G硬盘用作glusterfs集群使用,之后分区格式化挂载等
可以从上图看到新增加的硬盘已经被认到了,接下来分区格式化
fdisk /dev/sdb
依次按n、回车、回车、回车、w保存退出即可
分区后就能看到多出一个sdb1的分区,我们来格式化
格式化sdb1分区
mkfs.xfs /dev/sdb1
四、挂载、添加信任池
在glusterfs中,只有加入到信任池中的node节点才能互相通信,所以让我们把3个node节点加到一起吧,只需要任意一台node上操作就可以
#比如在node1上面,只需要添加node2,node3即可
gluster peer probe glu_node2
gluster peer probe glu_node3
#查看信任池信息
gluster peer status
可以看到另外两台node节点已经和本机已经为Connected状态了
下面来为三台node创建属于他们自己的共享空间,也就是将刚刚分区进行挂载
在每台node节点执行以下命令
mkdir -p /data/brick1
echo '/dev/sdb1 /data/brick1 xfs defaults 1 2' >> /etc/fstab
mount -a && mount | grep sdb1
已经可以看到新分区挂载到了/data/brick1下面了,brick1将作为我们gluster集群的存储空间
在所有节点上执行以下命令:
mkdir -p /data/brick1/gv0 #创建存储空间目录
在任意单个节点上执行以下命令:
gluster volume create gv0 replica 3 glu_node1:/data/brick1/gv0 glu_node2:/data/brick1/gv0 glu_node3:/data/brick1/gv0 #创建一个复制卷,包含3个brick分别是三台node的gv0目录
gluster volume start gv0 #启动gv0卷
#volume start: gv0: success
gluster volume info #查看卷信息
##如果挂载成功即可看到下面信息
Volume Name: gv0
Type: Replicate
Volume ID: f25cc3d8-631f-41bd-96e1-3e22a4c6f71f
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: glu_node1:/data/brick1/gv0
Brick2: glu_node2:/data/brick1/gv0
Brick3: glu_node3:/data/brick1/gv0
Options Reconfigured:
transport.address-family: inet
五、测试
使用本地挂载测试
mount -t glusterfs glu_node1:/gv0 /mnt #将本地mnt当做客户端 挂载到任意一台node的gv0目录
cp /etc/passwd /mnt/ ##测试复制卷
接下来就会发现复制卷发挥了作用,三台node的gv0目录下均存在passwd文件
六、常用卷类型
1.分布式卷
2.复制卷
3.分布式复制卷
4.分散卷
5.分布式分散卷
可以参考官方:https://docs.gluster.org/en/latest/Administrator-Guide/Setting-Up-Volumes/