glusterfs
glusterfs是一个开源的分布式存储。可以多个服务器组成一个集群给用户提供文件存储服务。
实验准备:
①四台服务器都可以联网,用于安装glusterfs
②每台服务器两块硬盘,系统盘和数据盘,数据盘单独用于gluster存储
③四台服务器时间一致,通过ntpd服务同步
安装glusterfs-server
修改每台主机的/etc/hosts文件,方便用主机名操作
192.168.32.130 VM1 192.168.32.131 VM2 192.168.32.132 VM3 192.168.32.137 VM4
修改每台主机yum源,安装glusterfs
vi /etc/yum.repos.d/glusterfs.repo
[glusterfs] name=glusterfs baseurl=http://buildlogs.centos.org/centos/7/storage/x86_64/gluster-8/ enabled=1 gpgcheck=0
yum install -y glusterfs-server
开启服务,设置开机自启,查看状态
systemctl start glusterd
systemctl enable glusterd
systemctl status glusterd
建立连接,组成集群,glusterfs是无中心节点的分布式集群架构,只需在一台服务器上连接其他集群成员一次即可
只在vm1服务器上操作
gluster peer probe vm2 gluster peer probe vm3 gluster peer probe vm4 # 可以用ip,主机名,或主机别名
检查集群状态
gluster peer status
如果连接有问题,可以用下边的命令先断开连接,在重新加入集群
gluster peer detach vm3
在所有成员服务器上准备存储目录,这里把每个服务器上的/data/brick1作为存储目录
fdisk /dev/sdb partprobe /dev/sdb mkfs.xfs -i size=512 /dev/sdb1 mkdir -p /data echo "/dev/sdb1 /data xfs defaults 1 2" >> /etc/fstab mount -a
做到这里已经把集群内的节点都连接成功,并且每个节点都规划好了存储目录,下一步是根据不同的需求创建不同的卷
gluster的几种不同的卷类型
Distributed Glusterfs Volume
分布式卷,如果创建的卷不指定类型。默认就是这种卷,这种卷会将数据随机写入到不同节点中,没有数据冗余。一旦节点挂掉,上边的数据将丢失。空间利用率是100%
唯一的优点是方便扩容。
[root@VM1 data]# gluster volume create gv0 VM1:/data/brick2 VM2:/data/brick2 VM3:/data/brick2 VM4:/data/brick2
在所有成员服务器上查看
[root@vm2 ~]# gluster volume info gv0
启动存储卷
gluster volume start gv0
再次查看状态,由created变为started
[root@vm2 ~]# gluster volume info gv0
客户端挂载使用
yum install glusterfs glusterfs-fuse -y
mkdir /test mount -t glusterfs VM1:gv0 /test
在客户端读写操作
dd if=/dev/zero of=/test/file bs=1M count=100
Replicated Glusterfs Volume
复制卷,相比上边的分布式卷增加的数据的安全性,最少用2个节点。客户端的数据会写入到每个节点上。即使一个节点出现故障。也可以访问其他节点的数据
优点是可靠性和数据冗余,缺点是空间利用率不高
[root@VM1 /]# gluster volume create gv0 replica 4 VM1:/data/brick1 VM2:/data/brick1 VM3:/data/brick1 VM4:/data/brick1
Distributed Replicated Glusterfs Volume
分布式复制卷,这个卷使用N个节点组成一个复制卷,这些复制卷再组合成分布式卷。如果有8个节点,replica的数量是2,那么就会每2个节点组成一个复制卷,4个复制卷组成分布式卷
[root@VM1 data]# gluster volume create gv0 replica 2 VM1:/data/brick3 VM2:/data/brick3 VM3:/data/brick3 VM4:/data/brick3 force
Dispersed Glusterfs Volume
分散卷,个人把他理解为带冗余的卷。类似于raid5。根据集群成员的数量选出合适的节点(冗余块)做数据校验,可以防止单点故障,提升IO。
[root@VM1 data]# gluster volume create gv0 disperse 4 VM1:/data/brick4 VM2:/data/brick4 VM3:/data/brick4 VM4:/data/brick4
Distributed Dispersed Glusterfs Volume
分布式的带冗余卷,类似于分布式的复制卷,可扩容
创建时候如果不指定冗余块,gluster会自动计算出最佳冗余块的值
gluster volume create test-volume disperse 3 redundancy 1 server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6
共有6个节点,3个为一组组成disperse卷,然后两个disperse组成一个分布式卷,方便扩容
删除卷
先把客户端上的数据迁移,之后umount挂载的目录
umount /test
在任意集群成员服务器上停止正在运行的卷
gluster volume stop gv0
停止之后删除
gluster volume delete gv0
查看
gluster volume info