CN111858222B - 错误注入的方法、设备、数据存储系统和程序产品 - Google Patents
错误注入的方法、设备、数据存储系统和程序产品 Download PDFInfo
- Publication number
- CN111858222B CN111858222B CN201910363907.7A CN201910363907A CN111858222B CN 111858222 B CN111858222 B CN 111858222B CN 201910363907 A CN201910363907 A CN 201910363907A CN 111858222 B CN111858222 B CN 111858222B
- Authority
- CN
- China
- Prior art keywords
- switch
- error
- downstream port
- data storage
- storage system
- 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.)
- Active
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 96
- 238000002347 injection Methods 0.000 title claims abstract description 63
- 239000007924 injection Substances 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 18
- 238000011144 upstream manufacturing Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 6
- 230000009471 action Effects 0.000 claims description 3
- 238000001514 detection method Methods 0.000 abstract description 4
- 238000012360 testing method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 239000004744 fabric Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2215—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test error correction or detection circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0775—Content or structure details of the error report, e.g. specific table structure, specific error fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开的实施例提供了错误注入的方法、设备、数据存储系统和程序产品。一种用于错误注入的方法包括在数据存储系统处于错误注入模式时,向数据存储系统的第一交换机注入表示数据存储系统的存储设备阵列的错误的信息,使得表示错误的信息从第一交换机的第一下行端口经由数据存储系统的第二交换机被传递给与第二交换机相连的计算设备,第一交换机和第二交换机经由各自的下行端口连接至存储设备阵列并且在错误注入模式中第一下行端口和第二交换机的第二下行端口被连接;以及通过获取计算设备对表示错误的信息的处理结果,确定数据存储系统的错误处理能力。由此,可以模拟来自存储设备的错误,有助于全面检测对整个I/O路径错误的处理。
Description
技术领域
本公开的实施例涉及数据存储领域,并且更具体地,涉及用于错误注入的方法、设备、数据存储系统以及计算机程序产品。
背景技术
随着数据存储技术的发展,存储服务器通常需要管理包含大量盘的存储系统,而在服务器与多个盘之间通常借助于连接线彼此连接以传输信息。数据存储系统通常需要满足关于数据可靠性和稳定性等方面的要求。为了满足这些要求,数据存储系统通常具有一定的错误处理能力,能够检测或校正系统中发生的错误。为了使数据存储系统更可靠,期望能测试数据存储系统的错误处理能力。这可以通过向数据存储系统主动注入错误,并监测数据存储系统对错误的处理能力来实现。基于错误注入的机制能够衡量数据存储系统在错误发生时是否能够正确应对(例如给出提醒或者执行校正),从而可以执行相应措施来及时修复或改机系统的错误处理能力。
发明内容
本公开的实施例提供了一种数据存储系统中的错误注入的改进方案。
在本公开的第一方面,提供了一种用于错误注入的方法。该方法包括:在数据存储系统处于错误注入模式时,向数据存储系统的第一交换机注入表示数据存储系统的存储设备阵列的错误的信息,使得表示错误的信息从第一交换机的第一下行端口经由数据存储系统的第二交换机被传递给与第二交换机相连的计算设备,第一交换机和第二交换机经由各自的下行端口连接至存储设备阵列并且在错误注入模式中第一下行端口和第二交换机的第二下行端口被连接;以及通过获取计算设备对表示错误的信息的处理结果,来确定数据存储系统的错误处理能力。
在本公开的第二方面,提供了一种电子设备。该电子设备包括处理器以及与处理器耦合的存储器,存储器保存需要执行的指令,指令在被处理器执行时使设备执行动作,动作包括:在数据存储系统处于错误注入模式时,向数据存储系统的第一交换机注入表示数据存储系统的存储设备阵列的错误的信息,使得表示错误的信息从第一交换机的第一下行端口经由数据存储系统的第二交换机被传递给与第二交换机相连的计算设备,第一交换机和第二交换机经由各自的下行端口连接至存储设备阵列并且在错误注入模式中第一下行端口和第二交换机的第二下行端口被连接;以及通过获取计算设备对表示错误的信息的处理结果,来确定数据存储系统的错误处理能力。
在第三方面,提供了一种数据存储系统,包括:存储设备阵列;计算设备;以及第一交换机和第二交换机,第一交换机和第二交换机经由各自的下行端口连接至存储设备阵列,并且第二交换机经由上行端口连接至计算设备,其中在数据存储系统的错误注入模式中,第一交换机被注入表示数据存储系统的存储设备阵列的错误的信息,第一交换机的第一下行端口和第二交换机的第二下行端口被连接以使表示错误的信息从第一交换机被传递到第二交换机,并由第二交换机传递给计算设备。
在本公开的第四方面,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可执行指令,计算机可执行指令在被执行时使设备执行第一方面的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了本公开的实施例能够在其中被实现的数据存储系统的框图;
图2示意性示出了根据本公开的实施例的在错误注入模式中的数据存储系统的示例的框图;
图3示意性示出了根据本公开的实施例的在错误注入模式中的数据存储系统的另一示例的框图;以及
图4示出了根据本公开的实施例的用于错误注入的方法的流程图;以及
图5示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
图1示出了本公开的实施例能够在其中被实现的数据存储系统100的架构的示意图。应当理解,仅出于示例性的目的描述数据存储系统100的结构和功能,而不暗示对本公开的范围的任何限制。本公开的实施例还可以被应用到具有不同的结构和/或功能的数据存储系统100中。
如图1所示,在数据存储系统100中部署了用于存储数据的存储设备阵列130。存储设备阵列130可以包括多个存储设备132-1至132-6等。为便于描述,存储设备132-1至132-6有时被统称为或分别称为存储设备132。应当理解,图1中示出的存储设备的数目仅仅是示例性的,而无意限制本公开的范围。
存储设备132可以是非易失性存储设备或存储单元,诸如固态硬盘(SSD)、磁盘等等。存储设备132可以遵循适当的接口规范,例如可以遵循NVMe接口规范。遵循NVMe接口规范的存储设备132有时可以被称为NVMe设备或NVMe盘。每个存储设备132的存储容量可以是任意大小。
在数据存储系统100中,至少一个计算设备,诸如计算设备102和104,被配置为控制对存储设备132的输入/输出(I/O)操作。计算设备102和104有时也可以被称为存储服务器或主机设备。计算设备102和104中的每一个均可以响应于用户或者其他设备的请求,执行对存储设备132的数据读写操作,并且可以管理存储设备132中的数据访问和存储。
各个存储设备132可以经由盘捆绑(JBOD)阵列柜120连接到计算设备102和104。JBOD有时也称为盘阵列柜(DAE)。JBOD 120是计算设备外部的独立阵列柜,用于支持连接的存储设备与计算设备之间的交互。在一些实施例中,JBOD 120是独立于计算设备102和104的外部设备,并且可能不具有存储管理或处理功能。
JBOD 120包括多个交换机,诸如交换机112、交换机122。交换机112和122均与存储设备132相连,并且与计算设备102、104分别相连。由此,计算设备102、104可以实现对这些存储设备132的I/O操作控制。在图1的示例中,各个存储设备132-1至132-6等可以经由切换卡134-1至134-6等被插入每个交换机112、122的相应插槽(例如,U.2插槽接口)中,从而连接到交换机112、122的下行端口。出于示意的目的,图1中仅示出了交换机112的示例下行端口116-1至116-4以及交换机122的示例下行端口126-1至126-4,然而应理解,可以存在更多的下行端口。
每个交换机112、122还包括上行端口114、124,用于连接到相应的计算设备102、104。为便于描述,切换卡134-1至134-6有时被统称为或分别称为切换卡134,交换机112的下行端口116-1、116-2等有时被统称为或分别称为下行端口116,交换机122的下行端口126-1、126-2等有时被统称为或分别称为下行端口126。
在本公开中,将交换机与计算设备连接的端口称为上行端口,将交换机与存储设备连接的端口称为下行端口。此处的“上行端口”和“下行端口”无意限定数据的传输方向。换言之,通过下行端口,存储设备可以向交换机发送数据,并且交换机也可以向存储设备发送数据。类似地,通过上行端口,计算设备可以向交换机发送数据,并且交换机也可以向计算设备发送数据。作为交换机,上行端口与下行端口之间按照内部交换结构执行数据通信,以使数据被转发到相应目的地。
基于多交换机的冗余设计可以确保在JBOD 120中的某个交换机故障时还可以经由另外的交换机对这些存储设备132进行访问。虽然
图1示出了两个交换机112、122,也可以存在更多的交换机,以进一步提高冗余度。另外,虽然图1示出了双交换机-双计算设备的结构,在一些实施例中,单个存储设备可以连接到两个或更多交换机,以分别经由不同交换机对存储设备132进行I/O访问。
在一些实施例中,存储设备132与交换机112、122的互连以及交换机112、122与计算设备102、104的互连可以基于总线。当总线为高速外部部件互连(PCIe)链路或PCIe总线时,交换机112、122可以是PCIe交换机。PCIe交换机112、122可以基于PCIe协议与存储设备132和计算设备102、104进行通信。
在数据存储系统100的正常操作模式中,如果计算设备102或104需要执行针对某个存储设备132的I/O操作,来自计算设备102或104的信息被提供给交换机112、114的上行端口,并经由交换机112、122的内部交换结构而被转发到与该存储设备132的下行端口116或126,从而到达下行端口116或126被传递到存储设备132。在相反路径上,来自存储设备132的信息(诸如读取的数据、对写请求的响应等)被提供给交换机112、122的下行端口116、126,并通过内部交换结构被转发到上行端口114、124,从而到达相应的计算设备102、104。在正常操作模式中,虽然不同交换机的下行端口连接到同一存储设备132,但不同交换机独立地对存储设备132执行I/O访问。
在数据存储系统100的操作中,可能会出现软件和/或硬件级别的错误。错误的出现可能会使得在数据存储系统100的I/O路径上的信息传输发生错误,例如产生错误信息或者信息无法被传递到目的地。计算设备102或104通常被配置有相应的错误处理能力,能够检测或校正系统中发生的错误。例如,可以在检测到错误发生时,执行相应动作解决错误,或者可以在无法解决错误时发出告警。由于系统运行时自主发生的错误是无法预知的,为了测试系统的错误处理能力,可以主动向数据存储系统注入表示特定错误的信息,并且观察对该错误信息的处理结果。
如以上提及的,期望能够测试或检测数据存储系统的错误处理能力。一种错误处理检测的机制可以基于错误注入来实现。作为数据存储系统的硬件基础设施,存储设备内部或者存储设备的链路可能发生错误。因此,测试数据存储系统如何处理与存储设备相关的错误具有重要意义。通常,存储设备的制造商不提供在存储设备处直接注入错误的方法。因此,无法检测在从存储设备向上直到计算设备这整条I/O路径上传输表示错误的信息时,计算设备是否有能力执行正确的应对措施。这使得对数据存储系统的错误处理能力的检测存在困难。
根据本公开的实施例,提出了一种改进的错误注入的方案,以模拟来自存储设备的错误。在该方案中,数据存储系统的多个交换机均经由各自的下行端口与存储设备阵列相连。在数据存储系统处于错误注入模式时,两个交换机的下行端口被连接。通过向其中一个交换机注入表示存储阵列的错误的信息,这样的表示错误的信息从该交换机被传递给另一交换机,并被另一交换传递给与之相连的计算设备。通过获取计算设备对表示错误的信息的处理结果,确定数据存储系统的错误处理能力。
通过这种错误注入的方式,可以在由交换机将计算设备与存储设备连接的场景中模拟来自底层存储设备的错误,有助于全面检测数据存储系统对整个I/O路径错误的处理。此外,这种错误注入方式无需借助专门的错误注入工具,可以被容易地应用于适当的存储设备阵列,特别是被包括在JBOD中的NVMe存储设备阵列。
以下将参考附图来详细描述本公开的示例实施例。
图2示出了根据本公开的一些实施例的在数据存储系统处于错误注入模式时的系统框图。为便于讨论,参考图1的数据存储系统100来讨论如何实现数据存储系统的错误注入。应理解,本公开的实施例的错误注入可以被应用到其他具有双交换机或多交换机的数据存储系统中。
在图2中,数据存储系统100被设置到错误注入模式。在错误注入模式中,控制设备210被配置为向数据存储系统100注入表示存储设备阵列130的错误的信息202。控制设备202作为错误注入的控制设备,可以独立于数据存储系统100。控制设备202可以是任何计算设备。表示存储设备阵列130的错误的信息202可以指示与存储设备阵列130中的存储设备可能出现的错误。
在一些实施例中,表示错误的信息202可以是在数据存储系统100中传输的数据包的形式,但数据包中存在错误,这样的错误例如可以是由于存储设备内部故障导致(例如,存储数据错误)或者是由于存储设备的错误链接导致(例如,错误的事务层数据包(TLP))。应当理解,表示错误的信息202可以表示在测试数据存储系统100的错误处理能力时任何可能在存储设备阵列处产生的错误。表示错误的信息202可以通过预先被设计,例如可以由检测人员根据测试需要而生成。
根据本公开的实施例,表示错误的信息202被注入到JBOD 120的一个交换机中。在图2中,以表示错误的信息202被注入交换机112进行说明。为了使表示存储设备阵列的表示错误的信息202从底层的存储设备沿着完整的I/O路径被传递,在本公开的实施例中,使交换机112将表示错误的信息202传递给对端的交换机122,并经由交换机122传递给与之相连的计算设备104。在这个示例中,交换机112在本文中有时也被称为第一交换机112,交换机122在本文中有时也被称为第二交换机122。
控制设备210可以在需要执行错误注入时被连接到JBOD 120,特别地是被连接到交换机112。控制设备210与交换机112的连接可以是支持两者通信的任何连接。在一些实施例中,控制设备210可以经由通用异步收发器(UART)接口(有时也被称为串口)或通过以太网(Ethernet)电缆被连接到交换机112,以向交换机112注入表示错误的信息202。
为了使表示错误的信息202能够被传递到计算设备104,根据本公开的实施例,交换机112与交换机122的下行端口被连接。在图2的示例中,出于解释说明的目的,示例性示出交换机112的下行端口116-1和交换机114的下行端口126-1被连接。在这样的示例中,下行端口116-1在本文中有时也被称为第一下行端口,下行端口126-1在本文中有时也被称为第二下行端口。在正常操作中,下行端口116-1和126-1各自连接到存储设备132,但两者之间并不互连,但在错误注入模式中,这两个下行端口被连接。这例如可以通过将存储设备单元132-1的切换卡134-1连接到两个下行端口116-1和126-1的链路短接来实现。通过这种方式,使得交换机122可以通过下行端口116-1和下行端口126-1之间的直接连接而获取来自交换机112的表示错误的信息202。此时,切换卡134-1被短接,因而存储设备132-1处于离线状态。
在一些实施例中,在注入表示错误的信息202时,还将下行链路端口116-1配置作为交换机112的上行端口进行操作。也就是说,在错误注入模式中,下行端口116-1被视作上行端口,从而可以向除了存储设备132以外的设备传输信息。此外,还可以将端口116-1与交换机112中的另一下行端口,例如下行端口116-4连接。在这个示例中,下行端口116-4在本文中有时也被称为第三下行端口。此时,控制设备210可以将表示错误的信息202注入到下行端口116-1。由于下行端口116-1的配置以及与下行端口126-1的连接,错误的信息202因此可以被传送到下行端口126-1,并因此可以经由交换机122的内部交换结构122被传递给上行端口124,从而被计算设备104接收。图2中用实线箭头指示了表示错误的信息202的传递路径。
通过交换机的端口连接,从计算设备104来看,错误的信息204被认为是从存储设备阵列130经由完整的计算设备-交换机-存储设备的I/O路径被接收到。这模拟了在存储设备产生的错误的完整行进路线。在数据存储系统中,取决于计算设备104的能力,计算设备104可能采取相应动作来处理表示错误的信息202。通过模拟来自存储设备的错误,可以更好地测试在错误发生时,数据存储系统100中对错误的完整处理逻辑。
在一些实施例中,为了错误注入和检测的目的,还可以配置使得计算设备104执行存储设备阵列130中与下行端口116-4相连的存储设备132-4的I/O操作,以将表示错误的信息202传递到计算设备104。由此,可以更好地模拟在数据存储系统100正在运行I/O操作时的错误处理能力。这样的配置可以从控制设备210向计算设备104发出相关配置的控制指示,或者可以直接配置计算设备104来实现。
在一些实施例中,可以由用户指定表示错误的信息202如何注入。例如,用户可以经由控制设备210或者通过其他方式指定要执行测试的存储设备132-1和132-N,从而指定从存储设备132-N开始到计算设备104的I/O路径。用户可以通过手动将下行端口116-1和126-1相连以及将下行端口116-4与下行端口116-1相连来实现对要测试的I/O路径的指定。由此,相比于使用专门仪器的错误注入,可以实现更灵活的用户定制化错误注入。
如以上提及的,数据存储系统100中的计算设备104可能被配置有一定的错误处理能力,从而可以对接收到的表示错误的信息执行相应的动作。在一些实施例中,计算设备104可以检验接收到的表示错误的信息是否是被主动注入数据存储系统100的。这可以避免在错误注入模式期间数据存储系统100内部正好产生错误而导致计算设备104的混淆。计算设备104可以从控制设备210获得当前被注入的错误的标识,或者获得控制设备210可能会注入的多个错误的标识列表。在从交换机114接收到错误的信息后,计算设备104可以通过标识的匹配来确定接收到的错误与从控制设备210获知的错误相匹配,从而确定接收到的错误是被控制设备210主动注入系统100中,而不是系统100内部生成的。
为了监测错误注入的结果,控制设备210可以获得计算设备104对所注入的表示错误的信息的处理结果,从而确定数据存储系统100的错误处理能力。处理结果可以指示计算设备104是否有能力正确检测错误和/或是否能够校正错误。在一些实施例中,如果确定表示错误的信息202未被检测或者未被正确校正,还可以提供报警提示,以促进对数据存储系统100的错误处理能力进行改进。
在图2的配置中,由于存储设备132-1处于离线状态,并且由于下行端口116-4、116-1、126-2之间的特定连接关系,从计算设备104来看,存储设备132-6可以经由交换机122正常访问,而从计算设备102来看,存储设备132-6无法经由交换机112正常访问。这导致了经由交换机112、122可访问的存储设备的数目不对称。这种不对称可能导致计算设备102和104无法正常操作。在一些实施例中,为了确定在错误注入模式期间计算设备102和104仍然处于正常操作状态,还需要对交换机112和122的下行端口116和126与存储设备阵列130的连接进行对称布置。
图3示出了这样的对称配置的示例。假设仍然以图2的示例进行错误注入。为了使计算设备104以及可能还使计算设备102处于正常操作状态,如图3所示,在错误注入模式中,还可以对称地将交换机122的下行端口126-2与交换机112的下行端口116-2相连。这例如可以通过将存储设备单元132-2的切换卡134-2连接到两个下行端口116-2和126-2的链路短接来实现。在这个示例中,下行端口126-2在本文中有时也被称为第四下行端口,下行端口116-2在本文中有时也被称为第五下行端口。
此外,下行端口126-2可以被配置作为交换机122的上行端口进行操作,并且与交换机122的下行端口126-4相连。该下行端口126-4被连接到与下行端口116-4所连接到的相同存储设备132-6。在这个示例中,下行端口126-4在本文中有时也被称为第六下行端口。通过这种类似的方式,切换卡134-2被短接,从而使得存储设备132-2变为离线状态。通过这样的配置,计算设备102能够经由下行端口116-2(再连接到端口126-2和126-4)来访问存储设备132-6。此时,计算设备102和计算设备104分别可以经由各自的交换机连接到相同数目的存储设备132,从而可以保持在错误注入模式中正常操作。
以上的示例实施例描述了从交换机112注入表示错误的信息202以测试从底层存储设备到计算设备104的信息传递场景中计算设备104的错误处理能力。在另外的实施例中,还可以以类似的方式,由控制设备210从交换机122注入表示存储设备阵列130的错误的信息,从而检测计算设备102对来自底层存储设备的错误的处理能力。
图4示出了根据本公开的一些实施例的用于错误注入的方法400的流程图。方法400可以被实现在图2的控制设备210处。为便于说明,参考图2来描述方法400。
在框410,控制设备210在数据存储系统处于错误注入模式时,向数据存储系统的第一交换机注入表示数据存储系统的存储设备阵列的错误的信息,使得表示错误的信息从第一交换机的第一下行端口经由数据存储系统的第二交换机被传递给与第二交换机相连的计算设备。第一交换机和第二交换机经由各自的下行端口连接至存储设备阵列并且在错误注入模式中第一下行端口和第二交换机的第二下行端口被连接。在框420,控制设备210通过获取计算设备对表示错误的信息的处理结果,来确定数据存储系统的错误处理能力。
在一些实施例中,注入表示错误的信息包括:将第一下行端口配置作为第一交换机的上行端口进行操作;在第一下行端口处注入表示错误的信息,在错误注入模式中第一下行端口与第一交换机的第三下行端口被连接;以及使得计算设备执行存储设备阵列中与第三下行端口相连的存储设备的I/O操作,以将表示错误的信息传递到计算设备。
在一些实施例中,在第一下行端口处注入表示错误的信息包括:响应于在错误注入模式中的用户指定,在第一下行端口处注入表示错误的信息。
在一些实施例中,第一交换机和第二交换机被包括在盘捆绑(JBOD)阵列柜中。
在一些实施例中,第一交换机和第二交换机是高速外部部件互连(PCIe)交换机。
图5示出了可以用来实施本公开的实施例的示例设备500的示意性框图。设备500可以被实现为或者被包括于图2的计算设备102、计算设备104或控制设备210。
如图所示,设备500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序指令,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元501执行上文所描述的各个方法和处理,例如方法400。例如,在一些实施例中,方法400可被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,诸如非瞬态计算机可读介质,诸如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由CPU 501执行时,可以执行上文描述的方法400的一个或多个步骤。备选地,在其他实施例中,CPU 501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法400。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。
Claims (20)
1.一种用于错误注入的方法,包括:
在数据存储系统处于错误注入模式时,向所述数据存储系统的第一交换机注入表示所述数据存储系统的存储设备阵列的错误的信息,使得表示所述错误的所述信息从所述第一交换机的第一下行端口经由所述数据存储系统的第二交换机被传递给与所述第二交换机相连的计算设备,所述第一交换机和所述第二交换机经由各自的下行端口连接至所述存储设备阵列并且在所述错误注入模式中所述第一下行端口和所述第二交换机的第二下行端口被连接;以及
通过获取所述计算设备对表示所述错误的所述信息的处理结果,来确定所述数据存储系统的错误处理能力。
2.根据权利要求1所述的方法,其中注入表示所述错误的所述信息包括:
将所述第一下行端口配置作为所述第一交换机的上行端口进行操作;
在所述第一下行端口处注入表示所述错误的所述信息,在所述错误注入模式中所述第一下行端口与所述第一交换机的第三下行端口被连接;以及
使得所述计算设备执行所述存储设备阵列中与所述第三下行端口相连的存储设备的I/O操作,以将表示所述错误的所述信息传递到所述计算设备。
3.根据权利要求2所述的方法,其中在所述第一下行端口处注入表示所述错误的所述信息包括:
响应于在所述错误注入模式中的用户指定,在所述第一下行端口处注入表示所述错误的所述信息。
4.根据权利要求1所述的方法,其中所述第一交换机和所述第二交换机被包括在盘捆绑(JBOD)阵列柜中。
5.根据权利要求1所述的方法,其中所述第一交换机和所述第二交换机是高速外部部件互连(PCIe)交换机。
6.一种电子设备,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器保存需要执行的指令,所述指令在被处理器执行时使所述电子设备执行动作,所述动作包括:
在数据存储系统处于错误注入模式时,向所述数据存储系统的第一交换机注入表示所述数据存储系统的存储设备阵列的错误的信息,使得表示所述错误的所述信息从所述第一交换机的第一下行端口经由所述数据存储系统的第二交换机被传递给与所述第二交换机相连的计算设备,所述第一交换机和所述第二交换机经由各自的下行端口连接至所述存储设备阵列并且在所述错误注入模式中所述第一下行端口和所述第二交换机的第二下行端口被连接;以及
通过获取所述计算设备对表示所述错误的所述信息的处理结果,来确定所述数据存储系统的错误处理能力。
7.根据权利要求6所述的设备,其中注入表示所述错误的所述信息包括:
将所述第一下行端口配置作为所述第一交换机的上行端口进行操作;
在所述第一下行端口处注入表示所述错误的所述信息,在所述错误注入模式中所述第一下行端口与所述第一交换机的第三下行端口被连接;以及
使得所述计算设备执行所述存储设备阵列中与所述第三下行端口相连的存储设备的I/O操作,以将表示所述错误的所述信息传递到所述计算设备。
8.根据权利要求7所述的设备,其中在所述第一下行端口处注入表示所述错误的所述信息包括:
响应于在所述错误注入模式中的用户指定,在所述第一下行端口处注入表示所述错误的所述信息。
9.根据权利要求6所述的设备,其中所述第一交换机和所述第二交换机被包括在盘捆绑(JBOD)阵列柜中。
10.根据权利要求6所述的设备,其中所述第一交换机和所述第二交换机是高速外部部件互连(PCIe)交换机。
11.一种数据存储系统,包括:
存储设备阵列;
计算设备;以及
第一交换机和第二交换机,所述第一交换机和所述第二交换机经由各自的下行端口连接至所述存储设备阵列,并且所述第二交换机经由上行端口连接至所述计算设备,
其中在所述数据存储系统的错误注入模式中,所述第一交换机被注入表示所述数据存储系统的存储设备阵列的错误的信息,所述第一交换机的第一下行端口和所述第二交换机的第二下行端口被连接以使表示所述错误的所述信息从所述第一交换机被传递到所述第二交换机,并由所述第二交换机传递给所述计算设备。
12.根据权利要求11所述的数据存储系统,其中在所述错误注入模式中,所述第一下行端口被配置作为所述第一交换机的上行端口进行操作并且被配置为接收注入的表示所述错误的所述信息;并且
其中所述第一下行端口与所述第一交换机的第三下行端口被连接,并且在表示所述错误的所述信息被注入后所述计算设备执行所述存储设备阵列中与所述第三下行端口相连的存储设备的I/O操作。
13.根据权利要求11所述的数据存储系统,其中所述第一交换机和所述第二交换机被包括在盘捆绑(JBOD)阵列柜中。
14.根据权利要求11所述的数据存储系统,其中所述第一交换机和所述第二交换机是高速外部部件互连(PCIe)交换机。
15.根据权利要求12所述的数据存储系统,其中在所述错误注入模式中,所述第二交换机的第四下行端口与所述第一交换机的第五下行端口被连接,并且所述第四下行端口被配置作为所述第二交换机的上行端口进行操作且与所述第二交换机的第六下行端口相连,所述第六下行端口被连接到与所述第三下行端口相连的所述存储设备。
16.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可执行指令,所述计算机可执行指令在被执行时使设备:
在数据存储系统处于错误注入模式时,向所述数据存储系统的第一交换机注入表示所述数据存储系统的存储设备阵列的错误的信息,使得表示所述错误的所述信息从所述第一交换机的第一下行端口经由所述数据存储系统的第二交换机被传递给与所述第二交换机相连的计算设备,所述第一交换机和所述第二交换机经由各自的下行端口连接至所述存储设备阵列并且在所述错误注入模式中所述第一下行端口和所述第二交换机的第二下行端口被连接;以及
通过获取所述计算设备对表示所述错误的所述信息的处理结果,来确定所述数据存储系统的错误处理能力。
17.根据权利要求16所述的计算机程序产品,其中所述计算机可执行指令在被执行时使所述设备:
将所述第一下行端口配置作为所述第一交换机的上行端口进行操作;
在所述第一下行端口处注入表示所述错误的所述信息,在所述错误注入模式中所述第一下行端口与所述第一交换机的第三下行端口被连接;以及
使得所述计算设备执行所述存储设备阵列中与所述第三下行端口相连的存储设备的I/O操作,以将表示所述错误的所述信息传递到所述计算设备。
18.根据权利要求17所述的计算机程序产品,其中所述计算机可执行指令在被执行时使所述设备:
响应于在所述错误注入模式中的用户指定,在所述第一下行端口处注入表示所述错误的所述信息。
19.根据权利要求16所述的计算机程序产品,其中所述第一交换机和所述第二交换机被包括在盘捆绑(JBOD)阵列柜中。
20.根据权利要求16所述的计算机程序产品,其中所述第一交换机和所述第二交换机是高速外部部件互连(PCIe)交换机。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910363907.7A CN111858222B (zh) | 2019-04-30 | 2019-04-30 | 错误注入的方法、设备、数据存储系统和程序产品 |
US16/831,334 US11157378B2 (en) | 2019-04-30 | 2020-03-26 | Method, device, data storage system, and computer product for error injection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910363907.7A CN111858222B (zh) | 2019-04-30 | 2019-04-30 | 错误注入的方法、设备、数据存储系统和程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858222A CN111858222A (zh) | 2020-10-30 |
CN111858222B true CN111858222B (zh) | 2024-07-19 |
Family
ID=72965031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910363907.7A Active CN111858222B (zh) | 2019-04-30 | 2019-04-30 | 错误注入的方法、设备、数据存储系统和程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11157378B2 (zh) |
CN (1) | CN111858222B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10644954B1 (en) | 2019-05-10 | 2020-05-05 | Capital One Services, Llc | Techniques for dynamic network management |
CN112306766A (zh) * | 2019-07-31 | 2021-02-02 | 伊姆西Ip控股有限责任公司 | 用于错误检测的方法、电子设备、存储系统和计算机程序产品 |
CN113190167A (zh) | 2020-01-14 | 2021-07-30 | 伊姆西Ip控股有限责任公司 | 用于管理计算设备的方法、电子设备和计算机存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354633A (zh) * | 2008-08-22 | 2009-01-28 | 杭州华三通信技术有限公司 | 提高虚拟存储系统写效率的方法及虚拟存储系统 |
CN102469025A (zh) * | 2010-11-18 | 2012-05-23 | 株式会社日立制作所 | 多存储系统上的多路径交换 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182248B1 (en) * | 1998-04-07 | 2001-01-30 | International Business Machines Corporation | Method and tool for computer bus fault isolation and recovery design verification |
US6560720B1 (en) * | 1999-09-09 | 2003-05-06 | International Business Machines Corporation | Error injection apparatus and method |
US8914687B2 (en) * | 2011-04-15 | 2014-12-16 | Advanced Micro Devices, Inc. | Providing test coverage of integrated ECC logic en embedded memory |
CN203165313U (zh) * | 2013-04-01 | 2013-08-28 | 徐州工业职业技术学院 | 一种电子式电路故障设置装置 |
US10289510B1 (en) | 2014-12-23 | 2019-05-14 | Emc Corporation | Intelligent platform management interface functional fuzzer |
CN107181606B (zh) | 2016-03-10 | 2020-07-31 | 伊姆西Ip控股有限责任公司 | 用于控制网络节点的方法和装置 |
US10796035B1 (en) | 2016-03-21 | 2020-10-06 | EMC IP Holding Company LLC | Computing system with simulated hardware infrastructure to support development and testing of management and orchestration software |
EP3469486B1 (en) * | 2016-06-10 | 2021-07-21 | Liqid Inc. | Multi-port interposer architectures in data storage systems |
CN108228082B (zh) * | 2016-12-21 | 2021-04-02 | 伊姆西Ip控股有限责任公司 | 存储系统和用于存储控制的方法 |
KR102388803B1 (ko) * | 2017-11-02 | 2022-04-20 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법 |
CN108768793B (zh) * | 2018-07-11 | 2021-09-17 | 郑州云海信息技术有限公司 | 一种存储双活链路故障测试方法及装置 |
-
2019
- 2019-04-30 CN CN201910363907.7A patent/CN111858222B/zh active Active
-
2020
- 2020-03-26 US US16/831,334 patent/US11157378B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354633A (zh) * | 2008-08-22 | 2009-01-28 | 杭州华三通信技术有限公司 | 提高虚拟存储系统写效率的方法及虚拟存储系统 |
CN102469025A (zh) * | 2010-11-18 | 2012-05-23 | 株式会社日立制作所 | 多存储系统上的多路径交换 |
Also Published As
Publication number | Publication date |
---|---|
US20200349040A1 (en) | 2020-11-05 |
CN111858222A (zh) | 2020-10-30 |
US11157378B2 (en) | 2021-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11748218B2 (en) | Methods, electronic devices, storage systems, and computer program products for error detection | |
CN111858222B (zh) | 错误注入的方法、设备、数据存储系统和程序产品 | |
CN102439888B (zh) | 一种快速通道互连链路监控方法和设备及系统 | |
CN111289922B (zh) | 线缆插接检测方法及相关设备 | |
CN112527582A (zh) | 服务器线缆的检测方法、检测装置、检测设备及存储介质 | |
CN106407059A (zh) | 一种服务器节点测试系统及方法 | |
WO2023020586A1 (zh) | 故障诊断电路、方法、装置及计算机可读存储介质 | |
US11854577B2 (en) | Hard disk device simulator, testing system using hard disk device simulators and testing method thereof | |
CN111176913A (zh) | 一种检测服务器中Cable Port的电路和方法 | |
CN101800672A (zh) | 设备检测方法和设备 | |
US8391162B2 (en) | Apparatus and method for testing SMNP cards | |
CN114116337A (zh) | 基于pcie链路配置的硬盘测试方法、系统、终端及存储介质 | |
US8825934B2 (en) | Gang programming of devices | |
US20030159102A1 (en) | Method for testing a universal serial bus host controller | |
CN115951266A (zh) | 一种计算系统 | |
CN115623464A (zh) | 一种电能表蓝牙模块的故障处理方法、装置及电能表 | |
CN111367838B (zh) | 用于检测数据存储系统的方法、设备和数据存储系统 | |
US20080168161A1 (en) | Systems and methods for managing faults within a high speed network employing wide ports | |
CN115480975A (zh) | 接线检查方法及装置 | |
US9742654B1 (en) | Communication interface testing | |
TW201500752A (zh) | 用以控制測試器之半導體檢驗裝置 | |
US11500717B2 (en) | Method for detecting data storage system, device and data storage system | |
CN115955416B (zh) | 测试upi降带宽的方法、装置、设备及存储介质 | |
CN112100109B (zh) | 一种线缆连接容错连接装置及方法 | |
CN115955416A (zh) | 测试upi降带宽的方法、装置、设备及存储介质 |
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 |