论文部分内容阅读
可用性(Availability)是评价计算机系统提供服务能力的重要指标,特别是应用于一些特殊环境下的关键任务计算机,系统一旦出现服务失效可能产生灾难性后果,因此如何确保其可用性这一问题备受关注。关键任务计算机故障发生的小概率性,决定了其不可能通过长时间的等待、日志观察等方式来获取测试数据,因此,人为地使系统发生故障,并回收测试结果已成为可用性测评的主要途径。故障注入技术作为可用性测评领域中的重要组成部分得到了广泛应用,但现有的单一故障注入工具无法满足关键任务计算机可靠性的更高要求。因此,本文提出了用于关键任务计算机可用性测评的事件注入系统,主要内容包括以下三个部分:(1)基于组合排队的事件注入模型;(2)基于程序局部性原理可调整的冲击注入方法AIIM (Adjusted Impact Injection Method) ; (3)面向关键任务计算机事件注入系统的设计与实现。首先,在分析了现有的故障注入工具无法满足关键任务计算机全面测评的基础后,本文提出了一种基于组合排队的事件注入模型。通过开关控制,该模型不仅可以实现系统单一属性测试,而且可以通过组合的注入方式实现系统的多角度测试。通过在事件注入器中引入计时器,还可以实现注入系统的时序控制,意在对被测试关键任务计算机达到全面的评测。其次,针对内存地址空间,现有的注入方法存在注入成功率低和资源消耗高等问题,本文提出了一种基于程序局部性原理的AIIM注入方法,通过动态调整单次实验的冲击次数,可在保证一定事件注入成功率的同时,达到节约资源的目的。最后,采用模块化设计思想对事件注入系统进行详细地设计与实现,其主要包括寄存器事件注入工具、内存事件注入工具和I/O事件注入工具。其中内存事件注入工具包括内存改写事件注入功能模块、用于并行MPI程序的栈溢出事件注入功能模块和内存泄露事件注入功能模块。I/O事件注入工具包括读指针偏移事件注入功能模块和写指针偏移事件注入功能模块。通过对总控制模块设计,可以实现自动化测试目的。