用于执行状态机驱动的注入的方法和系统技术方案

技术编号:11603531 阅读:107 留言:0更新日期:2015-06-15 17:14
本发明专利技术涉及一种用于执行状态机驱动的注入的方法和系统。在此提供用于在分布式应用的选择执行点处注入故障的方法、系统和制造品。一种方法包括:监视分布式应用的多个组件中的每一个的运行时状态,以便确定在所述多个组件中的一个处触发故障注入点的一个或多个事件序列;基于所述监视,在规范中定义故障注入场景,其中所述故障注入场景包括一个或多个事件序列的描述,在所述一个或多个事件序列期间,要在一个选定事件处将预定故障注入到所述多个组件中的目标组件;以及执行在所述规范中定义的所述故障注入,以便在所述分布式应用的运行时期间执行所述预定故障的注入。

【技术实现步骤摘要】

本专利技术的各实施例一般地涉及信息技术,更具体地说,涉及分布式应用管理。
技术介绍
故障测试是分布式应用和系统的一个常见和重要的方面。但是,现有故障测试方法面临许多挑战。例如,现有方法不包括引导式和/或精确故障注入(FI)技术,这些技术使开发人员、测试人员和/或操作代理能够测试特定的场景。现有FI工具本质上是统计性的,并且需要大量注入以便获得足够的置信度和覆盖度。此外,此类FI工具不包括在并发请求的准确位置处插入故障的能力,现有FI工具也不包括将单元测试实例与精确故障注入相关联的能力。因此,需要用于在分布式应用的选择执行点和场景处插入故障的技术。
技术实现思路
在本专利技术的一个方面,提供用于在分布式应用的选择执行点处注入故障的技术。一种示例性计算机实现的方法可以包括以下步骤:监视分布式应用的多个组件中的每一个的运行时状态,以便确定在所述多个组件中的一个处触发故障注入点的一个或多个事件序列;基于所述监视,在规范中定义故障注入场景,其中所述故障注入场景包括一个或多个事件序列的描述,在所述一个或多个事件序列期间,要在一个选定事件处将预定故障注入到所述多个组件中的目标组件;以及执行在所述规范中定义的所述故障注入,以便在所述分布式应用的运行时期间执行所述预定故障的注入。本专利技术的另一个方面或其元素可以以制造品的形式实现,所述制造品有形地包含计算机可读指令,当实现所述计算机可读指令时,导致计算机执行在此描述的多个方法步骤。此外,本专利技术的另一个方面或其元素可以以装置的形式实现,所述装置包括存储器和至少一个处理器,所述至少一个处理器耦合到所述存储器并且被配置为执行所述方法步骤。更进一步,本专利技术的另一个方面或其元素可以以装置的形式实现,以便执行在此描述的方法步骤或其元素;所述装置可以包括硬件模块(多个)或硬件和软件模块的组合,其中所述软件模块存储在有形计算机可读存储介质(或多个此类介质)中。从以下将结合附图阅读的对本专利技术的示例性实施例的详细描述,本发明的这些和其它目标、特性以及优点将变得显而易见。附图说明图1是示出根据本专利技术的一个实施例的用于进行故障注入的过程流的示意图;图2是示出根据本专利技术的一个实施例的用于执行状态机驱动的注入的实例流过程的示意图;图3是示出根据本专利技术的一个方面的一个实例实施例的框图;图4是示出根据本专利技术的一个方面的一个实例实施例的框图;图5是示出根据本专利技术的一个实施例的中央协调器组件的示意图;图6是示出根据本专利技术的一个实施例的技术的流程图;以及图7是其上可以实现本专利技术的至少一个实施例的示例性计算机系统的系统图。具体实施方式如在此描述的,本专利技术的一个方面包括用于在分布式应用的选择执行点和场景处插入故障的技术。本专利技术的至少一个实施例包括在根据消息的因果事件和C标准库(LIBC)和/或系统调用定义的给定目标点处执行故障注入(FI),以及发现这些因果事件和对应的依赖性和/或序列。此外,本专利技术的一个方面包括在给定分布式应用的运行时期间,协调分布式组件以便进行故障注入。如在此进一步描述的,可以实现集中控制服务器以便监视每个分布式组件的运行时状态,跟踪当前执行流,并且判定是否满足触发故障注入的条件。本专利技术的至少一个实施例包括基于收集的执行踪迹的预注入分析,以便获得目标系统的内部语义。此类分析可以用于确定导致预定注入点(多个)的事件序列。此外,在运行时,本专利技术的至少一个实施例包括拦截函数调用(例如,LIBC)以便与给定事件序列匹配,并且指导在预定点(多个)处的故障插入。此外,本专利技术的此类实施例的一个方面包括生成FI规范,其指定用于插入故障的事件依赖性。举例来说,FI规范可以包括用于定义故障注入场景的人类可读规范。此外,驱动一个或多个FI试验可以包括从FI规范获得输入,并且在跨机器分布的目标进程处协调事件以便执行精确故障注入。图1是示出根据本专利技术的一个实施例的用于进行故障注入的过程流的示意图。步骤102包括预FI分析。此类分析可以包括在各种工作负载下剖析给定系统,以便标识FI点和事件依赖性。因此,预注入分析另外可以包括跨多个进程的流生成。步骤104包括生成FI规范。如在此详述的,FI规范定义精确故障注入场景,并且允许用户(或自动化工具)基于从在步骤102执行的预注入分析发现的事件依赖性来定义FI场景。举例来说,FI规范可能包括指示“AT Event x INJECT Fault TO Target(在事件x处将故障注入到目标)”的表项。因此,FI规范可以包括在其处和/或其间要在指定目标处注入故障的事件和/或事件序列(函数、匹配数据等)的描述。故障例如可以指示应用崩溃、网络拥塞、存储器和/或磁盘空间不足、LIBC调用返回错误、存储器、磁盘或网络损坏、配置错误等。此外,用于故障注入的指定目标可以包括特定函数、进程、虚拟机(VM)、物理机等。再次参考图1,在步骤106,开发一种工具以使FI试验自动化。举例来说,下面结合图2提供步骤106的进一步描述。步骤108包括分析在步骤106进行的试验的结果。举例来说,可以收集日志(从试验获得)并且将其加载到机构中,该机构允许用户直观地导航注入、日志文件、消息类型等。此外,本专利技术的至少一个实施例包括提供有关进行的注入的统计信息,以及提供手段以便用户查找故障场景。图2是示出根据本专利技术的一个实施例的用于执行状态机驱动的注入的实例流过程的示意图。图2中所示的流过程是经由图1中的步骤106开发的本专利技术的一个方面的实例。举例来说,图2示出为了驱动注入而经由FI工具的内部操作执行的动作序列。步骤202包括开始流过程,而步骤204包括确定操作系统(OS)已完成引导(即,没有启动新进程)。步骤206包括确定已发出“创建虚拟机(VM)”消息。如图2中所示的实例中描述的,标识为nova-api的组件(即,软件进程)将有关该任务的消息发送到nova-conductor组件。步骤208包括确定任务处于联网状态。举例来说,在OpenStack软件中,具有指示当前状态的变量task_state。注意,图2示出驱动定向故障注入的状态机的一个实例,并且图2实例示出状态机可以包括特定于被监视的分布式软件的信息。如图2中所示的实例中描述的,nova-conductor将指示task_state=“联网”的消息写入到mysql。步骤210包括使nova-net本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/CN104699601.html" title="用于执行状态机驱动的注入的方法和系统原文来自X技术">用于执行状态机驱动的注入的方法和系统</a>

