CN106294031B - 一种业务管理方法和存储控制器 - Google Patents
一种业务管理方法和存储控制器 Download PDFInfo
- Publication number
- CN106294031B CN106294031B CN201610625253.7A CN201610625253A CN106294031B CN 106294031 B CN106294031 B CN 106294031B CN 201610625253 A CN201610625253 A CN 201610625253A CN 106294031 B CN106294031 B CN 106294031B
- Authority
- CN
- China
- Prior art keywords
- state
- business
- group
- storage system
- another
- 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
Classifications
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本申请提供一种业务管理方法和存储控制器SP,该方法应用于包括N个SP的存储系统,N≥3。该方法为:第一SP在确定第二SP发生故障且第二SP在发生故障之前承载有业务时,获取第二SP发生故障之后的存储系统的状态,然后根据获取的存储系统的状态,从N个SP中确定出负责接管第二SP的业务的SP。其中,第一SP为N个SP中正常运行的SP中的任一个;存储系统的状态由所述N个SP的状态组成。该方法通过将至少N个SP集成在一个存储系统中,当某一个SP发生故障时由另一个或多个SP接管故障SP的业务,只要同时故障的SP的数量小于N,存储系统均能持续可用,故降低了存储系统发生故障的概率,提高了存储系统对故障的容忍度。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种业务管理方法和存储控制器(StorageProcessor,简称:SP)。
背景技术
存储系统一般包括了SP和独立磁盘冗余阵列(Redundant Array of IndependentDisks,简称:RAID),其中SP负责实现系统管理、链路管理和输入输出(Input/Output,简称:IO)调度等功能,RAID负责实现最底层的数据读写功能,并提供不同RAID级别的数据保护。
为了使存储系统能够提供不间断的存储服务以及实现存储系统的高可用性,现有技术中的存储系统一般使用两个SP,这两个SP可按照“主备”模式或“主主”模式部署。在“主备”模式下,一个SP提供存储服务,称为“主SP”,另一个SP作为备份,称为“备SP”,当“主SP”发生故障时,“备SP”会接管“主SP”的业务。在“主主”模式下,两个SP同时提供存储服务,当某一个SP发生故障时,另一个SP会接管该故障SP的全部业务。
但双SP的存储系统仅能解决一个SP故障引起的存储系统不可用的问题,由于在双SP的存储系统中两个SP同时发生故障的风险仍比较高,因此双SP的存储系统无法满足业务对高可用性的需求。
发明内容
有鉴于此,本申请提供一种业务管理方法和SP,用以解决双SP的存储系统无法满足业务对高可用性的需求的问题。
具体地,本申请是通过如下技术方案实现的:
本申请第一方面,提供了一种业务管理方法,应用于存储系统,所述存储系统包括N个存储控制器SP,所述N为不小于3的整数,所述方法包括:
第一SP在确定第二SP发生故障且所述第二SP在发生故障之前承载有业务时,获取所述第二SP发生故障之后的所述存储系统的状态,然后根据获取的所述存储系统的状态,从所述N个SP中确定出负责接管所述第二SP的业务的SP,
其中,所述第一SP为所述N个SP中正常运行的SP中的任一个;所述存储系统的状态由所述N个SP的状态组成。
上述实现方式通过将至少N个SP集成在一个存储系统中,当某一个SP发生故障时,可以由另一个或多个SP接管故障SP的业务,且只要同时发生故障的SP的数量小于N,存储系统均能持续可用,从而降低了存储系统发生故障的概率,提高了存储系统对故障的容忍度。
在一个可能的设计中,所述N个SP分成M组,所述M为不大于N的整数。相应的,所述存储系统的状态用于指示所述N个SP中的每个SP是否发生故障、是否承载业务、是否接管不同组的其它SP的业务、是否接管同一组的其它SP的业务、自身业务是否被同一组的其它SP接管、自身业务是否被不同组的其它SP接管。
在一个可能的设计中,所述第一SP根据获取的所述存储系统的状态,从所述N个SP中确定出负责接管所述第二SP的业务的SP时,可以通过如下方式实现:
若所述第一SP根据获取的所述存储系统的状态,确定存在与所述第二SP属于同一组且正常运行的第三SP,则所述第一SP确定由所述第三SP负责接管所述第二SP的业务;
若所述第一SP根据获取的所述存储系统的状态,确定不存在与所述第二SP属于同一组且正常运行的所述第三SP,则所述第一SP确定由与所述第二SP不属于同一组但正常运行的第四SP负责接管所述第二SP的业务。
上述实现方式根据存储系统中各个SP的分组情况,规定让与故障SP同一组的正常SP优先接管故障SP的业务,在不存在于与故障SP同一组的正常SP的前提下,再让不同组的正常SP接管故障SP的业务。如此,各个SP可以快速简便地确定出由哪一个SP负责接管故障SP的业务。
在一个可能的设计中,在所述第一SP从所述N个SP中确定出负责接管所述第二SP的业务的SP之后,所述负责接管所述第二SP的业务的SP可以在确定所述第二SP恢复正常后,将接管的所述第二SP的业务交由所述第二SP继续处理。
上述实现方式,通过在确定故障SP恢复正常时及时地将原属于故障SP的业务交还给SP,有利于存储系统的业务均衡和高可用性。
在一个可能的设计中,所述N等于4,所述M等于2,每组内包括2个SP。基于这种架构的存储系统,所述N个SP中的每个SP的状态可以通过第一状态和第二状态联合表示;
所述第一状态包括以下情况:本组内的SP接管另一组内的SP的业务;本组内的SP未接管另一组内的SP的业务,且本组内的SP的业务未被另一个组内的SP接管;本组内的SP的业务被另一组内的SP接管,本组内存在至少一个正常运行但不承载业务的SP;本组内的SP均处于关机状态;
所述第二状态包括以下情况:本SP接管同一组内的另一SP的业务;本SP正常运行,未接管同一组内的另一SP的业务,且本SP的自身业务未被同一组内的另一SP接管;本SP正常运行但不承载业务,本SP的业务被同一组内的另一SP接管;本SP处于关机状态。
上述实现方式中,当所述存储系统包括4个SP,且这4个SP被均分成2组时,这种结构的存储系统能够较好地兼顾存储系统对故障的容忍度、存储系统的结构复杂度以及存储系统的状态描述的复杂度。
在一个可能的设计中,所述存储系统还包括RAID;所述N个SP中的任意两个SP之间通过PCIE总线连接;所述N个SP通过SAS链路与所述RAID相连。
本申请第二方面,提供了一种第一SP,应用于存储系统,所述存储系统包括N个SP,所述N为不小于3的整数,所述第一SP为所述N个SP中正常运行的SP中的任一个。所述第一SP具有实现上述方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块或单元。
一种可能的实现方式中,所述第一SP包括获取单元和确定单元;
所述获取单元,用于在确定第二SP发生故障且所述第二SP在发生故障之前承载有业务时,获取所述第二SP发生故障之后的所述存储系统的状态;所述存储系统的状态由所述N个SP的状态组成;
所述确定单元,用于根据获取的所述存储系统的状态,从所述N个SP中确定出负责接管所述第二SP的业务的SP。
另一种可能的实现方式中,所述第一SP包括处理器和用于存储所述处理器可执行指令的存储器,所述存储器和所述处理器之间通过总线系统相互连接;所述处理器用于执行以下操作:
在确定第二SP发生故障且所述第二SP在发生故障之前承载有业务时,获取所述第二SP发生故障之后的所述存储系统的状态;所述存储系统的状态由所述N个SP的状态组成;根据获取的所述存储系统的状态,从所述N个SP中确定出负责接管所述第二SP的业务的SP。
附图说明
图1是本申请一示例性实施例示出的一种三SP的存储系统的结构示意图;
图2是本申请一示例性实施例示出的一种四SP的存储系统的结构示意图;
图3是本申请一示例性实施例示出的一种六SP的存储系统的结构示意图;
图4是本申请一示例性实施例示出的一种业务管理方法的流程图;
图5A是本申请一示例性实施例示出的一种四SP的存储系统在场景一下的示意图;
图5B是本申请一示例性实施例示出的一种四SP的存储系统在场景二下的示意图;
图5C是本申请一示例性实施例示出的一种四SP的存储系统在场景三下的示意图;
图5D是本申请一示例性实施例示出的一种四SP的存储系统在场景四下的示意图;
图5E是本申请一示例性实施例示出的一种四SP的存储系统在场景五下的示意图;
图5F是本申请一示例性实施例示出的一种四SP的存储系统在场景六下的示意图;
图5G是本申请一示例性实施例示出的一种四SP的存储系统在场景七下的示意图;
图6A是本申请一示例性实施例示出的一种第一状态下的四种情况的转化示意图;
图6B是本申请一示例性实施例示出的一种第二状态下的四种情况的转化示意图;
图7是本申请一示例性实施例示出的一种第一SP的结构示意图;
图8是本申请一示例性实施例示出的另一种第一SP的结构示意图。
具体实施方式
以下,对本申请中的部分用语进行解释说明。
“第一SP”,泛指存储系统中正常运行的SP中的任一个SP。当存储系统中的某个或某些SP发生故障时,除已故障的SP外,其它正常运行的SP均会结合当前存储系统的状态做出统一的判断,决定由正常运行的SP中哪一个SP负责接管发生故障的SP上的业务。
“第二SP”,指存储系统中除所述第一SP和已故障的SP外的其它SP。
“组”,是本申请为简化业务管理机制而提出的一种概念,也可以采用其他的名称,如引擎(Engine)等。存储系统包括的SP被划分成至少一个组,每个组可以包括一个或多个SP,且一个SP仅归属于一个组。当存储系统包括的SP被划分成多个组时,每组内的SP的数量可以相同,也可以不同。一个组内包含的SP的数量可以是单数,也可以是偶数。需要注意的是,组仅是逻辑上的划分,组的创建不需要占用实际资源,只是在多个SP之间建立了一种关联关系。
“存储系统的状态”,由存储系统包括的所有SP的状态组成。每个SP的状态可以包括:该SP是否发生了故障,该SP上是否承载有业务,该SP是否接管了不同组的其它SP的业务,该SP是否接管了同一组的其它SP的业务,该SP自身的业务是否被同一组的其它SP所接管,以及该SP自身的业务是否被不同组的其它SP所接管等。
下面将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面结合说明书附图和各实施例对本发明技术方案进行说明。
为了解决上述双SP的存储系统存在的问题,本申请提出了一种业务管理方法和SP,通过将至少三个SP集成在一个存储系统中,降低了存储系统发生故障的概率,提高了存储系统对故障的容忍度。
本申请提供的业务管理方法,可应用于包括了N个SP的存储系统,所述N为不小于3的整数。
其中,所述N个SP可以被分成M组,所述M为大于0且不大于N的整数。
例如,如图1、图2和图3所示,分别为集成了3个SP、4个SP和6个SP的存储系统的结构示意图。图1中的3个SP为同一组。图2中的4个SP被均分成了两组,每组包括2个SP。图3中的6个SP同样被均分成了两组,每组包括3个SP。
所述N个SP中的任意两个SP之间通过总线连接,例如,所述总线可以是扩展外设部件互连标准(Peripheral Component Interconnect Express,简称:PCIE)总线。且所述N个SP分别与所述存储系统中的RAID独立相连,例如,所述N个SP可以通过序列式小型计算机系统接口(Serial Attached Small Computer System Interface,简称:SAS)链路与RAID相连。
任意两个SP之间通过相连的总线维持心跳通信和管理命令的交互。其中,SP通过心跳通信来检测与之相连的其它SP是否发生故障,通过管理命令的交互来确定其它SP所处理的业务和处理进度,便于后期的业务接管。
基于上述集成了N个SP的存储系统,本申请还提供了一种业务管理方法,如图4所示,所述方法包括以下步骤:
步骤401:第一SP在确定第二SP发生故障且所述第二SP在发生故障之前承载有业务时,获取所述第二SP发生故障之后的所述存储系统的状态;所述第一SP为所述N个SP中正常运行的SP中的任一个;所述存储系统的状态由所述N个SP的状态组成。
步骤402:所述第一SP根据获取的所述存储系统的状态,从所述N个SP中确定出负责接管所述第二SP的业务的SP。
为了描述所述存储系统的状态,可以将所述N个SP分成M组,所述M为不大于N的整数。从而,所述存储系统的状态用于指示所述N个SP中的每个SP是否发生故障、是否承载业务、是否接管不同组的其它SP的业务、是否接管同一组的其它SP的业务、自身业务是否被同一组的其它SP接管以及自身业务是否被不同组的其它SP接管。
可选的,步骤401中所述第一SP可以根据在所述第二SP发生故障之前最近一次获取到的存储系统的状态确定所述第二SP在发生故障之前是否承载有业务。若所述第二SP在发生故障之前未承载有业务,则所述SP无需进行后续的业务接管流程。
其中,第一SP在获取存储系统的状态时,可以采用如下任一可选的方式:
方式一,在获取所述第二SP发生故障之后的所述存储系统的状态时,所述第一SP可以向所述存储系统中除所述第一SP之外的其它SP中的每个SP发送状态查询请求。若其它SP处于正常运行状态,则在接收到状态查询请求后将当前自身的状态携带在状态查询响应中返回给所述第一SP。所述第一SP根据接收到的状态查询响应分别确定各个正常运行的SP的状态,并将未接收到状态查询响应的SP确定是已发生故障的SP。
方式二,所述第一SP也可以通过查询本地存储的状态信息确定所述第二SP发生故障之后的所述存储系统的状态,所述状态信息记录有所述存储系统中除所述第一SP之外的其它SP在确定自身的状态发生变化时发送的所述其它SP更新后的状态。相应的,所述第一SP在运行过程中一旦确定自身的状态发生变化时,也会将所述第一SP更新后的状态发送给所述存储系统中除所述第一SP之外的其它SP。
本申请中,所述第一SP在从所述N个SP中确定出负责接管所述第二SP的业务的SP以及在接管所述第二SP的业务之后,可以遵循以下三种规则。
规则一,当某个SP故障时,其业务由同一组内的SP优先接管。即,若所述第一SP根据所述第二SP发生故障之后的所述存储系统的状态,确定存在与所述第二SP属于同一组且正常运行的第三SP,则所述第一SP确定由所述第三SP负责接管所述第二SP的业务。
规则二,当与故障SP属于同一组的其它SP均故障时,故障SP的业务由另一组内的SP接管。即,若所述第一SP根据所述第二SP发生故障之后的所述存储系统的状态,确定不存在与所述第二SP属于同一组且正常运行的所述第三SP,则所述第一SP确定由与所述第二SP不属于同一组但正常运行的第四SP负责接管所述第二SP的业务。
可选的,当存在多个满足上述第一种或第二种条件的SP时,可以由这多个SP共同分担故障SP的业务,也可以进一步根据其它标准从这多个SP中选择出一个SP负责接管故障SP的业务。例如,可以从带宽、读写速度等角度从满足上述第一种或第二种条件的多个SP中选择出性能最优的一个SP。又例如,可以预先为存储系统包括的各个SP编号,当某个SP故障时从满足上述第一种或第二种条件的多个SP中选择出序号最大或序号最小的一个SP。又例如,可以根据负载均衡原则从满足上述第一种或第二种条件的多个SP中选择出当前业务量最少的一个SP。
规则三,当故障SP再次启动且运行正常后,接管了故障SP的业务的SP将原属于故障SP的业务重新恢复至该故障SP。即,如果是所述第一SP接管了所述第二SP的业务,后续所述第一SP在确定所述第二SP由故障恢复正常运行后,便将接管的所述第二SP的业务交由所述第二SP继续处理。
可选的,如果所述第二SP的业务在被所述第一SP接管时处于第一进度,在所述第二SP的修复期间,所述第一SP将接管的所述第二SP的业务由第一进度处理到了第二进度,那么所述第一SP将接管的所述第二SP的业务交由所述第二SP继续处理时,所述第二SP可以从第一进度开始继续处理,也可以直接从第二进度开始继续处理。
由上述描述可知,当存储系统中的某一个SP发生故障时,会有另一个或多个SP接管故障SP上的业务。存储系统包括的SP的数量越多,存储系统对故障的容忍度越高。例如,当一套存储系统中有3个SP时,该存储系统可以至多接受2个SP同时发生故障。而当一套存储系统中有6个SP时,该存储系统可以至多接受5个SP同时发生故障。
但SP数量的增多,存储系统的状态描述方式也会愈趋复杂。而存储系统的状态描述方式直接影响SP在决策由哪一个或哪几个SP负责接管故障SP的业务时所消耗的时间和资源。
下面结合图2示出的四SP的存储系统对本申请实施例进行详细描述,四SP的存储系统可以兼顾存储系统的故障容忍度以及存储系统状态描述方式的复杂度。
如图2所示,其中,SP-1和SP-2构成组1,SP-3和SP-4构成组2。
所述四SP的存储系统可以至多接受3个SP同时发生故障,当3个SP同时发生故障时由最后一个SP承担该存储系统上的所有业务,保证存储系统持续可用。而在实际应用中,同一套存储系统中的4个SP同时发生故障的可能性较低,基本可以忽略。因此,四SP的存储系统具有较高的故障容忍度。
基于图2所示的四SP的存储系统,本申请还提供了一种简便的状态描述方式。所述存储系统包括的每个SP的状态可以通过第一状态和第二状态联合表示。
其中,所述第一状态用于描述两组之间的相对状态,有以下四种情况:
第一,本组内的SP接管了另一组内的SP的业务。
第二,本组内的SP未接管另一组内的SP的业务,且本组内的SP的业务未被另一个组内的SP接管。
第三,本组内的SP的业务被另一组内的SP接管,本组内存在至少一个正常运行但不承载业务的SP。
第四,本组内的SP均处于关机状态。
所述第二状态用于描述同一组内两个SP之间的相对状态,也有以下四种情况:
第一,本SP接管了同一组内的另一SP的业务。
第二,本SP正常运行,未接管同一组内的另一SP的业务,且本SP的自身业务未被同一组内的另一SP接管。
第三,本SP正常运行但不承载业务,本SP的业务被同一组内的另一SP接管。
第四,本SP处于关机状态。
例如,当存储系统中的四个SP均正常运行且SP之间未发生业务接管时,每个SP的第一状态为上述第一状态中的第二种情况,每个SP的第二状态为上述第二状态中的第二种情况。
下面结合不同的场景对四SP的存储系统的状态描述方式和业务接管机制进行详尽说明。
为便于表述,以下将上述第一状态包括的第一种至第四种情况依次记为:组控制器多重负载状态(Dual)状态、组控制器自负载状态(Sole)状态、组控制器零负载状态(Free)状态、组控制器关机状态或离线状态(Absent)状态;将上述第二种状态包括的第一种至第四种情况依次记为:单控制器多重负载状态(Double)状态、单控制器自负载状态(Single)状态、单控制器零负载状态(Idle)状态和单控制器关机状态或离线状态(Poweroff)状态。以及,将存储系统的状态记为:[组1的第一状态(SP1的第二状态,SP2的第二状态),组2的第一状态(SP3的第二状态,SP4的第二状态)]的形式。如,四个SP均正常运行,且SP之间未发生业务的接管,可记为[Sole状态(Single状态,Single状态),Sole状态(Single状态,Single状态)]。
场景一:
如图5A所示,SP1发生了故障,其它三个SP通过心跳机制可发现系统异常。因与SP1同属于组1的SP2运行正常,根据上述规则一,由SP2接管SP1的业务,并对SP1做下电处理。当SP2完成业务接管之后,存储系统的状态可记为:[Sole状态(Poweroff状态,Double状态),Sole状态(Single状态,Single状态)],即组1和组2之间未发生业务接管,组1内的SP2接管了SP1的业务,SP1处于关机状态,组2内的SP正常运行且组2内的SP之间未发生业务接管。
场景二:
当图5A中的SP1重新启动并再次与其它三个SP建立了心跳通信时,存储系统的状态转化成:[Sole状态(Idle状态,Double状态),Sole状态(Single状态,Single状态)],即组1和组2之间未发生业务接管,组1内的SP2接管了SP1的业务,SP1正常运行但未承载业务,组2内的SP正常运行且组2内的SP之间未发生业务接管,如图5B所示。
如果此时将SP2接管的业务重新恢复到SP1上,则存储系统的状态转化为:[Sole状态(Single状态,Single状态),Sole状态(Single状态,Single状态)]。
场景三:
如图5C所示,当同一组内的两个SP都发生故障(同时故障或前后故障)时,根据上述规则二,另一组内的SP会接管这两个故障SP上的业务。图5C中考虑了负载均衡的原则,由SP3和SP4分别接管了SP1和SP2的部分业务。一种较为简单的方式是,由SP3接管SP1和SP2中的其中一个SP的业务,由SP4接管另一个SP的业务。
完成业务接管后的SP3和SP4分别对SP1和SP2做下电处理,存储系统的状态转化为:[Absent状态(Poweroff状态,Poweroff状态),Dual状态(Single状态,Single状态)],即组1内的SP均处于关机状态,组2内的SP接管了组1内的SP的业务,组2内的SP正常运行且组2内的SP之间未发生业务接管。
场景四:
当图5C中的SP2再次启动且运行正常,SP1仍关机时,存储系统的状态转化为:[Free状态(Poweroff状态,Double状态),Dual状态(Single状态,Single状态)],即组1内的SP的业务被组2内的SP接管,组1内的SP2正常运行但不承载业务,SP1处于关机状态,组2内的SP正常运行且组2内的SP之间未发生业务接管,如图5D所示。需要注意的是,此时SP2的第二状态虽然是Double状态,但由于SP2的第一状态为Free状态即被接管状态,因此SP2上没有承载业务。
根据上述规则一和规则三,可以将组2的SP3和SP4上原属于SP1和SP2的业务全部恢复至SP2。恢复之后的存储系统的状态可记为:[Sole状态(Poweroff状态,Double状态),Sole状态(Single状态,Single状态)],即组1和组2之间未发生业务接管,SP1处于关机状态,SP2接管了SP1的业务,组2内的SP正常运行且组2内的SP之间未发生业务接管。
场景五:
如图5E所示,当存储系统中的SP1、SP2和SP3均发生故障时,此时SP4需要接管SP1、SP2和SP3的全部业务。SP4完成业务接管后,存储系统的状态转化为:[Absent状态(Poweroff状态,Poweroff状态),Dual状态(Poweroff状态,Double状态)],即组1内的SP的业务被组2内的SP接管,组1内的SP均处于关机状态,组2内的SP3处于关机状态,组2内的SP4接管了SP3的业务。
场景六:
当图5E中的SP2再次启动且运行正常,SP1和SP3仍关机时,存储系统的状态转化为:存储系统的状态转化为:[Free状态(Poweroff状态,Double状态),Dual状态(Poweroff状态,Double状态)],即组1内的SP的业务被组2内的SP接管,组1内的SP2正常运行但不承载业务,SP1处于关机状态,组2内的SP3处于关机状态,且组2内的SP4接管了SP3的业务。需要注意的是,此时SP2的第二状态虽然是Double状态,但由于SP2的第一状态为Free状态即被接管状态,因此SP2上没有承载业务。
根据上述规则一和规则三,可以将组2的SP4上原属于SP1和SP2的业务全部恢复至SP2,如图5F所示。恢复后的存储系统的状态可记为:[Sole状态(Poweroff状态,Double状态),Sole状态(Poweroff状态,Double状态)],即组1和组2之间未发生业务接管,SP1处于关机状态,SP2接管了SP1的业务,SP3处于关机状态,SP4接管了SP3的业务。
场景七:
当图5D中的SP3和SP4同时故障时,因SP2正常运行,此时SP2需要接管SP1、SP3和SP4的全部业务,如图5G所示。SP2完成业务接管后,存储系统的状态转化为:[Dual状态(Poweroff状态,Double状态),Absent状态(Poweroff状态,Poweroff状态)],即组2内的SP的业务被组1内的SP接管,组2内的SP均处于关机状态,组1内的SP1处于关机状态,组1内的SP2接管了SP1的业务。
通过以上七种场景,可得到所述第一状态下的四种情况的转化机制,如图6A所示,当一个SP接管了不同组的SP的业务时,该负责接管业务的SP的第一状态有可能从第一状态的第二种情况转变成第一状态的第一种情况,如场景三中从Sole状态转变成Dual状态的SP3和SP4;也有可能从第一状态的第三种情况转变成第一状态的第一种情况,如场景七中从Free状态转变成Dual状态的SP1和SP2。当一个SP将接管的业务交还给不同组的SP时,该负责交还业务的SP的第一状态有可能从第一状态的第一种情况转变成第一状态的第二种情况,如场景六中从Dual状态转变成Sole状态的SP3和SP4,该被交还业务的SP的第一状态有可能从第一状态的第三种情况转变成第一状态的第二种情况,如场景四中从Free状态转变成Sole状态的SP1和SP2。此外,第一状态下的第一种情况、第二种情况和第三情况都可能因组内的SP均发生故障而转变成第一状态的第四种情况,而当组内的至少一个SP从关机状态重新启动后,该重新启动的SP的第一状态根据不同组的SP的第一状态,有可能转变成第一状态下的第一种情况、第二种情况和第三情况中的任一种情况。
通过以上七种场景,也可得到所述第二状态下的四种情况的转化机制,如图6B所示,当一个SP接管了同一组的SP的业务时,该负责接管业务的SP的第二状态有可能从第二状态的第二种情况转变成第二状态的第一种情况,如场景一中从Single状态转变成Double状态的SP2。当一个SP将接管的业务交还给同一组的SP时,该负责交还业务的SP的第二状态有可能从第二状态的第一种情况转变成第二状态的第二种情况,如场景二中从Double状态转变成Single状态的SP2;该被交还业务的SP的第二状态有可能从第二状态的第三种情况转变成第二状态的第二种情况,如场景二中从Idle状态转变成Single状态的SP1,也有可能从第二状态的第三种情况转变成第二状态的第一种情况。此外,第二状态下的第一种情况、第二种情况和第三情况都可能因SP发生故障而转变成第二状态的第四种情况,而当SP从关机状态重新启动后,该重新启动的SP的第二状态根据同一组的另一个SP的第二状态,有可能转变成第二状态下的第一种情况、第二种情况和第三情况中的任一种情况。
与前述业务管理方法的实施例相对应,本申请还提供了一种第一SP。所述第一SP可以运行在存储系统中,所述存储系统包括N个SP,所述N为不小于3的整数;所述第一SP为所述N个SP中正常运行的SP中的任一个。
请参考图7,图7为本申请一种示例性实施例中提供的第一SP的逻辑结构示意图,所述第一SP包括:
获取单元701,用于在确定第二SP发生故障且所述第二SP在发生故障之前承载有业务时,获取所述第二SP发生故障之后的所述存储系统的状态;所述存储系统的状态由所述N个SP的状态组成。
确定单元702,用于根据获取的所述存储系统的状态,从所述N个SP中确定出负责接管所述第二SP的业务的SP。
可选的,所述N个SP可以分成M组,所述M为不大于N的整数。
从而,所述存储系统的状态用于指示所述N个SP中的每个SP是否发生故障、是否承载业务、是否接管不同组的其它SP的业务、是否接管同一组的其它SP的业务、自身业务是否被同一组的其它SP接管、自身业务是否被不同组的其它SP接管。
可选的,所述确定单元702具体用于:若所述确定单元202根据获取的所述存储系统的状态,确定存在与所述第二SP属于同一组且正常运行的第三SP,则所述确定单元202确定由所述第三SP负责接管所述第二SP的业务;
若所述确定单元202根据获取的所述存储系统的状态,确定不存在与所述第二SP属于同一组且正常运行的所述第三SP,则所述确定单元202确定由与所述第二SP不属于同一组但正常运行的第四SP负责接管所述第二SP的业务。
可选的,所述负责接管所述第二SP的业务的SP在确定所述第二SP恢复正常后,将接管的所述第二SP的业务交由所述第二SP继续处理。
可选的,所述N可以等于4,所述M可以等于2,且每组内包括2个SP。基于此种架构,所述存储系统包括的4个SP中的每个SP的状态可以通过第一状态和第二状态联合表示。
所述第一状态包括以下情况:本组内的SP接管另一组内的SP的业务;本组内的SP未接管另一组内的SP的业务,且本组内的SP的业务未被另一个组内的SP接管;本组内的SP的业务被另一组内的SP接管,本组内存在至少一个正常运行但不承载业务的SP;本组内的SP均处于关机状态;
所述第二状态包括以下情况:本SP接管同一组内的另一SP的业务;本SP正常运行,未接管同一组内的另一SP的业务,且本SP的自身业务未被同一组内的另一SP接管;本SP正常运行但不承载业务,本SP的业务被同一组内的另一SP接管;本SP处于关机状态。
可选的,所述存储系统还包括RAID。所述N个SP中的任意两个SP之间通过PCIE总线连接;所述N个SP通过SAS链路与所述RAID相连。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
其中,集成的单元采用硬件的形式实现时,所述获取单元701和所述确定单元702对应的实体的硬件可以是处理器,例如图8的处理器801。
基于上述提供的业务管理方法,本申请还提供一种第一SP,如图8所示,包括处理器801和存储器802,例如,所述处理器801和所述存储器802通过总线803相互连接。
所述存储器802用于存储所述处理器801的可执行指令。
所述处理器801被配置为:在确定第二SP发生故障且所述第二SP在发生故障之前承载有业务时,获取所述第二SP发生故障之后的所述存储系统的状态;根据获取的所述存储系统的状态,从所述N个SP中确定出负责接管所述第二SP的业务的SP。
其中,所述存储系统的状态用于指示所述N个SP中的每个SP是否发生故障、是否承载业务、是否接管不同组的其它SP的业务、是否接管同一组的其它SP的业务、自身业务是否被同一组的其它SP接管、自身业务是否被不同组的其它SP接管。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
综上所述,本申请的技术方案通过将至少三个SP集成在一个存储系统中,降低了存储系统发生故障的概率,提高了存储系统对故障的容忍度,且这种架构的存储系统无需花费磁盘容量用于建立RAID逻辑资源的副本,节省了成本。并且,本申请提供的技术方案通过对所述至少三个SP进行分组,当某一个SP故障时,正常运行的SP根据存储系统中各个SP与分组情况相关的状态信息,即可快速简便地确定出由哪一个SP负责接管故障SP的业务。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (8)
1.一种业务管理方法,应用于存储系统,其特征在于,所述存储系统包括N个存储控制器SP,所述N为不小于3的整数,所述方法包括:
第一SP在确定第二SP发生故障且所述第二SP在发生故障之前承载有业务时,获取所述第二SP发生故障之后的所述存储系统的状态;所述第一SP为所述N个SP中正常运行的SP中的任一个;所述存储系统的状态由所述N个SP的状态组成;
所述第一SP根据获取的所述存储系统的状态,从所述N个SP中确定出负责接管所述第二SP的业务的SP;
所述第一SP根据获取的所述存储系统的状态,从所述N个SP中确定出负责接管所述第二SP的业务的SP,包括:
若所述第一SP根据获取的所述存储系统的状态,确定存在与所述第二SP属于同一组且正常运行的第三SP,则所述第一SP确定由所述第三SP负责接管所述第二SP的业务;
若所述第一SP根据获取的所述存储系统的状态,确定不存在与所述第二SP属于同一组且正常运行的所述第三SP,则所述第一SP确定由与所述第二SP不属于同一组但正常运行的第四SP负责接管所述第二SP的业务。
2.如权利要求1所述的方法,其特征在于,所述N个SP分成M组,所述M为不大于N的整数;
所述存储系统的状态用于指示所述N个SP中的每个SP是否发生故障、是否承载业务、是否接管不同组的其它SP的业务、是否接管同一组的其它SP的业务、自身业务是否被同一组的其它SP接管、自身业务是否被不同组的其它SP接管。
3.如权利要求1所述的方法,其特征在于,在所述第一SP从所述N个SP中确定出负责接管所述第二SP的业务的SP之后,所述方法还包括:
所述负责接管所述第二SP的业务的SP在确定所述第二SP恢复正常后,将接管的所述第二SP的业务交由所述第二SP继续处理。
4.如权利要求2所述的方法,其特征在于,所述N等于4,所述M等于2,每组内包括2个SP;
所述N个SP中的每个SP的状态通过第一状态和第二状态联合表示;
所述第一状态包括以下情况:本组内的SP接管另一组内的SP的业务;本组内的SP未接管另一组内的SP的业务,且本组内的SP的业务未被另一个组内的SP接管;本组内的SP的业务被另一组内的SP接管,本组内存在至少一个正常运行但不承载业务的SP;本组内的SP均处于关机状态;
所述第二状态包括以下情况:本SP接管同一组内的另一SP的业务;本SP正常运行,未接管同一组内的另一SP的业务,且本SP的自身业务未被同一组内的另一SP接管;本SP正常运行但不承载业务,本SP的业务被同一组内的另一SP接管;本SP处于关机状态。
5.一种第一SP,应用于存储系统,其特征在于,所述存储系统包括N个SP,所述N为不小于3的整数,所述第一SP为所述N个SP中正常运行的SP中的任一个;所述第一SP包括:
获取单元,用于在确定第二SP发生故障且所述第二SP在发生故障之前承载有业务时,获取所述第二SP发生故障之后的所述存储系统的状态;所述存储系统的状态由所述N个SP的状态组成;
确定单元,用于根据获取的所述存储系统的状态,从所述N个SP中确定出负责接管所述第二SP的业务的SP;
所述确定单元具体用于:
若所述确定单元根据获取的所述存储系统的状态,确定存在与所述第二SP属于同一组且正常运行的第三SP,则所述确定单元确定由所述第三SP负责接管所述第二SP的业务;
若所述确定单元根据获取的所述存储系统的状态,确定不存在与所述第二SP属于同一组且正常运行的所述第三SP,则所述确定单元确定由与所述第二SP不属于同一组但正常运行的第四SP负责接管所述第二SP的业务。
6.如权利要求5所述的第一SP,其特征在于,所述N个SP分成M组,所述M为不大于N的整数;
所述存储系统的状态用于指示所述N个SP中的每个SP是否发生故障、是否承载业务、是否接管不同组的其它SP的业务、是否接管同一组的其它SP的业务、自身业务是否被同一组的其它SP接管、自身业务是否被不同组的其它SP接管。
7.如权利要求5所述的第一SP,其特征在于,所述负责接管所述第二SP的业务的SP在确定所述第二SP恢复正常后,将接管的所述第二SP的业务交由所述第二SP继续处理。
8.如权利要求6所述的第一SP,其特征在于,所述N等于4,所述M等于2,每组内包括2个SP;
所述N个SP中的每个SP的状态通过第一状态和第二状态联合表示;
所述第一状态包括以下情况:本组内的SP接管另一组内的SP的业务;本组内的SP未接管另一组内的SP的业务,且本组内的SP的业务未被另一个组内的SP接管;本组内的SP的业务被另一组内的SP接管,本组内存在至少一个正常运行但不承载业务的SP;本组内的SP均处于关机状态;
所述第二状态包括以下情况:本SP接管同一组内的另一SP的业务;本SP正常运行,未接管同一组内的另一SP的业务,且本SP的自身业务未被同一组内的另一SP接管;本SP正常运行但不承载业务,本SP的业务被同一组内的另一SP接管;本SP处于关机状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610625253.7A CN106294031B (zh) | 2016-07-29 | 2016-07-29 | 一种业务管理方法和存储控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610625253.7A CN106294031B (zh) | 2016-07-29 | 2016-07-29 | 一种业务管理方法和存储控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106294031A CN106294031A (zh) | 2017-01-04 |
CN106294031B true CN106294031B (zh) | 2019-07-12 |
Family
ID=57664328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610625253.7A Active CN106294031B (zh) | 2016-07-29 | 2016-07-29 | 一种业务管理方法和存储控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106294031B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294031B (zh) * | 2016-07-29 | 2019-07-12 | 杭州宏杉科技股份有限公司 | 一种业务管理方法和存储控制器 |
CN107577425A (zh) * | 2017-08-23 | 2018-01-12 | 杭州宏杉科技股份有限公司 | 一种数据迁移方法及装置 |
EP3995965A4 (en) * | 2019-07-23 | 2022-07-06 | Huawei Technologies Co., Ltd. | METHOD OF OBTAINING STORAGE SERVICE CONTINUITY IN A STORAGE SYSTEM, FRONT-END INTERFACE CARD AND STORAGE SYSTEM |
JP7122332B2 (ja) * | 2020-02-26 | 2022-08-19 | 株式会社日立製作所 | 情報処理システム及び方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1905566A (zh) * | 2006-08-16 | 2007-01-31 | 杭州华为三康技术有限公司 | 在网络存储业务中实现系统高可用性的方法和系统 |
CN101576837A (zh) * | 2009-06-12 | 2009-11-11 | 成都市华为赛门铁克科技有限公司 | 一种存储控制系统及方法 |
CN101651559A (zh) * | 2009-07-13 | 2010-02-17 | 浪潮电子信息产业股份有限公司 | 一种存储服务在双控制器存储系统中故障切换的方法 |
CN102122257A (zh) * | 2011-03-11 | 2011-07-13 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘阵列缓存数据的保存方法以及磁盘阵列 |
CN105607872A (zh) * | 2015-12-17 | 2016-05-25 | 山东海量信息技术研究院 | 一种存储装置 |
CN106294031A (zh) * | 2016-07-29 | 2017-01-04 | 杭州宏杉科技有限公司 | 一种业务管理方法和存储控制器 |
CN104023246B (zh) * | 2014-04-28 | 2018-01-30 | 深圳英飞拓科技股份有限公司 | 一种视频数据私有云存储系统和视频数据私有云存储方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3714613B2 (ja) * | 2001-12-12 | 2005-11-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 記憶装置、該記憶装置を含む情報処理装置および情報記憶システムのリカバリ方法 |
-
2016
- 2016-07-29 CN CN201610625253.7A patent/CN106294031B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1905566A (zh) * | 2006-08-16 | 2007-01-31 | 杭州华为三康技术有限公司 | 在网络存储业务中实现系统高可用性的方法和系统 |
CN101576837A (zh) * | 2009-06-12 | 2009-11-11 | 成都市华为赛门铁克科技有限公司 | 一种存储控制系统及方法 |
CN101651559A (zh) * | 2009-07-13 | 2010-02-17 | 浪潮电子信息产业股份有限公司 | 一种存储服务在双控制器存储系统中故障切换的方法 |
CN102122257A (zh) * | 2011-03-11 | 2011-07-13 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘阵列缓存数据的保存方法以及磁盘阵列 |
CN104023246B (zh) * | 2014-04-28 | 2018-01-30 | 深圳英飞拓科技股份有限公司 | 一种视频数据私有云存储系统和视频数据私有云存储方法 |
CN105607872A (zh) * | 2015-12-17 | 2016-05-25 | 山东海量信息技术研究院 | 一种存储装置 |
CN106294031A (zh) * | 2016-07-29 | 2017-01-04 | 杭州宏杉科技有限公司 | 一种业务管理方法和存储控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN106294031A (zh) | 2017-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5102901B2 (ja) | データセンタにわたる複数データサーバ間のデータ完全性を保持する方法およびシステム | |
US7536586B2 (en) | System and method for the management of failure recovery in multiple-node shared-storage environments | |
US8375363B2 (en) | Mechanism to change firmware in a high availability single processor system | |
US8286026B2 (en) | Fault-tolerance and fault-containment models for zoning clustered application silos into continuous availability and high availability zones in clustered systems during recovery and maintenance | |
US7194652B2 (en) | High availability synchronization architecture | |
CN106294031B (zh) | 一种业务管理方法和存储控制器 | |
US7076689B2 (en) | Use of unique XID range among multiple control processors | |
US7188237B2 (en) | Reboot manager usable to change firmware in a high availability single processor system | |
US8191078B1 (en) | Fault-tolerant messaging system and methods | |
JP5523468B2 (ja) | 直接接続ストレージ・システムのためのアクティブ−アクティブ・フェイルオーバー | |
US7895468B2 (en) | Autonomous takeover destination changing method in a failover | |
US20110231602A1 (en) | Non-disruptive disk ownership change in distributed storage systems | |
US20070061379A1 (en) | Method and apparatus for sequencing transactions globally in a distributed database cluster | |
JP2009187483A (ja) | ストレージサブシステム及びこれの制御方法 | |
US7065673B2 (en) | Staged startup after failover or reboot | |
CN1989500A (zh) | 文件系统串行化重新初始化装置、方法和系统 | |
US7685461B2 (en) | Method, apparatus and program storage device for performing fault tolerant code upgrade on a fault tolerant system by determining when functional code reaches a desired state before resuming an upgrade | |
CN104023246B (zh) | 一种视频数据私有云存储系统和视频数据私有云存储方法 | |
CN102394914A (zh) | 集群脑裂处理方法和装置 | |
CN104994168A (zh) | 分布式存储方法及分布式存储系统 | |
US7353285B2 (en) | Apparatus, system, and method for maintaining task prioritization and load balancing | |
US10445295B1 (en) | Task-based framework for synchronization of event handling between nodes in an active/active data storage system | |
US7711978B1 (en) | Proactive utilization of fabric events in a network virtualization environment | |
US10572188B2 (en) | Server-embedded distributed storage system | |
JP5154843B2 (ja) | クラスタシステム、計算機、および障害回復方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Hangzhou City, Zhejiang Province, Binjiang District West Street 310053 Qianmo Road No. 482 building eleventh layer to the twelfth layer A Applicant after: Hangzhou Sequoia Polytron Technologies Inc Address before: Hangzhou City, Zhejiang Province, Binjiang District West Street 310053 Qianmo Road No. 482 building eleventh layer to the twelfth layer A Applicant before: Hangzhou MacroSAN Technologies Co., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |