Glusterfs是一款分布式文件系统,相对配置简单,高性能,无单点故障,适合作为基础服务打包到产品或系统中,提供文件系统服务。
本文将进行Glusterfs基本功能测试,包括数据一致性,新增节点,数据扩容,文件损坏,节点异常等(•̀⌄•́)
—— By Jihan
Glusterfs官方文档
Glusterfs-github
序
功能测试的基础是基于glusterfs系列-环境搭建的基础上进行的。如果有不明确的点,可以先阅读前面章节。
环境搭建章节已经完成:
- 复制卷创建
- 复制卷挂载到节点server1和server2
常规情况下,分布式文件系统对于数据安全性都是有一定要求,并且对可靠性也有一定要求,因此此处不单独的在测试分布式卷,而主要以复制卷为主
测试步骤是按照顺序进行的,如果想复现其中一个测试,需要查阅一下前置条件。
功能测试
数据一致性测试
前置条件:
- 完成环境安装
- 创建完成复制卷
- 完成节点挂载
测试步骤:
- 准备一批文件,这里用openssl的源码文件作为测试文件,原始文件信息:
- 拷贝到Server1的/gfs下:
- Server2的/gfs下验证server1生成的文件
- 比较其他渠道传输的文件和Glusterfs传输的文件是否相同
测试证明多节点数据是一致的。
新增节点访问测试
前置条件:
- 完成环境安装
- 创建完成复制卷
- 完成节点挂载
测试步骤:
- 创建server3虚拟机:
- 安装Glusterfs:
- 将server3加入到集群中:
- 在server3上的/gfs下挂载rep-vol卷,并能正常访问
- 比较其他渠道传输的文件和/gfs的文件是否相同
可以看到,新加入的节点,挂载点上能够正确访问集群的数据,并且数据与原始数据一致。
数据扩容测试
前置条件:
- 完成新增节点访问测试
测试步骤:
- 增加server3上的磁盘到复制卷中,并修改备份数为3
- 确认复制卷扩容成功:
- 查阅复制卷详细信息:
- 新增节点扩容的测盘上已经完全生成了一个备份,并且数据与原始数据保持一致。
通过测试得出,Glusterfs复制卷在新加入扩容节点后,会自动按照拷贝份数将对应的数据拷贝到新的扩容磁盘上。在1xn磁盘块的情况下扩容到1x(n+1)磁盘块,则会将所有数据全量备份到新磁盘块上。
文件损坏恢复测试
前置条件:
- 完成环境安装
- 创建完成复制卷
- 完成节点挂载
测试步骤:
- 在server2上,删除openssl目录下NOTES开头的文件,以及include文件夹
- 查看删除后的状态:
- Server2的/gfs下确认文件状态
可以看到,对应的挂载点/gfs相关文件也丢失了 - 手动恢复相关数据:
- 确认server2磁盘上的数据是否恢复
- 确认server2挂载点/gfs数据是否恢复
实验结果符合预期,磁盘数据丢失,导致挂载点数据丢失,可以通过手动恢复,恢复挂载点和测盘数据。
坏磁盘更换测试
前置条件:
- 完成数据扩容测试
测试步骤:
- 假设server2上的磁盘损坏,删除server2上的磁盘块(由于磁盘上的数据会丢失,这里需要强制执行):
- 确认当前卷状态:
可以看到,复制卷已经变成双备份了,并且server2的磁盘块已经删除了。 - Server2上从磁盘块数据确认:
Server2的磁盘块上依旧保留删除前的数据 - Server2挂载点数据情况:
Server2上挂载点的数据正常,并且创建了一个新文件bb,也能在其他节点上同步。 - Server2加入新的磁盘块rep1(加入时自动恢复数据,数据恢复有一定时间):
- 检查server2磁盘块数据:
- 检查server2挂载点数据:
测试结果显示,节点测盘损坏后,可进行更换,并且更换后能良好的恢复相关数据。
更换磁盘块,使用gluster vol replace-brick
命令会更好
节点损坏影响测试
前置条件:
- 完成新增节点访问测试
测试步骤:
- 关闭server3虚拟机,模拟节点损坏
- 确定server2上挂载点读写情况:
- 确定server1上挂载点读写情况:
测试结果,当某个节点挂掉的时候,其他两个节点仍然能够正常工作,挂载点读写正常。
节点重启测试
前置条件:
- 完成新增节点访问测试
测试步骤:
重启前提,需要先关闭server3,请先完成上面的节点损坏影响测试
- 启动server3,并查看状态(注意,需要提前配置开机卷挂载配置):
- Server3挂载点数据情况:
- Server3的磁盘块数据情况:
- Server3挂载点数据读写测试:
测试结果表明,已加入的节点重启后,能自动加入到集群中,并且能够自动恢复相关数据,不需要手动恢复处理。
节点更换测试
前置条件:
- 完成新增节点访问测试
测试步骤:
- 关闭server1,将server1作为被更换节点
- 创建节点server4,并安装Glusterfs:
- 移除server1的磁盘块和server1节点:
- 移除后,剩余节点工作状态:
- 加入server4节点,并且把server4上的磁盘块加入到卷
- 在server4上增加复制卷的挂载点:
- 确认server4的数据正确性:
测试结果表明,节点损坏在复制卷的情况下,可以友好更换,并且更换后会自动进行数据同步。
系列文章
glusterfs系列-初探
glusterfs系列-环境搭建
glusterfs系列-功能测试
glusterfs系列-性能测试方法