高顺凯
(武汉市江夏区藏龙北路1号 武汉 430205)
面对日益严峻的信息化安全形势,在关系国计民生等重要领域的信息技术严重依赖于国外技术、产品和服务的情形下,国产化软硬件平台在党政军等关键领域正逐步得到推广应用。本文将基于目前典型的国产化软硬件平台,设计一种可靠性评测方法,用于保证主机、网络、数据库、系统软件等层面的高可用性,同时对可靠性指标[1]进行量化。在实现对国产化软硬件平台可靠性测试过程中,结合国产化软硬件自主可控的特点,充分挖掘其有效资源,采用软硬件冗余技术、测试性设计技术和故障注入技术等,实现故障检测时间和容错恢复时间等指标的量化,为优化国产化软硬件平台的可靠性提供数据支撑。
整个国产化平台可靠性测试方案以申威处理器为核心进行设计,操作系统采用中标麒麟操作系统,平台由主备节点、管理节点和测试节点组成,如图1所示。其中主备节点包含计算单元,存储单元,显示单元和网络单元,主备节点之间采用心跳检测技术和分布式复制块设备技术进行健康检测[2~3]和数据同步;测试节点负责注入软硬件故障并记录故障检测和容错恢复时间;管理单元控制主备节点中各单元的上电时序,同时接收来自测试节点的故障注入命令进行系统软硬件故障注入;平台中供电采用冗余配置,保障系统电源状态的稳定运行。
图1 可靠性测试方案设计图
在进行故障注入时,结合国产化软硬件平台自主可控的特点,通过对申威处理器硬件寄存器接口,操作系统内核源码、驱动源码和应用程序进行协议分析和代码插桩,如图2所示模拟软件故障[4]和硬件故障[5]并进行分类处理,其中:软件故障包含内核故障、驱动故障和应用程序故障;硬件故障包括内存故障和寄存器故障。
图2 故障分类图
申威平台中主备节点、管理节点和测试节点分别包含:故障注入模块、健康工作监测模块、故障分析模块、故障检测时间测试模块以及容错恢复时间测试模块。如图3所示,其中测试节点负责选择注入故障的类型[6],发送故障注入命令,同时完成故障检测时间和容错恢复时间的测试,主节点和备份节点组成被测节点,测试节点和被测节点之间通过一条专用的测试通道连接,这条通道一方面用于心跳检测,另一方面用于传递控制信息和数据信息。管理节点负责将故障注入,各节点中模块功能如下。
图3 可靠性测试功能模块工作流程图
1)故障注入模块[7]:实现将选定事件集注入到被测节点的功能,包括软件故障和硬件故障,其中软件故障包括内核故障、驱动故障和应用程序故障,上述故障通过被测节点的计算单元注入;硬件故障依据目前国产化软硬件平台的特点,包含内存故障和寄存器故障等,通过各功能单元BIT电路进行注入;
2)故障分析模块:获取测试节点故障注入命令,通过专家知识库分析故障类型,选取对应故障通过故障注入模块进行注入;
3)健康工作检测模块:健康工作检测模块[8]的原理是通过被测节点主备节点间周期性的交换心跳信息互相监视对方状态,对节点的状态进行定期的检测,当发现心跳信息异常或超时时,采取热备方式进行服务和数据的迁移工作,保证系统能够正确连续的工作;
4)故障检测时间测试模块:主要完成对故障注入到故障发现之间的时间测试,得出目标系统的故障检测时间;
5)故障恢复时间测试模块:主要完成对故障发现到故障恢复之间的时间测试,得出目标系统的故障恢复时间。
申威平台的可靠性评测方法[9]包含故障检测时间和容错恢复时间测试两部分,试验人员通过位于测试系统中的测试节点生成故障注入控制命令,故障注入控制命令被封装成命令报文经通信网络发送至管理节点,然后被管理节点解析命令报文并发送给被测节点执行相应的故障注入测试用例。在测试执行过程中,被测节点之间通过心跳链接进行监测,在故障注入后完成容错切换,同时测试节点实时监测被测节点运行状态,并记录下故障产生时间和容错恢复时间。在被测节点完成测试后,将故障注入时间与故障产生时间和容错恢复时间进行对比,最终生成测试报表。具体评测步骤如下:
步骤1:测试节点选择特定故障事件准备发送;
步骤2:测试节点将故障事件按照通信协议封装成故障注入命令报文,发送到管理节点;
步骤3:测试节点记录故障注入命令发出时间;
步骤4:测试节点记录故障产生时间;
步骤5:测试节点记录容错恢复时间;
步骤6:测试节点通过计算故障注入和故障检出记录时间差,统计出故障检测时间;
步骤7:测试节点通过计算故障检出和故障恢复记录时间差,统计出故障恢复时间;
步骤8:测试节点结束测试过程;
步骤9:管理节点接收故障注入命令,解析命令格式,通过故障检测专家知识库选取对应故障注入到被测节点;
步骤10:被测节点初始化软硬件故障注入接口;
步骤11:被测节点接收管理节点发送过来的故障注入命令;
步骤12:被测节点产生故障,测试节点利用相关报文通过健康工作检测模块检测故障产生时间;
步骤13:被测节点故障恢复,测试节点利用相关报文通过健康工作检测模块检测故障恢复时间;
步骤14:被测节点容错恢复后系统开始正常工作。
本试验挑选申威平台中典型的故障类型(覆盖CPU、内存、操作系统内核、驱动以及关键应用)进行了故障注入,通过自动化测试脚本每项测试均运行一百次,通过筛选程序剔除最高值和最低值,将剩余结果通过取均值方式进行了故障检测时间[10]和容错恢复时间的测试,记录的试验结果如表1所示。
表1 试验结果
图4 可靠性测试软件工作流程图
通过表1对故障检测时间和容错恢复时间结果进行分析,发现硬件故障(如寄存器故障和内存故障)的测试结果均优于软件故障(内核故障、驱动故障和应用程序故障)的测试结果,这是在方案设计时,硬件工作状态均由BIT电路[11~12]通过带外方式进行监控而没有任何系统开销,对比软件故障的检测更加快速高效。
本文针对目前国产化软硬件平台可靠性测试手段不足的问题,研究了一种基于国产化软硬件平台的可靠性测试系统及方法,首先通过研究硬件平台相关寄存器接口,软件平台内核源码、驱动源码和编译器的实现及工作方式,实现了软硬件平台的故障注入工作;其次通过测试性设计技术形成故障检测专家知识库,结合健康监测和数据恢复等技术实现了软硬件平台的故障检测及恢复时间的标准量化,为进一步提高国产化软硬件平台的可用性提供相关依据。
本文提出的测试方法具有一定的通用性,可在其他国产化软硬件平台进行推广应用,试验结果可用于优化软硬件测试性、可靠性相关设计,提高国产化平台可靠性和可用性水平。