searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

lustre并行文件系统自动测试框架auster使用介绍

2023-05-29 05:40:08
174
0

背景介绍

lustre做为成熟的并行文件系统开源项目,在代码的 lustre/test目录下提供了测试套件,使用bash脚本搭建起了lustre定制化的测试框架。参与lustre开发的人员应该熟悉并使用这一套框架,做为程序交付质量的基本防护,本文从使用者角度介绍该测试套件使用流程。

程序安装

lustre测试套件发布式打包为lustre-tests.rpm(如lustre-tests-2.15.1-1.x86_64.rpm),默认相关文件安装在/usr/lib64/lustre目录,需要在服务端集群和客户端都安装上测试程序包。测试环境搭建步骤:

1. 所有节点安装好测试套件lustre-tests.rpm
2. 关闭selinux、防火墙,做互信访问
3. 所有节点安装pdsh
4. 所有节点创建用户runas,uid 500, gid 500
5. 集群节点需要安装的工具:yum install tar psmisc bc net-tools

如下截图所示,auster 是测试框架执行的入主脚本。

执行测试

在做为客户端角色的机器执行测试程序,先切换到/usr/lib64/lustre/tests/ 目录, tests目录的子目录cfg下为测试执行的环境配置文件,通过bash环境变量的形式指定用于测试的mgs/mds/ost服务器节点等信息,默认有local.sh和ncli.sh两个配置文件。测试时需要根据实际的测试环境修改配置,如下配置指定使用3个mds角色和4个ost角色进行测试。

[root@ctos tests]# cat cfg/my.sh 
# MDS and MDT configuration
MDSCOUNT=3

mds_HOST="ctos"
MDSDEV1="/dev/sdc"

mds2_HOST="ctos"
MDSDEV2="/dev/sdd"

mds3_HOST="ctos"
MDSDEV3="/dev/sde"

#mds4_HOST="ctos"
#MDSDEV4="/dev/sdf"

# OSS and OST configuration
OSTCOUNT=4

ost_HOST="ctos1"
OSTDEV1="/dev/sdb"

ost2_HOST="ctos1"
OSTDEV2="/dev/sdc"

ost3_HOST="ctos1"
OSTDEV3="/dev/sdd"

ost4_HOST="ctos1"
OSTDEV3="/dev/sde"

# Client configuration
#CLIENTCOUNT=1
#CLIENT1="ctos2"

OSTSIZE=5368709120

#VERBOSE=true
PDSH="/usr/bin/pdsh -S -Rssh -w"
SHARED_DIRECTORY=${SHARED_DIRECTORY:-/opt/testing/shared}
. /usr/lib64/lustre/tests/cfg/ncli.sh

使用如下命令实际执行测试,-f指定前述my.sh做为配置输入,-d指定结果输入目录,然后指定执行sanity用例集中的 0a用例,也可以一次指定执行用例集中所有用例。

./auster -f my -rsv -d /opt/results/ sanity --only 0a

测试结果分析

执行过程回显用例信息,统计执行时间

详细执行分析输入到日志文件中,针对出错的用例还会自动搜集Lustre 日志(lctl dk命令)

测试用例集

如下为当前归档到代码库的测试用例集。

