久仰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日