【技术保护点】
一种方法,包括:监视分布式应用的多个组件中的每一个的运行时状态,以便确定在所述多个组件中的一个处触发故障注入点的一个或多个事件序列;基于所述监视,在规范中定义故障注入场景,其中所述故障注入场景包括一个或多个事件序列的描述,在所述一个或多个事件序列期间,要在一个选定事件处将预定故障注入到所述多个组件中的目标组件;以及执行在所述规范中定义的所述故障注入,以便在所述分布式应用的运行时期间执行所述预定故障的注入;其中由计算设备执行所述监视、所述定义和所述执行中的至少一个。

【技术特征摘要】
2013.12.05 US 14/0977131.一种方法,包括:
监视分布式应用的多个组件中的每一个的运行时状态,以便确定在所
述多个组件中的一个处触发故障注入点的一个或多个事件序列;
基于所述监视,在规范中定义故障注入场景,其中所述故障注入场景
包括一个或多个事件序列的描述,在所述一个或多个事件序列期间,要在
一个选定事件处将预定故障注入到所述多个组件中的目标组件;以及
执行在所述规范中定义的所述故障注入,以便在所述分布式应用的运
行时期间执行所述预定故障的注入;
其中由计算设备执行所述监视、所述定义和所述执行中的至少一个。
2.根据权利要求1的方法,其中所述一个或多个事件序列包括日志事
件序列。
3.根据权利要求1的方法,其中所述监视包括基于所收集的所述分布
式应用的执行踪迹,监视所述多个组件中的每一个的所述运行时状态。
4.根据权利要求1的方法,其中所述监视包括在多个工作负载下,监
视所述分布式应用的所述多个组件中的每一个的所述运行时状态。
5.根据权利要求1的方法,其中所述定义包括基于从所述监视发现的
一个或多个事件依赖性,定义故障注入场景。
6.根据权利要求1的方法,其中所述预定故障包括以下至少一个:应
用崩溃;网络拥塞;存储器和/或磁盘空间不足;存储器、磁盘或网络损坏;
以及配置错误。
7.根据权利要求1的方法,...

【专利技术属性】
技术研发人员:S·A·巴赛特C·M·范H·V·拉马沙米M·辛格卓昞澈唐春强王龙
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1