CN115328814A - 基于镜像对的故障注入方法、装置、设备和存储介质 - Google Patents
基于镜像对的故障注入方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN115328814A CN115328814A CN202211253227.8A CN202211253227A CN115328814A CN 115328814 A CN115328814 A CN 115328814A CN 202211253227 A CN202211253227 A CN 202211253227A CN 115328814 A CN115328814 A CN 115328814A
- Authority
- CN
- China
- Prior art keywords
- node
- fault
- injection
- type
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000002347 injection Methods 0.000 title claims abstract description 474
- 239000007924 injection Substances 0.000 title claims abstract description 474
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004590 computer program Methods 0.000 claims description 35
- 238000011084 recovery Methods 0.000 claims description 22
- 230000003252 repetitive effect Effects 0.000 claims description 13
- 238000012216 screening Methods 0.000 claims description 9
- 125000004122 cyclic group Chemical group 0.000 claims description 5
- 238000004088 simulation Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001338 necrotic effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请涉及一种基于镜像对的故障注入方法、装置、计算机设备和存储介质。该方法包括:登录集群,获取预设镜像对记录表,预设镜像对记录表包括镜像对信息,集群包括多个节点,镜像对信息包括镜像对与关联的节点;根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点;对待故障注入节点执行故障注入,获取前端IO业务对应的当前业务情况;在当前业务情况表示前端IO业务未发生中断时,确定待故障注入节点故障注入成功。采用本方法能够基于集群中各节点的镜像对关系选择至少一个待故障注入节点,对至少待故障注入节点同时执行故障注入,节约时间,提高效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于镜像对的故障注入方法、装置、计算机设备和存储介质。
背景技术
软件测试方法中的故障注入技术被广泛用于验证软件容忍性、健壮性、安全性和可靠性测试中。故障注入是指按照选定的故障模型,人为地有意识地在目标系统中产生故障,以加速该目标系统的错误和失效的发生。通过分析目标系统对所注入故障的反应信息,可以验证容错性和故障安全等信息。
但是,目前产品设备只能支持一个节点的故障注入,通过自动化测试脚本对单节点执行故障注入命令,实现单节点的故障注入。但是实际情况中,会存在多个节点同时出现故障,通过目前的故障注入方式进行故障模拟,等到一个节点完成故障注入模拟,再进入下一节点的故障注入模拟,浪费时间。
发明内容
基于此,有必要针对上述技术问题,提供一种基于镜像对的故障注入方法、装置、计算机设备和存储介质,基于预先建立好的镜像对关系选择多个待故障注入节点,对多个待故障注入节点同时进行故障注入,节约时间,提高多个节点的故障注入效率。
一种基于镜像对的故障注入方法,该方法包括:
登录集群,获取预设镜像对记录表,预设镜像对记录表包括镜像对信息,集群包括多个节点,镜像对信息包括镜像对与关联的节点;
根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点;
对待故障注入节点执行故障注入,获取前端IO业务对应的当前业务情况;
在当前业务情况表示前端IO业务未发生中断时,确定待故障注入节点故障注入成功。
在其中一个实施例中,获取已故障注入节点恢复信息,在已故障注入节点恢复信息为已恢复时,返回根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点的步骤;直至执行故障注入次数达到预设故障注入次数阈值时,停止故障注入。
在其中一个实施例中,登录集群之前,包括:确定集群中的各节点;将各节点与相邻节点形成镜像对,组成对应的镜像对信息;根据各镜像对信息生成预设镜像对记录表。
在其中一个实施例中,根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点,包括:获取预设故障注入规则;根据预设故障注入规则获取待故障注入类型和待故障注入节点类型;根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点。
在其中一个实施例中,当待故障注入类型为单节点故障类型时,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点,包括:在待故障注入节点类型为依次注入时,根据镜像对信息中描述的节点顺序,依次确定一个节点为待故障注入节点;在待故障注入节点类型为随机注入时,根据镜像对信息随机从多个节点中选取一个节点确定为待故障注入节点。
在其中一个实施例中,当待故障注入类型为两节点同时故障类型时,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点,包括:在待故障注入节点类型为依次注入时,基于镜像对信息,依次选取两个镜像对中的非重复节点为待故障注入节点;在待故障注入节点类型为随机注入时,基于镜像对信息,随机选取两个镜像对中的非重复节点为待故障注入节点。
在其中一个实施例中,当待故障注入类型为三节点依次故障类型时,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点,包括:在待故障注入节点类型为依次注入时,基于镜像对信息中描述的节点顺序,依次选取三个节点为待故障注入节点;在待故障注入节点类型为随机注入时,基于镜像对信息随机选取三个节点为待故障注入节点。
在其中一个实施例中,当故障注入类型为单节点故障注入类型时,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点,包括:在待故障注入节点类型为依次注入时,基于镜像对信息中描述的节点顺序,依次选取一个节点确定为待故障注入节点。
在其中一个实施例中,当故障注入类型为单节点故障注入类型时,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点,包括:在待故障注入节点类型为随机注入时,基于镜像对信息随机选取一个节点为待故障注入节点。
在其中一个实施例中,在确定单节点为待故障注入节点后,还包括:检测待故障注入节点是否具备故障注入条件,当不具备故障注入条件时,则进入循环等待,直至待故障注入节点具备故障注入条件,执行对待故障注入节点执行故障注入的步骤。
在其中一个实施例中,该方法还包括:当具备故障注入条件时,则执行对待故障注入节点执行故障注入的步骤。
在其中一个实施例中,该方法还包括:在当前业务情况表示前端IO业务发生中断时,确定待故障注入节点故障注入失败。
一种基于镜像对的故障注入装置,该装置包括:
获取模块,用于登录集群,获取预设镜像对记录表,预设镜像对记录表包括镜像对信息,集群包括多个节点,镜像对信息包括镜像对与关联的节点;
筛选模块,用于根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点;
注入模块,用于对待故障注入节点执行故障注入,获取前端IO业务对应的当前业务情况;
判定模块,用于在当前业务情况表示前端IO业务未发生中断时,确定待故障注入节点故障注入成功。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
登录集群,获取预设镜像对记录表,预设镜像对记录表包括镜像对信息,集群包括多个节点,镜像对信息包括镜像对与关联的节点;
根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点;
对待故障注入节点执行故障注入,获取前端IO业务对应的当前业务情况;
在当前业务情况表示前端IO业务未发生中断时,确定待故障注入节点故障注入成功。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
登录集群,获取预设镜像对记录表,预设镜像对记录表包括镜像对信息,集群包括多个节点,镜像对信息包括镜像对与关联的节点;
根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点;
对待故障注入节点执行故障注入,获取前端IO业务对应的当前业务情况;
在当前业务情况表示前端IO业务未发生中断时,确定待故障注入节点故障注入成功。
上述基于镜像对的故障注入方法、装置、计算机设备和存储介质,通过集群中的预设镜像对记录表中记载的各节点的镜像对信息,选取至少一个待故障注入节点,对选取出来的待故障注入节点执行故障注入,通过前端IO业务在执行故障注入时的当前业务情况,如果未发生终端,则说明此次待故障注入节点的故障注入成功。因此,基于集群中各节点的镜像对关系选择至少一个待故障注入节点,对至少一个待故障注入节点同时执行故障注入,无需等待一个节点完成故障注入模拟后,再进行下一节点的故障注入模拟,可同时执行多个待故障注入节点的故障注入模拟,节约时间,提高多节点故障注入效率,而且还能够应对实际应用中可能会出现多节点故障的情况,进一步地还能通过前端IO是否中断来判定此次故障恢复是否存在问题,进而提高多节点故障注入的可靠性。
附图说明
图1为一个实施例中基于镜像对的故障注入方法的应用环境图;
图2为一个实施例中基于镜像对的故障注入方法的流程示意图;
图3为一个实施例中基于镜像对的故障注入方法的流程示意图;
图4为一个实施例中基于镜像对的故障注入方法的流程示意图;
图5为一个实施例中待故障注入节点确定步骤的流程示意图;
图6为一个实施例中基于镜像对的故障注入装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于镜像对的故障注入方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。其中,服务器104中可包括多个控制器,每一控制器可看成是一节点。
具体地,终端102可发起登录集群请求至服务器104,服务器104登录集群,获取预设镜像对记录表,预设镜像对记录表包括镜像对信息,集群包括多个节点,镜像对信息包括镜像对与关联的节点,根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点,对待故障注入节点执行故障注入,获取前端IO业务对应的当前业务情况,在当前业务情况表示前端IO业务未发生中断时,确定待故障注入节点故障注入成功。
在一个实施例中,如图2所示,提供了一种基于镜像对的故障注入方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,登录集群,获取预设镜像对记录表,预设镜像对记录表包括镜像对信息,集群包括多个节点,镜像对信息包括镜像对与关联的节点。
其中,这里的集群是指由多个节点组成的群体,节点可以是控制器,例如,一个机箱中四个控制器,则机箱可以为一集群,控制器为一节点。其中,各节点与相邻的节点可形成镜像对关系,得到预设镜像对记录表。也就是说,预设镜像对记录表记录各镜像对信息,各镜像对信息包括镜像对以及关联的节点,可以理解为,镜像对信息包括节点与相邻节点的缓存数据形成镜像对。
例如集群中的四个节点:node1,node2,node3,node4,组成四个镜像对为(node1,node2)、(node2,node3)、(node3,node4),(node4,node1),这四个镜像对信息组成预设镜像对记录表。
其中,预设镜像对记录表可以预先根据实际业务需求、实际产品需求或实际应用场景建立集群中各节点对应的镜像对信息。
具体地,通过触发生成集群登录请求,根据集群登录请求,获取预先设置好的预设镜像对记录表,预设镜像对记录表包括镜像对信息,其中集群包括多个节点,镜像对信息包括镜像对与关联的节点。也就是说,两个节点的缓存数据形成镜像管理,即使其中一个节点出现故障或者坏死,形成镜像对的另一个节点可继续对外提供服务。
步骤204,根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点。
其中,预设镜像对记录表中记载了各节点之间的镜像对信息,可以根据预设镜像对记录表中描述的各镜像对信息从集群中的多个节点中确定待故障注入节点。其中,待故障注入节点的数目可以为至少一个,具体可以根据预设故障注入规则和各镜像对信息确定得到。其中,预设故障注入规则是预先设置好的故障注入规则,包括但不限定于待故障注入类型、待故障注入节点类型,所谓待故障注入类型是待故障注入节点的具体数量,待故障注入节点类型是待故障注入节点是否随机或依次。因此,可以通过预设故障注入规则以及预设镜像对记录表中的各镜像对信息从多个节点中确定待故障注入节点。
步骤206,对待故障注入节点执行故障注入,获取前端IO业务对应的当前业务情况。
具体地,发送故障注入命令至待故障注入节点,待故障注入节点接收到故障注入命令后,根据故障注入命令对待故障注入节点执行故障注入,其中,在待故障注入节点执行故障注入的过程时,获取前端IO业务对应的当前业务情况。具体是,获取前端IO业务在待故障注入节点执行故障注入时的业务情况,即当前业务情况。其中当前业务情况包括中断和未终端。
步骤208,在当前业务情况表示前端IO业务未发生中断时,确定待故障注入节点故障注入成功。
具体地,通过当前业务情况确定前端IO业务未发生中断时,说明前端IO业务未受到故障注入的影响,因此,可以确定此次待故障注入节点的故障注入成功。反之,通过当前业务情况确定前端IO业务发生中断时,说明前端IO业务受到故障注入的影响,因此,可以确定此次待故障注入节点的故障注入失败。
上述基于镜像对的故障注入方法中,通过集群中的预设镜像对记录表中记载的各节点的镜像对信息,选取至少一个待故障注入节点,对选取出来的待故障注入节点执行故障注入,通过前端IO业务在执行故障注入时的当前业务情况,如果未发生终端,则说明此次待故障注入节点的故障注入成功。因此,基于集群中各节点的镜像对关系选择至少一个待故障注入节点,对至少一个待故障注入节点同时执行故障注入,无需等待一个节点完成故障注入模拟后,再进行下一节点的故障注入模拟,可同时执行多个待故障注入节点的故障注入模拟,节约时间,提高多节点故障注入效率,而且还能够应对实际应用中可能会出现多节点故障的情况,进一步地还能通过前端IO是否中断来判定此次故障恢复是否存在问题,进而提高多节点故障注入的可靠性。
在一个实施例中,如图3所示,上述基于镜像对的故障注入方法还包括:
步骤302,获取已故障注入节点恢复信息,在已故障注入节点恢复信息为已恢复时,返回根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点的步骤。
步骤304,直至执行故障注入次数达到预设故障注入次数阈值时,停止故障注入。
其中,对待故障注入节点执行故障注入后,待故障注入节点就变成了已故障注入节点,已故障注入节点在被执行故障注入后,经过一段时间后会恢复,得到已故障注入节点恢复信息。即,已故障注入节点恢复信息是体现已故障注入节点是否恢复的情况。
具体地,获取已故障注入节点对应的已故障注入节点恢复信息,通过已故障注入节点恢复信息确定该节点是否已经恢复,如果恢复了,则可以返回根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点的步骤,进行下一个节点的故障注入,直至执行故障注入次数达到预设故障注入次数阈值,停止故障注入。其中,预设故障注入次数阈值可以根据实际业务需求、实际产品需求或实际应用场景确定得到。
在一个实施例中,如图4所示,登录集群之前,包括:
步骤402,确定集群中的各节点。
步骤404,将各节点与相邻节点形成镜像对,组成对应的镜像对信息。
步骤406,根据各镜像对信息生成预设镜像对记录表。
具体地,在登陆集群之前,可以进行一些预处理,首先,统计该集群中的所有节点,将当前节点与相邻节点形成镜像对,当前节点与相邻节点的缓存数据形成镜像对,组成对应的镜像对信息。集群中所有节点对应的镜像对信息组成预设镜像对记录表。也就是说,预设镜像对记录表中记载了集群中所有节点对应的镜像对信息。在一个实施例中,确定集群中的各节点具体为:统计集群中的各节点。
在一个实施例中,将各节点与相邻节点形成镜像对,组成对应的镜像对信息,包括:确定当前节点,将当前节点与相邻节点形成镜像对,当前节点的缓存数据与相邻节点的缓存数据形成镜像对,得到对应的镜像对信息。
其中,当前节点是集群中各节点中的任一节点,相邻节点是当前节点的相邻的节点。
例如,集群中包括4个节点,分别为:node1,node2,node3,node4,组成四个镜像对为(node1,node2)、(node2,node3)、(node3,node4),(node4,node1),如node1为当前节点,node2为其相邻节点,node1与node2形成镜像对,node1的缓存数据与node2的缓存数据形成镜像对,组成镜像对信息。而这四个镜像对生成预设镜像对记录表。
在一个实施例中,如图5所示,根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点,包括:
步骤502,获取预设故障注入规则。
步骤504,根据预设故障注入规则获取待故障注入类型和待故障注入节点类型。
步骤506,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点。
其中,预设故障注入规则是提前设置好的节点的故障注入的执行规则,预设故障注入规则包括待故障注入类型和待故障注入节点类型,待故障注入类型是体现需要进行故障注入节点的数量,而待故障注入节点类型是体现故障注入节点的顺序,可根据实际业务需求、实际产品需求或实际应用场景进行设置得到。
例如,可以通过以下步骤来设置预设故障注入规则,包括:
1)将集群以及当前测试环境中所有的节点信息配置到自动化平台或者自动化脚本可读取的配置文件中,这样在执行自动化用例时,可读取集群和节点的基本信息,主要包括用户名、密码、登录端口,IP等,以此实现自动化脚本可远程登录测试集群或节点。
2)将待故障注入类型(--inject_type)、待故障注入节点类型(--select_type)、故障注入次数(--inject_count)、故障注入间隔时间(--inject_interval)以脚本参数的形式传入,以决定本次故障注入的场景。待故障注入类型(--inject_type)选择项取值为1-4,单节点故障(value:1,默认),两节点同时故障(value:2),三节点依次故障(value:3),两节点依次故障(value:4);待故障注入节点类型(--select_type)设置待故障注入节点是随机还是顺序,顺序取值seq(默认),随机取值为random。
具体地,获取预设故障注入规则中的待故障注入类型和待故障注入节点类型,通过待故障注入类型确定此次故障注入的节点数目,通过待故障注入节点类型确定此次故障注入的节点顺序,同时也需要结合镜像对信息从集群的多个节点中确定出至少一个待故障注入节点。
在一个实施例中,当待故障注入类型为单节点故障类型时,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点,包括:
在待故障注入节点类型为依次注入时,根据镜像对信息中描述的节点顺序,依次确定一个节点为待故障注入节点,在待故障注入节点类型为随机注入时,根据镜像对信息随机从多个节点中选取一个节点确定为待故障注入节点。
其中,当待故障注入类型为单节点故障类型,说明每次故障注入为一个节点,因此,每个执行故障注入的节点数目为一个。具体地,当待故障注入类型为单节点故障类型时,且待故障注入节点类型为依次注入时,通过镜像对信息中描述的节点顺序,可以依次确定一个节点为待故障注入节点。如果当待故障注入类型为单节点故障类型时,且待故障注入节点类型为随机注入时,可以通过镜像对信息随机从多个节点中选取一个节点确定为待故障注入节点。
例如:当对集群中单个节点多次循环注入故障时,将集群稳定初始状态时每个镜像对的第一个节点作为故障注入节点,保存到一个故障节点列表[node1,node2,node3,node4],这样可实现集群中所有节点依次注入故障和随机选取节点进行故障注入,每次故障注入完成后等待故障恢复后,再选择下一个节点进行故障注入。选取节点后,通过集群登录信息远程登录集群,然后执行故障注入命令触发故障,因为通过集群可操作每个节点,无需直接登录节点。
在一个实施例中,当待故障注入类型为两节点同时故障类型时,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点,包括:
在待故障注入节点类型为依次注入时,基于镜像对信息,依次选取两个镜像对中的非重复节点为待故障注入节点,在待故障注入节点类型为随机注入时,基于镜像对信息,随机选取两个镜像对中的非重复节点为待故障注入节点。
其中,当待故障注入类型为两节点同时故障类型时,说明每次故障注入为两个节点同时发生故障,因此,每次执行故障注入的节点数目为两个。具体地,当待故障注入类型为两节点同时故障类型,且待故障注入节点类型为依次注入时,可以通过镜像对信息,依次选取两个镜像对中的非重复节点为待故障注入节点,如果选择两个镜像对中的重复节点同时执行故障注入,则节点缓存的数据会发生丢失,因此,基于镜像对信息,依次选取两个镜像对中的非重复节点同时注入故障注入。
例如,镜像对信息为:(node1,node2)、(node2,node3)、(node3,node4),(node4,node1),则依次选取两个镜像对中的非重复节点为待故障注入节点:node1和node3。
其中,当待故障注入类型为两节点同时故障类型,且待故障注入节点类型为随机注入时,可以通过镜像对信息,随机选取两个镜像对中非重复的节点为待故障注入节点。如:镜像对信息为:(node1,node2)、(node2,node3)、(node3,node4),(node4,node1),则依次选取两个镜像对中的非重复节点为待故障注入节点:node2和node4。
其中,对两个节点同时注入故障时,需要选取不同镜像对中的两个不同的节点,通过依次或随机选取两个镜像对,然后合并两个镜像对元素并去重实现节点的选取,比如选取第一个镜像对(node1,node2)和第二个镜像对(node2,node3),进行元素合并且去重之后,得到待故障注入的两个节点为(node1,node3),等待两个节点故障恢复后再进行下一次的节点选取。选取节点后,调用两个线程分别远程登录两个节点,对节点同时下发故障注入命令,因为要模拟同时注入故障,所以必须要登录两个节点同时执行命令。
在一个实施例中,当待故障注入类型为三节点依次故障类型时,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点,包括:
在待故障注入节点类型为依次注入时,基于镜像对信息中描述的节点顺序,依次选取三个节点为待故障注入节点,在待故障注入节点类型为随机注入时,基于镜像对信息随机选取三个节点为待故障注入节点。
其中,当待故障注入类型为三节点依次故障类型时,说明每次故障注入为三个节点,且这三个节点依次发生故障注入。但是,这三个节点是依次发生故障注入的,先对一个节点进行故障注入,再依次对剩下两个节点进行故障注入。具体地,当待故障注入类型为三节点依次故障类型,且待故障注入节点类型为依次注入时,可以通过镜像对信息中描述的节点顺序,依次选取三个节点为待故障注入节点,例如:基于镜像对信息中描述的节点顺序为:[node1,node2,node3,node4],依次选取三个节点为待故障注入节点分别为:node1、node2、node3。
进一步地,当待故障注入类型为三节点依次故障类型,且待故障注入节点类型为随机注入时,基于镜像对信息,可以随机选取三个节点为待故障注入节点。例如,镜像对信息为:(node1,node2)、(node2,node3)、(node3,node4),(node4,node1),随机选取三个节点为待故障注入节点为:node1、node3、node4。
其实,当对多个节点依次注入故障模拟四坏三这种场景时,也是将每个镜像对的第一个节点作为故障注入节点,保存到一个故障节点列表[node1,node2,node3,node4],顺序或随机的选取三个节点依次注入故障,然后恢复所有故障节点,等待恢复正常后再进行下次的节点选取;顺序选取三个节点的选取方法是以一个节点为首,再依照顺序选取它后面的两个节点,比如选取[node1,node2,node3],下次选取[node2,node3,node4],下次就是[node3,node4,node1,node2],以此循环选取节点;随机选取就按照随机算法,从节点列表中选取三个节点,比如[node1,node3,node4]。选取节点后,通过集群登录信息远程登录集群,然后执行故障注入命令触发故障,因为通过集群可操作每个节点,无需直接登录节点。
在一个实施例中,当故障注入类型为单节点故障注入类型时,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点,包括:在待故障注入节点类型为依次注入时,基于镜像对信息中描述的节点顺序,依次选取一个节点确定为待故障注入节点。
在一个实施例中,当故障注入类型为单节点故障注入类型时,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点,包括:在待故障注入节点类型为随机注入时,基于镜像对信息随机选取一个节点为待故障注入节点。
在一个实施例中,在确定单节点为待故障注入节点后,还包括:检测待故障注入节点是否具备故障注入条件,当不具备故障注入条件时,则进入循环等待,直至待故障注入节点具备故障注入条件,执行对待故障注入节点执行故障注入的步骤。
其中,故障注入条件是用来判断是否可以实现单节点执行故障注入的预设条件,可以根据实际业务需求、实际产品需求或实际应用场景预先设置得到。也就是说,对一个节点注入故障时,为了不中断前端IO业务,需要判定此节点是否具备注入故障的条件,若不可注入故障,则进行循环等待,一直等待到此节点可注入故障位置,如果要强制注入故障就会影响到前端业务离线。
在一个实施例中,当具备故障注入条件时,则执行对待故障注入节点执行故障注入的步骤。
在一个具体的实施例中,可以通过以下步骤简要通俗地解释基于镜像对的故障注入方法的步骤,具体为:
(1)将集群以及当前测试环境中所有的节点信息配置到自动化平台或者自动化脚本可读取的配置文件中,这样在执行自动化用例时,可读取集群和节点的基本信息,主要包括用户名、密码、登录端口,IP等,以此实现自动化脚本可远程登录测试集群或节点。
(2)将待故障注入类型(--inject_type)、待故障注入节点类型(--select_type)、故障注入次数(--inject_count)、故障注入间隔时间(--inject_interval)以脚本参数的形式传入,以决定本次故障注入的场景。待故障注入类型(--inject_type)选择项取值为1-4,单节点故障(value:1,默认),两节点同时故障(value:2),三节点依次故障(value:3),两节点依次故障(value:4);待故障注入节点类型(--select_type)设置故障注入节点是随机还是顺序,顺序取值seq(默认),随机取值为random。
(3)当对集群中单个节点多次循环注入故障时,将集群稳定初始状态时每个镜像对的第一个节点作为故障注入节点,保存到一个故障节点列表[node1,node2,node3,node4] ,这样可实现集群中所有节点依次注入故障和随机选取节点进行故障注入,每次故障注入完成后等待故障恢复后,再选择下一个节点进行故障注入。选取节点后,通过集群登录信息远程登录集群,然后执行故障注入命令触发故障,因为通过集群可操作每个节点,无需直接登录节点。
(4)对两个节点同时注入故障时,需要选取不同domain中的两个不同的节点,通过依次或随机选取两个domain,然后合并两个domain元素并去重实现节点的选取,比如选取domain0和domain1,故障注入的两个节点为(node1,node3),等待两个节点故障恢复后再进行下一次的节点选取。选取节点后,调用两个线程分别远程登录两个节点,对节点同时下发故障注入命令,因为要模拟同时注入故障,所以必须要登录两个节点同时执行命令。
(5)当对多个节点依次注入故障模拟四坏三这种场景时,也是将每个镜像对的第一个节点作为故障注入节点,保存到一个故障节点列表[node1,node2,node3,node4],顺序或随机的选取三个节点依次注入故障,然后恢复所有故障节点,等待恢复正常后再进行下次的节点选取;顺序选取三个节点的选取方法是以一个节点为首,再依照顺序选取它后面的两个节点,比如选取[node1,node2,node3] ,下次选取[node2,node3,node4] ,下次就是[node3,node4,node1,node2] ,以此循环选取节点;随机选取就按照随机算法,从节点列表中选取三个节点,比如[node1,node3,node4]。选取节点后,通过集群登录信息远程登录集群,然后执行故障注入命令触发故障,因为通过集群可操作每个节点,无需直接登录节点。
(6)对多个节点依次注入故障模拟四坏二这种场景,原理和流程实现同四坏三场景,只是顺序选择两个节点或者随机选取两个节点依次注入故障。
(7)对一个节点注入故障时,为了不中断前端IO业务,需要判定此节点是否具备注入故障的条件,若不可注入故障,则进行循环等待,一直等待到此节点可注入故障位置,如果要强制注入故障就会影响到前端业务离线。
(8)各种场景下的故障注入,以前端IO未中断来判定此次故障恢复没有问题,IO未之后弄表示本次故障注入可靠性验证通过;否则失败退出。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种基于镜像对的故障注入装置600,包括:获取模块602、筛选模块604、注入模块606和判定模块608,其中:
获取模块602,用于登录集群,获取预设镜像对记录表,预设镜像对记录表包括镜像对信息,集群包括多个节点,镜像对信息包括镜像对与关联的节点。
筛选模块604,用于根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点。
注入模块606,用于对待故障注入节点执行故障注入,获取前端IO业务对应的当前业务情况。
判定模块608,用于在当前业务情况表示前端IO业务未发生中断时,确定待故障注入节点故障注入成功。
在一个实施例中,基于镜像对的故障注入装置600获取已故障注入节点恢复信息,在已故障注入节点恢复信息为已恢复时,返回筛选模块604执行根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点的步骤,直至执行故障注入次数达到预设故障注入次数阈值时,停止故障注入。
在一个实施例中,基于镜像对的故障注入装置600确定集群中的各节点,将各节点与相邻节点形成镜像对,组成对应的镜像对信息,根据各镜像对信息生成预设镜像对记录表。
在一个实施例中,筛选模块604获取预设故障注入规则,根据预设故障注入规则获取待故障注入类型和待故障注入节点类型,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点。
在一个实施例中,当待故障注入类型为单节点故障类型时,筛选模块604在待故障注入节点类型为依次注入时,根据镜像对信息中描述的节点顺序,依次确定一个节点为待故障注入节点,在待故障注入节点类型为随机注入时,根据镜像对信息随机从多个节点中选取一个节点确定为待故障注入节点。
在一个实施例中,当待故障注入类型为两节点同时故障类型时,筛选模块604在待故障注入节点类型为依次注入时,基于镜像对信息,依次选取两个镜像对中的非重复节点为待故障注入节点,在待故障注入节点类型为随机注入时,基于镜像对信息,随机选取两个镜像对中的非重复节点为待故障注入节点。
在一个实施例中,当待故障注入类型为三节点依次故障类型时,筛选模块604在待故障注入节点类型为依次注入时,基于镜像对信息中描述的节点顺序,依次选取三个节点为待故障注入节点,在待故障注入节点类型为随机注入时,基于镜像对信息随机选取三个节点为待故障注入节点。
关于基于镜像对的故障注入装置的具体限定可以参见上文中对于基于镜像对的故障注入方法的限定,在此不再赘述。上述基于镜像对的故障注入装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储预设镜像对记录表。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于镜像对的故障注入方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:登录集群,获取预设镜像对记录表,预设镜像对记录表包括镜像对信息,集群包括多个节点,镜像对信息包括镜像对与关联的节点,根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点,对待故障注入节点执行故障注入,获取前端IO业务对应的当前业务情况,在当前业务情况表示前端IO业务未发生中断时,确定待故障注入节点故障注入成功。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取已故障注入节点恢复信息,在已故障注入节点恢复信息为已恢复时,返回根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点的步骤,直至执行故障注入次数达到预设故障注入次数阈值时,停止故障注入。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:确定集群中的各节点,将各节点与相邻节点形成镜像对,组成对应的镜像对信息,根据各镜像对信息生成预设镜像对记录表。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取预设故障注入规则,根据预设故障注入规则获取待故障注入类型和待故障注入节点类型,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点。
在一个实施例中,当待故障注入类型为单节点故障类型时,处理器执行计算机程序时还实现以下步骤:在待故障注入节点类型为依次注入时,根据镜像对信息中描述的节点顺序,依次确定一个节点为待故障注入节点,在待故障注入节点类型为随机注入时,根据镜像对信息随机从多个节点中选取一个节点确定为待故障注入节点。
在一个实施例中,当待故障注入类型为两节点同时故障类型时,处理器执行计算机程序时还实现以下步骤:在待故障注入节点类型为依次注入时,基于镜像对信息,依次选取两个镜像对中的非重复节点为待故障注入节点,在待故障注入节点类型为随机注入时,基于镜像对信息,随机选取两个镜像对中的非重复节点为待故障注入节点。
在一个实施例中,当待故障注入类型为三节点依次故障类型时,处理器执行计算机程序时还实现以下步骤: 在待故障注入节点类型为依次注入时,基于镜像对信息中描述的节点顺序,依次选取三个节点为待故障注入节点,在待故障注入节点类型为随机注入时,基于镜像对信息随机选取三个节点为待故障注入节点。
在一个实施例中,当故障注入类型为单节点故障注入类型时,处理器执行计算机程序时还实现以下步骤:在待故障注入节点类型为依次注入时,基于镜像对信息中描述的节点顺序,依次选取一个节点确定为待故障注入节点。
在一个实施例中,当故障注入类型为单节点故障注入类型时,处理器执行计算机程序时还实现以下步骤:在待故障注入节点类型为随机注入时,基于镜像对信息随机选取一个节点为待故障注入节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:检测待故障注入节点是否具备故障注入条件,当不具备故障注入条件时,则进入循环等待,直至待故障注入节点具备故障注入条件,执行对待故障注入节点执行故障注入的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当具备故障注入条件时,则执行对待故障注入节点执行故障注入的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在当前业务情况表示前端IO业务发生中断时,确定待故障注入节点故障注入失败。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:登录集群,获取预设镜像对记录表,预设镜像对记录表包括镜像对信息,集群包括多个节点,镜像对信息包括镜像对与关联的节点,根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点,对待故障注入节点执行故障注入,获取前端IO业务对应的当前业务情况,在当前业务情况表示前端IO业务未发生中断时,确定待故障注入节点故障注入成功。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取已故障注入节点恢复信息,在已故障注入节点恢复信息为已恢复时,返回根据预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点的步骤,直至执行故障注入次数达到预设故障注入次数阈值时,停止故障注入。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:确定集群中的各节点,将各节点与相邻节点形成镜像对,组成对应的镜像对信息,根据各镜像对信息生成预设镜像对记录表。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取预设故障注入规则,根据预设故障注入规则获取待故障注入类型和待故障注入节点类型,根据待故障注入类型、待故障注入节点类型和镜像对信息从多个节点中确定待故障注入节点。
在一个实施例中,当待故障注入类型为单节点故障类型时,处理器执行计算机程序时还实现以下步骤:在待故障注入节点类型为依次注入时,根据镜像对信息中描述的节点顺序,依次确定一个节点为待故障注入节点,在待故障注入节点类型为随机注入时,根据镜像对信息随机从多个节点中选取一个节点确定为待故障注入节点。
在一个实施例中,当待故障注入类型为两节点同时故障类型时,处理器执行计算机程序时还实现以下步骤:在待故障注入节点类型为依次注入时,基于镜像对信息,依次选取两个镜像对中的非重复节点为待故障注入节点,在待故障注入节点类型为随机注入时,基于镜像对信息,随机选取两个镜像对中的非重复节点为待故障注入节点。
在一个实施例中,当待故障注入类型为三节点依次故障类型时,处理器执行计算机程序时还实现以下步骤: 在待故障注入节点类型为依次注入时,基于镜像对信息中描述的节点顺序,依次选取三个节点为待故障注入节点,在待故障注入节点类型为随机注入时,基于镜像对信息随机选取三个节点为待故障注入节点。
在一个实施例中,当故障注入类型为单节点故障注入类型时,处理器执行计算机程序时还实现以下步骤:在待故障注入节点类型为依次注入时,基于镜像对信息中描述的节点顺序,依次选取一个节点确定为待故障注入节点。
在一个实施例中,当故障注入类型为单节点故障注入类型时,处理器执行计算机程序时还实现以下步骤:在待故障注入节点类型为随机注入时,基于镜像对信息随机选取一个节点为待故障注入节点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:检测待故障注入节点是否具备故障注入条件,当不具备故障注入条件时,则进入循环等待,直至待故障注入节点具备故障注入条件,执行对待故障注入节点执行故障注入的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当具备故障注入条件时,则执行对待故障注入节点执行故障注入的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在当前业务情况表示前端IO业务发生中断时,确定待故障注入节点故障注入失败。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (20)
1.一种基于镜像对的故障注入方法,所述方法包括:
登录集群,获取预设镜像对记录表,所述预设镜像对记录表包括镜像对信息,所述集群包括多个节点,所述镜像对信息包括镜像对与关联的节点;
根据所述预设镜像对记录表中的镜像对信息从多个所述节点中确定待故障注入节点;
对所述待故障注入节点执行故障注入,获取前端IO业务对应的当前业务情况;
在所述当前业务情况表示所述前端IO业务未发生中断时,确定所述待故障注入节点故障注入成功。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取已故障注入节点恢复信息,在所述已故障注入节点恢复信息为已恢复时,返回所述根据所述预设镜像对记录表中的镜像对信息从多个节点中确定待故障注入节点的步骤;
直至执行故障注入次数达到预设故障注入次数阈值时,停止故障注入。
3.根据权利要求1所述的方法,其特征在于,所述登录集群之前,包括:
确定所述集群中的各节点;
将各所述节点与相邻节点形成镜像对,组成对应的镜像对信息;
根据各所述镜像对信息生成预设镜像对记录表。
4.根据权利要求3所述的方法,其特征在于,所述确定所述集群中的各节点,包括:
统计所述集群中的各节点。
5.根据权利要求3所述的方法,其特征在于,所述将各所述节点与相邻节点形成镜像对,组成对应的镜像对信息,包括:
确定当前节点;
将所述当前节点与相邻节点形成镜像对,所述当前节点的缓存数据与所述相邻节点的缓存数据形成镜像对,得到对应的镜像对信息。
6.根据权利要求1所述的方法,其特征在于,所述根据所述预设镜像对记录表中的镜像对信息从多个所述节点中确定待故障注入节点,包括:
获取预设故障注入规则;
根据所述预设故障注入规则获取待故障注入类型和待故障注入节点类型;
根据所述待故障注入类型、所述待故障注入节点类型和所述镜像对信息从多个节点中确定待故障注入节点。
7.根据权利要求6所述的方法,其特征在于,当所述待故障注入类型为单节点故障类型时,所述根据所述待故障注入类型、所述待故障注入节点类型和所述镜像对信息从多个节点中确定待故障注入节点,包括:
在所述待故障注入节点类型为依次注入时,根据所述镜像对信息中描述的节点顺序,依次确定一个节点为待故障注入节点。
8.根据权利要求6所述的方法,其特征在于,当所述待故障注入类型为单节点故障类型时,所述根据所述待故障注入类型、所述待故障注入节点类型和所述镜像对信息从多个节点中确定待故障注入节点,包括:
在所述待故障注入节点类型为随机注入时,根据所述镜像对信息随机从多个节点中选取一个节点确定为待故障注入节点。
9.根据权利要求6所述的方法,其特征在于,当所述待故障注入类型为两节点同时故障类型时,所述根据所述待故障注入类型、所述待故障注入节点类型和所述镜像对信息从多个节点中确定待故障注入节点,包括:
在所述待故障注入节点类型为依次注入时,基于所述镜像对信息,依次选取两个镜像对中的非重复节点为待故障注入节点。
10.根据权利要求6所述的方法,其特征在于,当所述待故障注入类型为两节点同时故障类型时,所述根据所述待故障注入类型、所述待故障注入节点类型和所述镜像对信息从多个节点中确定待故障注入节点,包括:
在所述待故障注入节点类型为随机注入时,基于所述镜像对信息,随机选取两个镜像对中的非重复节点为待故障注入节点。
11.根据权利要求6所述的方法,其特征在于,当所述待故障注入类型为三节点依次故障类型时,所述根据所述待故障注入类型、所述待故障注入节点类型和所述镜像对信息从多个节点中确定待故障注入节点,包括:
在所述待故障注入节点类型为依次注入时,基于所述镜像对信息中描述的节点顺序,依次选取三个节点为待故障注入节点。
12.根据权利要求6所述的方法,其特征在于,当所述待故障注入类型为三节点依次故障类型时,所述根据所述待故障注入类型、所述待故障注入节点类型和所述镜像对信息从多个节点中确定待故障注入节点,包括:
在所述待故障注入节点类型为随机注入时,基于所述镜像对信息随机选取三个节点为待故障注入节点。
13.根据权利要求6所述的方法,其特征在于,当所述故障注入类型为单节点故障注入类型时,所述根据所述待故障注入类型、所述待故障注入节点类型和所述镜像对信息从多个节点中确定待故障注入节点,包括:
在所述待故障注入节点类型为依次注入时,基于所述镜像对信息中描述的节点顺序,依次选取一个节点确定为待故障注入节点。
14.根据权利要求6所述的方法,其特征在于,当所述故障注入类型为单节点故障注入类型时,所述根据所述待故障注入类型、所述待故障注入节点类型和所述镜像对信息从多个节点中确定待故障注入节点,包括:
在所述待故障注入节点类型为随机注入时,基于所述镜像对信息随机选取一个节点为待故障注入节点。
15.根据权利要求13或14所述的方法,其特征在于,在确定单节点为待故障注入节点后,还包括:
检测所述待故障注入节点是否具备故障注入条件;
当不具备所述故障注入条件时,则进入循环等待,直至所述待故障注入节点具备故障注入条件,执行所述对所述待故障注入节点执行故障注入的步骤。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
当具备所述故障注入条件时,则执行所述对所述待故障注入节点执行故障注入的步骤。
17.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述当前业务情况表示所述前端IO业务发生中断时,确定所述待故障注入节点故障注入失败。
18.一种基于镜像对的故障注入装置,其特征在于,所述装置包括:
获取模块,用于登录集群,获取预设镜像对记录表,所述预设镜像对记录表包括镜像对信息,所述集群包括多个节点,所述镜像对信息包括镜像对与关联的节点;
筛选模块,用于根据所述预设镜像对记录表中的镜像对信息从多个所述节点中确定待故障注入节点;
注入模块,用于对所述待故障注入节点执行故障注入,获取前端IO业务对应的当前业务情况;
判定模块,用于在所述当前业务情况表示所述前端IO业务未发生中断时,确定所述待故障注入节点故障注入成功。
19.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至17中任一项所述方法的步骤。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至17中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211253227.8A CN115328814B (zh) | 2022-10-13 | 2022-10-13 | 基于镜像对的故障注入方法、装置、设备和存储介质 |
PCT/CN2023/102838 WO2024078015A1 (zh) | 2022-10-13 | 2023-06-27 | 基于镜像对的故障注入方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211253227.8A CN115328814B (zh) | 2022-10-13 | 2022-10-13 | 基于镜像对的故障注入方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115328814A true CN115328814A (zh) | 2022-11-11 |
CN115328814B CN115328814B (zh) | 2023-04-14 |
Family
ID=83913760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211253227.8A Active CN115328814B (zh) | 2022-10-13 | 2022-10-13 | 基于镜像对的故障注入方法、装置、设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115328814B (zh) |
WO (1) | WO2024078015A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024078015A1 (zh) * | 2022-10-13 | 2024-04-18 | 苏州元脑智能科技有限公司 | 基于镜像对的故障注入方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104331324A (zh) * | 2014-11-04 | 2015-02-04 | 哈尔滨工业大学 | MapReduce故障注入套件 |
CN104461865A (zh) * | 2014-11-04 | 2015-03-25 | 哈尔滨工业大学 | 云环境下分布式文件系统可靠性测试套件 |
CN109857522A (zh) * | 2019-03-01 | 2019-06-07 | 哈尔滨工业大学 | 一种面向kvm的虚拟化层故障注入方法 |
US20210157699A1 (en) * | 2018-09-21 | 2021-05-27 | Nvidia Corporation | Fault injection architecture for resilient gpu computing |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109495297B (zh) * | 2018-11-05 | 2021-02-02 | 中国电子科技集团公司第二十八研究所 | 基于启发式强化学习的韧性云环境故障注入方法 |
CN116097226A (zh) * | 2020-08-12 | 2023-05-09 | 华为云计算技术有限公司 | 用于将故障注入分布式系统的装置和方法 |
CN112596934A (zh) * | 2020-12-26 | 2021-04-02 | 中国农业银行股份有限公司 | 一种故障测试方法及装置 |
CN115328814B (zh) * | 2022-10-13 | 2023-04-14 | 苏州浪潮智能科技有限公司 | 基于镜像对的故障注入方法、装置、设备和存储介质 |
-
2022
- 2022-10-13 CN CN202211253227.8A patent/CN115328814B/zh active Active
-
2023
- 2023-06-27 WO PCT/CN2023/102838 patent/WO2024078015A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104331324A (zh) * | 2014-11-04 | 2015-02-04 | 哈尔滨工业大学 | MapReduce故障注入套件 |
CN104461865A (zh) * | 2014-11-04 | 2015-03-25 | 哈尔滨工业大学 | 云环境下分布式文件系统可靠性测试套件 |
US20210157699A1 (en) * | 2018-09-21 | 2021-05-27 | Nvidia Corporation | Fault injection architecture for resilient gpu computing |
CN109857522A (zh) * | 2019-03-01 | 2019-06-07 | 哈尔滨工业大学 | 一种面向kvm的虚拟化层故障注入方法 |
Non-Patent Citations (1)
Title |
---|
胡嘉伟: "Linux 下基于PIN 的永久和瞬时故障注入方案及实现" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024078015A1 (zh) * | 2022-10-13 | 2024-04-18 | 苏州元脑智能科技有限公司 | 基于镜像对的故障注入方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024078015A1 (zh) | 2024-04-18 |
CN115328814B (zh) | 2023-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110995468B (zh) | 待分析系统的系统故障处理方法、装置、设备和存储介质 | |
CN108710673B (zh) | 实现数据库高可用方法、系统、计算机设备和存储介质 | |
CN108897658B (zh) | 主数据库监控方法、装置、计算机设备和存储介质 | |
CN111327490B (zh) | 区块链的拜占庭容错检测方法及相关装置 | |
CN110908909A (zh) | 自动化测试方法、装置、存储介质及设备 | |
CN110149421B (zh) | 域名系统的异常监测方法、系统、装置和计算机设备 | |
CN111274077A (zh) | 一种磁盘阵列可靠性测试方法、系统、终端及存储介质 | |
CN115328814B (zh) | 基于镜像对的故障注入方法、装置、设备和存储介质 | |
CN111641601A (zh) | 防火墙管理方法、装置、设备及存储介质 | |
CN108334427B (zh) | 存储系统中的故障诊断方法及装置 | |
CN113709126A (zh) | 网络协议安全模糊测试方法、装置、设备以及存储介质 | |
CN110618853B (zh) | 一种僵尸容器的检测方法、装置及设备 | |
CN108924772B (zh) | 短信发送方法、装置、计算机设备和存储介质 | |
CN115733741B (zh) | 一种针对待测系统的异常场景测试方法和装置 | |
CN112286786A (zh) | 数据库的测试方法、装置和服务器 | |
CN110555017A (zh) | 区块链数据清理方法、装置、计算机设备和存储介质 | |
CN114037539A (zh) | 一种保险出单链路异常检测方法及装置 | |
CN115118646A (zh) | 一种交换机测试系统数据交互方法、装置及电子设备 | |
CN114116522A (zh) | 一种基于swagger进行接口自动测试的方法 | |
CN114579473A (zh) | 应用测试方法、装置、设备及存储介质 | |
CN114416522A (zh) | 区块链系统测试方法、装置、设备及存储介质 | |
CN113360389A (zh) | 一种性能测试方法、装置、设备及存储介质 | |
CN113626240A (zh) | 集群故障恢复方法、装置、计算机设备和存储介质 | |
CN107919980B (zh) | 一种集群化系统的评测方法和装置 | |
CN110704218B (zh) | 数据处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |