glusterfs系列-功能测试

Glusterfs是一款分布式文件系统,相对配置简单,高性能,无单点故障,适合作为基础服务打包到产品或系统中,提供文件系统服务。
本文将进行Glusterfs基本功能测试,包括数据一致性,新增节点,数据扩容,文件损坏,节点异常等(•̀⌄•́)
                              —— By Jihan


Glusterfs官方文档
Glusterfs-github

功能测试的基础是基于glusterfs系列-环境搭建的基础上进行的。如果有不明确的点,可以先阅读前面章节。
环境搭建章节已经完成:

  1. 复制卷创建
  2. 复制卷挂载到节点server1和server2

常规情况下,分布式文件系统对于数据安全性都是有一定要求,并且对可靠性也有一定要求,因此此处不单独的在测试分布式卷,而主要以复制卷为主
测试步骤是按照顺序进行的,如果想复现其中一个测试,需要查阅一下前置条件。

功能测试

数据一致性测试

前置条件:

  1. 完成环境安装
  2. 创建完成复制卷
  3. 完成节点挂载

测试步骤:

  1. 准备一批文件,这里用openssl的源码文件作为测试文件,原始文件信息:
  2. 拷贝到Server1的/gfs下:
  3. Server2的/gfs下验证server1生成的文件
  4. 比较其他渠道传输的文件和Glusterfs传输的文件是否相同

    测试证明多节点数据是一致的。

新增节点访问测试

前置条件:

  1. 完成环境安装
  2. 创建完成复制卷
  3. 完成节点挂载

测试步骤:

  1. 创建server3虚拟机:
  2. 安装Glusterfs:
  3. 将server3加入到集群中:

  4. 在server3上的/gfs下挂载rep-vol卷,并能正常访问

  5. 比较其他渠道传输的文件和/gfs的文件是否相同

    可以看到,新加入的节点,挂载点上能够正确访问集群的数据,并且数据与原始数据一致。

数据扩容测试

前置条件:

  1. 完成新增节点访问测试

测试步骤:

  1. 增加server3上的磁盘到复制卷中,并修改备份数为3
  2. 确认复制卷扩容成功:
  3. 查阅复制卷详细信息:
  4. 新增节点扩容的测盘上已经完全生成了一个备份,并且数据与原始数据保持一致。

    通过测试得出,Glusterfs复制卷在新加入扩容节点后,会自动按照拷贝份数将对应的数据拷贝到新的扩容磁盘上。在1xn磁盘块的情况下扩容到1x(n+1)磁盘块,则会将所有数据全量备份到新磁盘块上。

文件损坏恢复测试

前置条件:

  1. 完成环境安装
  2. 创建完成复制卷
  3. 完成节点挂载

测试步骤:

  1. 在server2上,删除openssl目录下NOTES开头的文件,以及include文件夹
  2. 查看删除后的状态:
  3. Server2的/gfs下确认文件状态

    可以看到,对应的挂载点/gfs相关文件也丢失了
  4. 手动恢复相关数据:
  5. 确认server2磁盘上的数据是否恢复
  6. 确认server2挂载点/gfs数据是否恢复

    实验结果符合预期,磁盘数据丢失,导致挂载点数据丢失,可以通过手动恢复,恢复挂载点和测盘数据。

坏磁盘更换测试

前置条件:

  1. 完成数据扩容测试

测试步骤:

  1. 假设server2上的磁盘损坏,删除server2上的磁盘块(由于磁盘上的数据会丢失,这里需要强制执行):
  2. 确认当前卷状态:

    可以看到,复制卷已经变成双备份了,并且server2的磁盘块已经删除了。
  3. Server2上从磁盘块数据确认:

    Server2的磁盘块上依旧保留删除前的数据
  4. Server2挂载点数据情况:

    Server2上挂载点的数据正常,并且创建了一个新文件bb,也能在其他节点上同步。
  5. Server2加入新的磁盘块rep1(加入时自动恢复数据,数据恢复有一定时间):
  6. 检查server2磁盘块数据:
  7. 检查server2挂载点数据:

测试结果显示,节点测盘损坏后,可进行更换,并且更换后能良好的恢复相关数据。
更换磁盘块,使用gluster vol replace-brick命令会更好

节点损坏影响测试

前置条件:

  1. 完成新增节点访问测试

测试步骤:

  1. 关闭server3虚拟机,模拟节点损坏
  2. 确定server2上挂载点读写情况:
  3. 确定server1上挂载点读写情况:

    测试结果,当某个节点挂掉的时候,其他两个节点仍然能够正常工作,挂载点读写正常。

节点重启测试

前置条件:

  1. 完成新增节点访问测试

测试步骤:
重启前提,需要先关闭server3,请先完成上面的节点损坏影响测试

  1. 启动server3,并查看状态(注意,需要提前配置开机卷挂载配置):
  2. Server3挂载点数据情况:
  3. Server3的磁盘块数据情况:
  4. Server3挂载点数据读写测试:

    测试结果表明,已加入的节点重启后,能自动加入到集群中,并且能够自动恢复相关数据,不需要手动恢复处理。

节点更换测试

前置条件:

  1. 完成新增节点访问测试

测试步骤:

  1. 关闭server1,将server1作为被更换节点
  2. 创建节点server4,并安装Glusterfs:
  3. 移除server1的磁盘块和server1节点:

  4. 移除后,剩余节点工作状态:
  5. 加入server4节点,并且把server4上的磁盘块加入到卷

  6. 在server4上增加复制卷的挂载点:
  7. 确认server4的数据正确性:


    测试结果表明,节点损坏在复制卷的情况下,可以友好更换,并且更换后会自动进行数据同步。

系列文章

glusterfs系列-初探
glusterfs系列-环境搭建
glusterfs系列-功能测试
glusterfs系列-性能测试方法

-------------本文结束感谢您的阅读-------------