Centos7安装部署GlusterFS

久仰GlusterFS但是一直没有机会使用,这边因为要折腾PVE+Ceph超融合虚拟化,看着由于1块系统盘安装后还剩余大半的空间不知道怎么利用起来。

也不是没有想过做成缓存盘之类的,可是不是这是低速的机械硬盘没有加速的意义,Ceph好像又不能将目录加入到存储池里面。

看着如果要在各个节点都能访问到ISO镜像要不每台机器上面都放一份要不使用NFS之类的共享存储。但是使用NFS会有单点故障或者说其他节点就没有利用上了。

这不,在模拟搭建PVE集群的时候再次看到了GlusterFS,然后搜索发现其将数据放在一个目录下面的,这边就可以利用起剩余的系统盘了。

虽然PVE是基于Debian的理论上来说应该使用Debian来练习,但是目前没有Debian的环境,放在安装后的操作大差不差就用Centos7练习练习。

1、在三个节点都安装glusterfs

yum install centos-release-gluster

yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

2、配置 GlusterFS 集群:

启动 glusterFS

systemctl start glusterd.service

systemctl enable glusterd.service

systemctl status glusterd.service

3、在其中一台上面添加节点


gluster peer probe worker01

gluster peer probe worker02

4、查看集群状态

gluster peer status

Number of Peers: 2

Hostname: worker01
Uuid: 770968df-a818-4c37-a780-c46e6d256dac
State: Peer in Cluster (Connected)

Hostname: worker02
Uuid: 229ef816-3f86-4d30-a413-213bad131c2e
State: Peer in Cluster (Connected)

5、创建数据存储目录

mkdir glusterfs

6、创建GlusterFS磁盘

gluster volume create test replica 2 master01:/mnt/21ce81d7-d179-4e6f-b9fb-00f6af0aed6e/glusterfs master01:/mnt/0e33d5eb-361d-4055-a4e1-431ddf9fa6ae/glusterfs worker01:/mnt/579cac69-91c3-456c-8ebb-90abafaa5995/glusterfs worker01:/mnt/9d478038-d037-43b7-980f-a6655ebaa258/glusterfs worker02:/mnt/c21d4f18-e49a-465b-b31a-898c61c9a65e/glusterfs worker02:/mnt/fc03cacb-65f7-4ad1-98e4-627308440fc5/glusterfs force

7、查看 volume 状态

gluster volume info

8、启动

gluster volume start test

上面我是为了测试以后的使用而使用了三个节点每个节点两块数据盘组成集群,然后设置2副本(3副本),但是我到时候使用就无法使用两块磁盘了,只能共用一块系统盘,但是最低副本要求要大于1,副本的数量又和磁盘块数成倍数。
所以我要不只能为了高可用设置3副本浪费两个节点的空间,要不使用分布式模式把空间全部利用起来可是这样一个节点挂了就GG了。
在节点充足的情况下最好是分布式加副本咯。

上面有个奇怪的就是,2副本每天机子两块盘,好像数据都是在一个机子上面的不同盘里面,这样不也是没有容错率???

9、设置成分布式卷

gluster volume create gfs-pool master01:/mnt/21ce81d7-d179-4e6f-b9fb-00f6af0aed6e/glusterfs/gfs-pool worker01:/mnt/9d478038-d037-43b7-980f-a6655ebaa258/glusterfs/gfs-pool worker02:/mnt/fc03cacb-65f7-4ad1-98e4-627308440fc5/glusterfs/gfs-pool force

10、挂载到目录

mount -t glusterfs master01:gfs-pool /gfsmnt/

11、gluster 性能调优

11.1、开启 指定 volume 的配额: (gfs-pool 为 volume 名称)

gluster volume quota gfs-pool enable

11.2、限制 gfs-pool 中 / (既总目录) 最大使用 80GB 空间

gluster volume quota gfs-pool limit-usage / 80GB

11.3、设置 cache 4GB

gluster volume set gfs-pool performance.cache-size 4GB

11.4、开启 异步 , 后台操作

gluster volume set gfs-pool performance.flush-behind on

11.5、设置 io 线程 32

gluster volume set gfs-pool performance.io-thread-count 32

11.6、设置 回写 (写数据时间,先写入缓存内,再写入硬盘)

gluster volume set gfs-pool performance.write-behind on

12、性能测试

yum -y install libaio-devel

yum -y install fio

12.1、创建一个 1G 的文件

time dd if=/dev/zero of=hello.txt bs=1024M count=1

12.2、4K随机写 测试

fio -ioengine=libaio -bs=4k -direct=1 -thread -rw=randwrite -size=10G -filename=1.txt -name="EBS 4KB randwrite test" -iodepth=32 -runtime=60

12.3、4K随机读 测试

fio -ioengine=libaio -bs=4k -direct=1 -thread -rw=randread -size=10G -filename=1.txt -name="EBS 4KB randread test" -iodepth=8 -runtime=60

12.4、512K 顺序写 测试

fio -ioengine=libaio -bs=512k -direct=1 -thread -rw=write -size=10G -filename=512.txt -name="EBS 512KB seqwrite test" -iodepth=64 -runtime=60

参考
linux 搭建glusterFS存储系统
https://www.cnblogs.com/tangshow/p/15930784.html

CentOS 7 安装 GlusterFS
https://www.cnblogs.com/jicki/p/5801712.html

打算在结合起k8s,这不不使用NFS存储强(一点?),这样还可以避免单节点故障导致的问题。

ChiuYut

2023年04月04日

发布者

ChiuYut

咦?我是谁?这是什么地方? Ya ha!我是ChiuYut!这里是我的小破站!