脚本文件 维护状态 描述Test
conf-sanity.sh Active     用于验证配置的单元测试集,用不同的配置执行Lustre以确保程序在不常见配置场景正常执行。
dne_sanity.sh Inactive   同时在不同的目录并发执行sanity
insanity.sh Active 用于验证并发多种错误场景
large-lun.sh Active Large LUN 测试
large-scale.sh Active 验证基于版本的恢复  
lfsck.sh   Deprecated 已替换为sanity-lfsck
lfsck-performance.sh Active     测试以下lfsck性能: 压力场景lfsck,创建时lfsck,备份和恢复,并行从1.8版本升级
liblustre                 Deprecated 连接到liblustre客户端库的测试
lustre-rsync-test.sh Active 验证 lustre_rsync (复制) 特性  
metadata-updates.sh Active 测试当多客户端创建删除文件、修改文件属性时元数据能正确更新  
mmp.sh     Active 测试多挂载保护特性(MMP)
ost-pools.sh   Active 测试OST池特性
parallel-scale.sh Active 执行功能测试(兼容性、层级读写、分散写、追加写、并行锁、属性预读),性能测试(IOR、compilebench 和 metabench)、压力测试(simul)  
parallel-scale-cifs.sh Active 测试Lustre通过Samba导出,在客户端执行并发压力compilebench, dbench, fsx, 和 iozone。需要预先在Samba服务端和客户端安装依赖包          
parallel-scale-nfs.sh Active 由parallel-scale-nfsv3.sh 和 parallel-scale-nfsv4.sh 通过指定版本的方式调用
parallel-scale-nfsv3.sh Active 在auster框架中提供nfs配置功能    
parallel-scale-nfsv4.sh Active 在auster框架中提供nfs配置功能
performance-sanity.sh Active 性能 mdsrate 测试(大文件、小文件创建、打开、删除、查询属性,10M文件目录的查询速率
posix.sh   Active     POSIX兼容性自动测试。需要在系统上预装POSIX代码。创建回环设备格式化为ext4文件系统,然后拷贝、编译执行POSIX程序。再Lustre系统执行上述步骤,比对两次结果
racer.sh     Active     通过并发创建、移动、删除一批文件等操作测试文件系统并发竞争情况
recovery-double-scale.sh Active     测试节点故障切换    
recovery-mds-scale.sh Active     节点故障测试:24小时内持续在10分钟间隔随机故障切换(MDS或OST),验证不会发生程序错误  
recovery-random-scale.sh Active     验证客户端失败不会影响其它客户端
recovery-small.sh Active     验证通信失败场景RPC回复的单元测试用例集
replay-dual.sh Active     验证服务端失败场景两个客户端恢复的单元测试集
replay-ost-single.sh Active     用于验证OST失败后恢复的测试用例        
replay-single.sh Active     用于验证MDS失败后恢复的测试用例
replay-vbr.sh Active     验证基于版本的恢复
runtests   Active     通过写数据、解挂载、挂载验证数据持久性。该用例通过关闭文件系统再挂载验证数据一致性,其他很多用例只验证了文件存在、文件大小              
sanity.sh   Active     持续集成的用例用于验证常见配置场景的操作。此用例集验证了之前发现会引起功能或数据问题的操作场景,其中的一些测试执行路径是Lustre特有的,需要使用 "lctl set_param fail_loc=X" 命令触发Lustre故障注入框架,否则会不可能或难于复现引起问题的操作场景
sanity-benchmark.sh   Active     使用简单性能基线测试测试文件系统基本功能。执行dbench, bonnie++, iozone, fsx, 和 pios
sanity-dom.sh Active     Data on MDT 特性基本用例集  
sanity-flr.sh Active     File Level Redundancy 特性基本用例集
sanity-gss.sh   Active     GSSAPI 特性测试。
sanity-hsm.sh   Active     HSM 特性基本用例集
sanity-krb5.sh Active     Kerberos  特性基本用例集
sanity-lfsck.sh   Active     lfsck 特性基本用例集        
sanity-lnet.sh Active     lnet 特性基本用例集  
sanity-pcc.sh   Active     Persistent Client Cache 特性基本用例集
sanity-pfl.sh Active     测试 Progressive File Layout 特性
sanity-quota.sh Active     测试 quota
sanity-scrub.sh Active     测试 OI scrub 功能  
sanity-sec.sh Active     测试 Lustre 角色特性,包括 UID/GID 映射
sanityn.sh   Active     通过在一个客户端将同一文件系统挂载两次,测试验证两个客户端的正常操作场景。以支持同一个脚本或程序挂载使用同一个文件系统,脚本或程序本身不需要感知分布式总局。
scrum-performance.sh Active     测试 OI scrub 性能

参考链接

1.https://wiki.lustre.org/Testing_HOWTO
2. 测试用例集

0条评论
0 / 1000
羊****林
3文章数
1粉丝数
羊****林
3 文章 | 1 粉丝
原创

lustre并行文件系统自动测试框架auster使用介绍

2023-05-29 05:40:08
174
0

背景介绍

lustre做为成熟的并行文件系统开源项目,在代码的 lustre/test目录下提供了测试套件,使用bash脚本搭建起了lustre定制化的测试框架。参与lustre开发的人员应该熟悉并使用这一套框架,做为程序交付质量的基本防护,本文从使用者角度介绍该测试套件使用流程。

程序安装

lustre测试套件发布式打包为lustre-tests.rpm(如lustre-tests-2.15.1-1.x86_64.rpm),默认相关文件安装在/usr/lib64/lustre目录,需要在服务端集群和客户端都安装上测试程序包。测试环境搭建步骤:

1. 所有节点安装好测试套件lustre-tests.rpm
2. 关闭selinux、防火墙,做互信访问
3. 所有节点安装pdsh
4. 所有节点创建用户runas,uid 500, gid 500
5. 集群节点需要安装的工具:yum install tar psmisc bc net-tools

如下截图所示,auster 是测试框架执行的入主脚本。

执行测试

在做为客户端角色的机器执行测试程序,先切换到/usr/lib64/lustre/tests/ 目录, tests目录的子目录cfg下为测试执行的环境配置文件,通过bash环境变量的形式指定用于测试的mgs/mds/ost服务器节点等信息,默认有local.sh和ncli.sh两个配置文件。测试时需要根据实际的测试环境修改配置,如下配置指定使用3个mds角色和4个ost角色进行测试。

[root@ctos tests]# cat cfg/my.sh 
# MDS and MDT configuration
MDSCOUNT=3

mds_HOST="ctos"
MDSDEV1="/dev/sdc"

mds2_HOST="ctos"
MDSDEV2="/dev/sdd"

mds3_HOST="ctos"
MDSDEV3="/dev/sde"

#mds4_HOST="ctos"
#MDSDEV4="/dev/sdf"

# OSS and OST configuration
OSTCOUNT=4

ost_HOST="ctos1"
OSTDEV1="/dev/sdb"

ost2_HOST="ctos1"
OSTDEV2="/dev/sdc"

ost3_HOST="ctos1"
OSTDEV3="/dev/sdd"

ost4_HOST="ctos1"
OSTDEV3="/dev/sde"

# Client configuration
#CLIENTCOUNT=1
#CLIENT1="ctos2"

OSTSIZE=5368709120

#VERBOSE=true
PDSH="/usr/bin/pdsh -S -Rssh -w"
SHARED_DIRECTORY=${SHARED_DIRECTORY:-/opt/testing/shared}
. /usr/lib64/lustre/tests/cfg/ncli.sh

使用如下命令实际执行测试,-f指定前述my.sh做为配置输入,-d指定结果输入目录,然后指定执行sanity用例集中的 0a用例,也可以一次指定执行用例集中所有用例。

./auster -f my -rsv -d /opt/results/ sanity --only 0a

测试结果分析

执行过程回显用例信息,统计执行时间

详细执行分析输入到日志文件中,针对出错的用例还会自动搜集Lustre 日志(lctl dk命令)

测试用例集

如下为当前归档到代码库的测试用例集。

脚本文件 维护状态 描述Test
conf-sanity.sh Active     用于验证配置的单元测试集,用不同的配置执行Lustre以确保程序在不常见配置场景正常执行。
dne_sanity.sh Inactive   同时在不同的目录并发执行sanity
insanity.sh Active 用于验证并发多种错误场景
large-lun.sh Active Large LUN 测试
large-scale.sh Active 验证基于版本的恢复  
lfsck.sh   Deprecated 已替换为sanity-lfsck
lfsck-performance.sh Active     测试以下lfsck性能: 压力场景lfsck,创建时lfsck,备份和恢复,并行从1.8版本升级
liblustre                 Deprecated 连接到liblustre客户端库的测试
lustre-rsync-test.sh Active 验证 lustre_rsync (复制) 特性  
metadata-updates.sh Active 测试当多客户端创建删除文件、修改文件属性时元数据能正确更新  
mmp.sh     Active 测试多挂载保护特性(MMP)
ost-pools.sh   Active 测试OST池特性
parallel-scale.sh Active 执行功能测试(兼容性、层级读写、分散写、追加写、并行锁、属性预读),性能测试(IOR、compilebench 和 metabench)、压力测试(simul)  
parallel-scale-cifs.sh Active 测试Lustre通过Samba导出,在客户端执行并发压力compilebench, dbench, fsx, 和 iozone。需要预先在Samba服务端和客户端安装依赖包          
parallel-scale-nfs.sh Active 由parallel-scale-nfsv3.sh 和 parallel-scale-nfsv4.sh 通过指定版本的方式调用
parallel-scale-nfsv3.sh Active 在auster框架中提供nfs配置功能    
parallel-scale-nfsv4.sh Active 在auster框架中提供nfs配置功能
performance-sanity.sh Active 性能 mdsrate 测试(大文件、小文件创建、打开、删除、查询属性,10M文件目录的查询速率
posix.sh   Active     POSIX兼容性自动测试。需要在系统上预装POSIX代码。创建回环设备格式化为ext4文件系统,然后拷贝、编译执行POSIX程序。再Lustre系统执行上述步骤,比对两次结果
racer.sh     Active     通过并发创建、移动、删除一批文件等操作测试文件系统并发竞争情况
recovery-double-scale.sh Active     测试节点故障切换    
recovery-mds-scale.sh Active     节点故障测试:24小时内持续在10分钟间隔随机故障切换(MDS或OST),验证不会发生程序错误  
recovery-random-scale.sh Active     验证客户端失败不会影响其它客户端
recovery-small.sh Active     验证通信失败场景RPC回复的单元测试用例集
replay-dual.sh Active     验证服务端失败场景两个客户端恢复的单元测试集
replay-ost-single.sh Active     用于验证OST失败后恢复的测试用例        
replay-single.sh Active     用于验证MDS失败后恢复的测试用例
replay-vbr.sh Active     验证基于版本的恢复
runtests   Active     通过写数据、解挂载、挂载验证数据持久性。该用例通过关闭文件系统再挂载验证数据一致性,其他很多用例只验证了文件存在、文件大小              
sanity.sh   Active     持续集成的用例用于验证常见配置场景的操作。此用例集验证了之前发现会引起功能或数据问题的操作场景,其中的一些测试执行路径是Lustre特有的,需要使用 "lctl set_param fail_loc=X" 命令触发Lustre故障注入框架,否则会不可能或难于复现引起问题的操作场景
sanity-benchmark.sh   Active     使用简单性能基线测试测试文件系统基本功能。执行dbench, bonnie++, iozone, fsx, 和 pios
sanity-dom.sh Active     Data on MDT 特性基本用例集  
sanity-flr.sh Active     File Level Redundancy 特性基本用例集
sanity-gss.sh   Active     GSSAPI 特性测试。
sanity-hsm.sh   Active     HSM 特性基本用例集
sanity-krb5.sh Active     Kerberos  特性基本用例集
sanity-lfsck.sh   Active     lfsck 特性基本用例集        
sanity-lnet.sh Active     lnet 特性基本用例集  
sanity-pcc.sh   Active     Persistent Client Cache 特性基本用例集
sanity-pfl.sh Active     测试 Progressive File Layout 特性
sanity-quota.sh Active     测试 quota
sanity-scrub.sh Active     测试 OI scrub 功能  
sanity-sec.sh Active     测试 Lustre 角色特性,包括 UID/GID 映射
sanityn.sh   Active     通过在一个客户端将同一文件系统挂载两次,测试验证两个客户端的正常操作场景。以支持同一个脚本或程序挂载使用同一个文件系统,脚本或程序本身不需要感知分布式总局。
scrum-performance.sh Active     测试 OI scrub 性能

参考链接

1.https://wiki.lustre.org/Testing_HOWTO
2. 测试用例集

文章来自个人专栏
文件系统
3 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
1
0