Fedora 19 Kdump 自动化测试套件 中期报告

来源:互联网 发布:ubuntu 16.04 主题包 编辑:程序博客网 时间:2024/05/16 18:57

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">Fedora 19 Kdump 自动化测试套件的开发到今天已经进行了一半时间了,在这一个月之间,开发出了一个雏形。虽然功能不完善,虽然架构设计仍然有很多需要完善的地方,但总算有一个最最基本的功能。下面对本软件的架构设计以及目前版本的使用方式做一简单介绍。</span>

架构设计

本测试套件主要目的是完成kdump在Fedora19上面的自动化测试工作,程序被运行后无需用户干预即可完成对Kdump的包括环境检测、系统参数检测、Kdump的配置、crash的触发、vmcore的收集等工作。

套件的流程为:
一、环境测试
    1、检测相关软件是否安装,包括kexec-tools、crash、kernel-debuginfo,其中第三个为必选,前两个可选,前两个未安装时给出警告,第三个未安装时直接报错退出。
    2、检测grub2中是否包含crashkernel参数,如果不包含则添加此参数,并将留给Kdump的内存值设置为128M。
    3、添加完成后为使参数生效,必须重启系统。为了解决系统重启后套件仍可以自动完成测试的功能,在此采用编写系统服务的方法。在判断crashkernel参数时,若系统并未包含此参数,则添加参数并将服务设为开机自启动。但因为这样可能造成系统每次开机都要执行此服务,而造成反复出发系统crash,故需要在判断系统无需再次重启时将服务的开机自启动关闭。在本测试套件中,在判断系统已经添加了crashkernel启动参数后即关闭服务的开机自启动。
二、初始化
    1、将原有的kdump.conf文件移动到一个固定位置,以便用户找到原有的配置文件。
    2、从测试套件的配置文件读取相关配置,将相关配置写入新建的kdump.conf文件中,并且得到用户所需的crash方式及存储方式。之后调用相应的存储方式函数进行相关的磁盘、网络检测,条件符合之后重启kdump服务。
三、触发crash
    根据crash方式选择相应的函数进行crash触发

使用方法

目前,测试套件只实现了部分功能,有些部分是写死的,故在操作过程中需要一些人为的操作。
测试套件目前只支持sysrq-c方式的nfs网络收集镜像,功能写死在程序中。如需进行测试需要改动代码中相应的部分。

使用时需要一台远程的nfs服务器配合,用来放置产生的vmcore文件。nfs服务器的地址、目录以及需要放置vmcore文件的目录需要在storefunc/nfs.py中填写:
def nfs():    print 'testing remote server...'    nfsip = '10.33.28.9'    nfsfolder = '/nfsfolder'    storepath = '/kda'        nettest(nfsip)    f = open('/etc/kdump.conf','w')    f.write('nfs '+ nfsip +':'+nfsfolder+'\n')    f.write('path '+ storepath +'\n')
nfs的ip填写在nfsip后面,nfs共享的目录填写在nfsfolder后面,需要放置在此目录下的具体文件夹填写在storepath后面

配置完成之后即可进行测试。
运行程序时,由于需要配置程序及服务等工作较多,故编写了安装脚本setup.py。可通过运行此脚本来进行测试套件的安装。它的流程为,将服务放入相应目录,之后将程序复制到相应位置,接着为主程序ftest.py赋予可执行权限,最后建立它的软连接,可使直接运行ftest命令即可进行测试。

# cd src/# python setup.py

安装完成之后会提示安装成功,这时即可通过命令
# ftest
进行测试


在此过程中系统可能会重启。重启后不再会看到提示。只需耐心等待。几分钟后即可在nfs服务器的相应目录看到生成的vmcore

0 0
原创粉丝点击