CN105528202A - 多控制器系统的资源处理方法及装置 - Google Patents

多控制器系统的资源处理方法及装置 Download PDF

Info

Publication number
CN105528202A
CN105528202A CN201410568338.7A CN201410568338A CN105528202A CN 105528202 A CN105528202 A CN 105528202A CN 201410568338 A CN201410568338 A CN 201410568338A CN 105528202 A CN105528202 A CN 105528202A
Authority
CN
China
Prior art keywords
controller
resource
service marking
resource pond
load
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
Application number
CN201410568338.7A
Other languages
English (en)
Other versions
CN105528202B (zh
Inventor
刘煌
许奇
杨长江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201410568338.7A priority Critical patent/CN105528202B/zh
Priority to PCT/CN2015/072799 priority patent/WO2016061958A1/zh
Priority to US15/521,383 priority patent/US20170308469A1/en
Publication of CN105528202A publication Critical patent/CN105528202A/zh
Application granted granted Critical
Publication of CN105528202B publication Critical patent/CN105528202B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error 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 the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error 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 the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/0645Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis by additionally acting on or stimulating the network after receiving notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提供了一种多控制器系统的资源处理方法及装置,该方法包括:多控制器系统中的控制器无法感知对方控制器存在;控制器根据对方控制器之前加载的第一资源池中存储的第一使用标志来判断对方控制器是否加载第一资源池。通过本发明解决了多控制器系统中脑裂检测机制成本高、存在可能失效的问题,在无需增加任何第三方设备也不增加专门仲裁盘的情况下,对多控制器系统中是否发生脑裂状态进行检测,节省了成本,增加了检测的可靠性和稳定性。

Description

多控制器系统的资源处理方法及装置
技术领域
本发明涉及通信领域,具体而言,涉及一种多控制器系统的资源处理方法及装置。
背景技术
共享后端存储的多控制器系统,包含多个控制器。正常的情况下控制器之间通过一种检测机制(例如,心跳信号)来判断对方状态,当某个或某些控制器关机或离开,另外的控制器会接管其上运行的存储池资源,以保证系统正常运行。如果控制器之间通信中断或者异常,控制器就会无法感知对端存在而发生脑裂。下面以双控制器系统为例进行说明,图1是根据相关技术中双控制器系统中出现脑裂情况的示意图,如图1所示,双控制器都认为对端已正常关机或离开,进而触发双控制器对同一个后端存储对象(如存储池资源)的接管。一般存储对象的使用需要互斥,而在脑裂场景下,存储对象就有可能因为被双控制器同时接管使用而遭到破坏。
在目前的多控制器系统中,通常是通过增加第三方节点或者仲裁盘的方法来辅助判断脑裂是否发生,避免双控制器同时争抢存储池资源。
图2是根据相关技术中通过第三方节点判断双控制器系统中是否出现脑裂情况的示意图,如图2所示,当双控制器间通信中断时,双控制器可以通过询问第三方节点,由第三方节点告诉其对端节点是否异常。但是增加第三方节点的做法并不能绝对保证判断准确,比如第三方节点和设备之间通道出现异常同样可能出现误判,且增加第三方节点的成本较大。
图3是根据相关技术中通过仲裁盘判断双控制器系统中是否出现脑裂情况的示意图,但是通过仲裁盘的方式一是浪费硬盘,二是硬盘没有冗余备份,当仲裁盘故障时,检测机制就会失效。
针对多控制器系统中脑裂检测机制成本高、存在可能失效的问题,目前尚未提出有效的解决方案。
发明内容
本发明提供了一种多控制器系统的资源处理方法及装置,以解决多控制器系统中脑裂检测机制成本高、存在可能失效的问题。
根据本发明的一个方面,提供了一种多控制器系统的资源处理方法,包括:所述多控制器系统中的控制器无法感知对方控制器存在;所述控制器根据所述对方控制器之前加载的第一资源池中存储的第一使用标志来判断所述对方控制器是否加载所述第一资源池,其中,所述第一使用标志用于标识所述对方控制器是否加载所述第一资源池。
进一步地,在所述控制器根据所述第一使用标志来判断所述对方控制器是否加载所述第一资源池之前,所述方法还包括:所述多控制器系统中的每个控制器向各自加载的资源池定时写入第一使用标志,其中,所述第一使用标志用于标识该控制器是否加载该控制器的资源池。
进一步地,在所述控制器根据所述第一使用标志判断出所述对方控制器未加载所述第一资源池的情况下,所述方法还包括:所述控制器在所述第一资源池中写入用于指示所述控制器加载所述第一资源池的第二使用标志,并加载所述第一资源池。
进一步地,在所述控制器在所述第一资源池中写入用于指示所述控制器加载所述第一资源池的第二使用标志之后,所述方法还包括:所述控制器根据所述第一资源池中的所述第一使用标志判断所述对方控制器是否加载所述第一资源池,在判断结果为是的情况下,所述控制器不加载所述第一资源池,并清除所述第二使用标志。
进一步地,所述控制器根据所述第一资源池中存储的第一使用标志判断所述对方控制器是否加载所述第一资源池包括:在所述第一使用标志包括:用于指示控制器是否加载资源池的标识信息情况下,所述控制器根据所述标识信息的值确定所述对方控制器是否加载所述第一资源池;和/或,在所述第一使用标志包括:用于指示控制器是否加载资源池的标识信息和写入所述标识信息的时间戳的情况下,所述控制器判断在预定时长内所述时间戳是否发生变化,如果发生变化,则确定所述对方控制器加载所述第一资源池;否则,确定所述对方控制器未加载所述第一资源池。
进一步地,所述每个控制器向各自加载的资源池定时写入所述第一使用标志包括:所述每个控制器向各自加载的资源池中对应的逻辑区域写入所述第一使用标志,其中,所述资源池在逻辑上均划分为n个区域,每个区域对应一个控制器,每个区域写入的第一使用标志表示该区域对应的控制器对所述资源池的加载情况。
根据本发明的另一个方面,还提供了一种多控制器系统的资源处理装置,位于控制器中,所述装置包括:感知模块,用于感知对方控制器是否存在;判断模块,用于在所述感知模块无法感知所述对方控制器存在的情况下,根据所述对方控制器之前加载的第一资源池中存储的第一使用标志来判断所述对方控制器是否加载所述第一资源池。
进一步地,所述装置还包括:第一写入模块,用于向所述控制器加载的资源池定时写入第一使用标志,其中,所述第一使用标志用于标识该控制器是否加载该控制器的资源池。
进一步地,所述装置还包括:第二写入模块,在所述判断模块判断出所述对方控制器未加载所述第一资源池的情况下,用于在所述第一资源池中写入用于指示所述控制器加载所述第一资源池的第二使用标志,并加载所述第一资源池。
进一步地,所述第二写入模块,还用于在写入所述第二使用标志之后,根据所述第一资源池中的所述第一使用标志判断所述对方控制器是否加载所述第一资源池,在判断结果为是的情况下,不加载所述第一资源池,并清除所述第二使用标志。
进一步地,所述判断模块包括:第一判断单元,在所述第一使用标志包括:用于指示控制器是否加载资源池的标识信息情况下,用于根据所述标识信息的值确定所述对方控制器是否加载所述第一资源池;和/或,第二判断单元,在所述第一使用标志包括:用于指示控制器是否加载资源池的标识信息和写入所述标识信息的时间戳的情况下,用于判断在预定时长内所述时间戳是否发生变化,如果发生变化,则确定所述对方控制器加载所述第一资源池;否则,确定所述对方控制器未加载所述第一资源池。
进一步地,第一写入模块包括:逻辑模块,用于向所述控制器加载的资源池中对应的逻辑区域写入所述第一使用标志,其中,所述资源池在逻辑上均划分为n个区域,每个区域对应一个控制器,每个区域写入的第一使用标志表示该区域对应的控制器对所述资源池的加载情况。
通过本发明,采用多控制器系统中的控制器无法感知对方控制器存在;该控制器根据所述对方控制器之前加载的第一资源池中存储的第一使用标志来判断所述对方控制器是否加载所述第一资源池,其中,所述第一使用标志用于标识所述对方控制器是否加载所述第一资源池。解决了多控制器系统中脑裂检测机制成本高、存在可能失效的问题,在无需增加任何第三方设备也不增加专门仲裁盘的情况下,对多控制器系统中是否发生脑裂状态进行检测,节省了成本,增加了检测的可靠性和稳定性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术中双控制器系统中出现脑裂情况的示意图;
图2是根据相关技术中通过第三方节点判断双控制器系统中是否出现脑裂情况的示意图;
图3是根据相关技术中通过仲裁盘判断双控制器系统中是否出现脑裂情况的示意图;
图4是根据本发明实施例的多控制器系统的资源处理方法的流程图;
图5是根据本发明实施例的多控制器系统的资源处理装置的结构框图;
图6是根据本发明可选实施例的双控制器系统的资源处理方法的正常运行示意图;
图7是根据本发明可选实施例的双控制器系统的资源处理方法的存储池的标记区域的raid示意图;
图8是根据本发明可选实施例的双控制器系统的资源处理方法的脑裂状态的示意图;
图9是根据本发明可选实施例的双控制器系统的资源处理方法的脑裂状态时,存储池标记区域示意图;
图10是根据本发明可选实施例的双控制器系统的资源处理方法的流程图一;
图11是根据本发明可选实施例的双控制器系统的资源处理方法的流程图二;
图12是根据本发明可选实施例的双控制器系统的资源处理装置的结构框图进行脑裂检测的模块使用流程图。
具体实施例
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
以下实施例中的多控制器系统中含有两个或两个以上的控制器,对方控制器可以表示除该控制器自身外所有多控制器系统中的其他控制器中的部分或全部,例如,对方控制器可以是一个控制器,也可以是多个控制器。
本实施例提供了一种多控制器系统的资源处理方法,图4是根据本发明实施例的多控制器系统的资源处理方法的流程图,如图4所示,该流程包括如下步骤:
步骤S402:多控制器系统中的控制器无法感知对方控制器存在;
步骤S404:该控制器根据对方控制器之前加载的资源池中存储的第一使用标志,判断对方控制器是否加载该第一资源池,其中,第一使用标志用于标识对方控制器是否加载第一资源池。该步骤中的“之前”是指在控制器无法感知对方控制器之前,对方控制器加载的资源池,为了描述方便,在本实施例中均使用第一资源池来进行描述,其中的“第一”仅仅是一种标记,并不是对资源池的限定。
通过上述各个步骤,可以通过读取资源池中的使用标志来确定对方是否仍然在加载资源池。该使用标志保存在资源池中,这样就不需要增加额外的节点和仲裁盘,从而解决了多控制器系统中脑裂检测机制成本高、存在可能失效的问题,节省了成本,增加了检测的可靠性。
在一个可选的实施例中,每个控制器均可以在某个时机向各自加载的资源池定时写入第一使用标志,例如,可以在步骤S404之前进行写入。各个控制器写入各自加载的资源池的第一使用标志是用来标识该控制器是否加载该控制器的资源池的。
在步骤S404中,控制器根据对方控制器加载的资源池中存储的第一使用标志判断对方控制器是否加载第一资源池,控制器的判断结果有两种。在一个可选的实施例中,如果控制器判断出对方控制器未加载第一资源池,控制器就在该第一资源池中写入用于指示控制器加载该第一资源池的第二使用标志,并加载第一资源池。当然,该控制器也可以通知其他控制器或设备来加载第一资源池。
在上述可选的实施例中,控制器根据第一资源池中存储的第一使用标志判断出对方控制器未加载第一资源池后,在第一资源池中写入第二使用标志,同时对第一资源池进行加载。通过该第二使用标志可以表明该资源池已经被加载,可以防止其他控制器再次加载该第一资源池。
在一个可选的实施例中,在控制器在该第一资源池中写入用于指示控制器加载该第一资源池的第二使用标志之后,还可以进行进一步地判断对方控制器是否可以加载第一资源池了。例如,控制器可以根据第一资源池中的第一使用标志判断对方控制器是否加载了第一资源池,在判断结果为是的情况下,控制器不加载该第一资源池,并清除第二使用标志。
通过再次进行判断后,对第一资源池进行加载或者不加载的方式,可以在一定程度上避免脑裂状态的误检,增加了检测的可靠性。
对于控制器是如何根据第一资源池中存储的第一使用标志对对方控制器是否加载该第一资源池进行判断,有多种实现方式。下面以三种可选的实施方式进行说明:
在可选实施方式一中,第一使用标志包括用于指示控制器是否加载资源池的标识信息,控制器根据该标识信息的值确定对方控制器是否加载该第一资源池。
例如,在一个双控制器系统中,用于指示控制器是否加载资源池的标识信息为布尔值,当第一资源池存储的该标识信息为1时,表示对方控制器加载了该第一资源池。当第一资源池存储的该标识信息为0时,表示对方控制器未加载该第一资源池。
通过采用上述方法,使脑裂的检测更加容易。
在可选实施方式二中,第一使用标志包括用于指示控制器是否加载资源池的标识信息和写入该标识信息的时间戳,控制器判断在预定时长内时间戳是否发生变化,如果发生变化,则确定对方控制器加载该第一资源池;否则,确定对方控制器未加载该第一资源池。
在可选实施方式三中,第一使用标志包括用于指示控制器是否加载资源池的标识信息和写入该标识信息的时间戳,控制器根据该标识信息的值,确定对方控制器是否加载该第一资源池,如果控制器根据该标识信息的值,确定对方控制器加载该第一资源池,控制器进一步判断在预定时长内,时间戳是否发生变化,如果发生变化,则确定对方控制器加载该第一资源池;否则,确定对方控制器未加载该第一资源池。或者,如果控制器根据该标识信息的值,确定对方控制器未加载该第一资源池,控制器进一步判断在预定时长内,时间戳是否发生变化,如果发生变化,则确定对方控制器加载该第一资源池;否则,确定对方控制器未加载该第一资源池。
通过采取上述方法,通过对标识信息和时间戳的双重判断,节省了多控制器系统中对是否发生脑裂的检测成本,进一步增加了检测的可靠性。
上述判断方式是对第一使用标志进行判断的方式,上述几种方式也可以在判断第二使用标志时使用。
对于第一使用标志的写入方式,在一个可选的实施例中,每个控制器向各自加载的资源池定时写入第一使用标志包括:每个控制器向各自加载的资源池中对应的逻辑区域写入第一使用标志,其中,资源池在逻辑上均划分为n个区域,每个区域对应一个控制器,每个区域写入的第一使用标志表示该区域对应的控制器对资源池的加载情况。
通过采取每个控制器向各自加载的资源池中对应的逻辑区域写入第一使用标志的方法,且n个区域是在资源池上逻辑划分的,这n个区域继承了资源池的特性,使得n个控制器通过对n个区域中第一使用标志的判断,可以得出当前状态是否发生脑裂,避免了多个控制器同时对某一区域进行加载而造成数据破坏。
在实施例中还提供了一种装置,该装置与上述实施例中的方法相对应,已经进行过说明的在此不再赘述。该装置中的模块或单元可以是存储在控制器中并可以被处理器运行的代码,也可以用其他方式实现,在此不再一一举例。
根据本发明的一个方面,还提供了一种多控制器系统的资源处理装置,图5是根据本发明实施例的多控制器系统的资源处理装置的结构框图,如图5所示,该装置包括:
感知模块52,用于感知对方控制器是否存在;
判断模块54,用于在感知模块52无法感知该对方控制器存在的情况下,根据该对方控制器之前加载的第一资源池中存储的第一使用标志来判断该对方控制器是否加载该第一资源池。
通过上述各个模块,可以通过读取资源池中的使用标志来确定对方是否仍然在加载资源池。该使用标志保存在资源池中,这样就不需要增加额外的节点和仲裁盘,从而解决了多控制器系统中脑裂检测机制成本高、存在可能失效中的问题,节省了成本,增加了检测的可靠性。
在一个可选的实施例中,每个控制器均可以在某个时机向各自加载的资源池定时写入第一使用标志,例如,该装置还可以包括:第一写入模块,用于向控制器加载的资源池定时写入第一使用标志,其中,第一使用标志用于标识该控制器是否加载该控制器的资源池。
判断模块54进行判断后的结果包括两种。在一个可选的实施例中,该装置还包括:
第二写入模块,在判断模块54判断出对方控制器未加载该第一资源池的情况下,用于在第一资源池中写入用于指示该控制器加载第一资源池的第二使用标志,并加载第一资源池。当然,该装置也可以采取通知其他控制器或设备来加载第一资源池的方式。
在上述可选的实施例中,判断模块54根据第一资源池中存储的第一使用标志判断出对方控制器未加载第一资源池后,第二写入模块在第一资源池中写入第二使用标志,同时对第一资源池进行加载。通过该第二使用标志可以表明该资源池已经被加载,可以防止其他控制器再次加载该第一资源池。
在一个可选的实施例中,还可以进行进一步地判断:
第二写入模块,在写入第二使用标志之后,还用于根据第一资源池中的第一使用标志判断对方控制器是否加载该第一资源池,在判断结果为是的情况下,不加载该第一资源池,并清除第二使用标志。
通过再次进行判断后,第二写入模块对第一资源池进行加载或者不加载的方式,可以在一定程度上避免脑裂状态的误检,增加了检测的可靠性。
对于判断模块54是如何根据第一资源池中存储的第一使用标志对对方控制器是否加载该第一资源池进行判断,有多种实现方式。下面我们对其中三种可选的实施方式进行说明:
在可选实施方式一中,判断模块54包括第一判断单元,在第一使用标志包括用于指示控制器是否加载资源池的标识信息的情况下,第一判断单元,用于根据该标识信息的值确定对方控制器是否加载该第一资源池。
例如,在一个双控制器系统中,第一判断单元用于指示控制器是否加载资源池的标识信息为布尔值,第一判断单元读取到第一资源池存储的该标识信息为1时,表示对方控制器加载了该第一资源池。第一判断单元读取到方控制器的资源池存储的该标识信息为0时,表示对方控制器未加载该第一资源池。
通过利用上述第一判断单元,使脑裂的检测更加容易。
在可选实施方式二中,判断模块54包括第二判断单元,在第一使用标志包括用于指示控制器是否加载资源池的标识信息和写入该标识信息的时间戳的情况下,第二判断单元,用于判断在预定时长内时间戳是否发生变化,如果发生变化,则确定对方控制器加载该第一资源池;否则,确定对方控制器未加载该第一资源池。
在可选实施方式三中,判断模块54包括第一判断单元和第二判断单元,在第一使用标志包括用于指示控制器是否加载资源池的标识信息和写入该标识信息的时间戳的情况下,第一判断单元,用于根据该标识信息的值,确定对方控制器是否加载该第一资源池,如果第一判断单元根据该标识信息的值,确定对方控制器加载该第一资源池,那么第二判断单元进一步判断在预定时长内,时间戳是否发生变化,如果发生变化,则确定对方控制器加载该第一资源池;否则,确定对方控制器未加载该第一资源池。或者,如果第一判断单元根据该标识信息的值,确定对方控制器未加载该第一资源池,第二判断单元进一步判断在预定时长内,时间戳是否发生变化,如果发生变化,则确定对方控制器加载该第一资源池;否则,确定对方控制器未加载该第一资源池。
通过第一判断单元对标识信息和第二判断单元对时间戳的双重判断,节省了多控制器系统中对是否发生脑裂的检测成本,进一步增加了检测的可靠性。
上述判断方式是对第一使用标志进行判断的方式,上述几种方式也可以在判断第二使用标志时使用。
对于第一使用标志的写入方式,在一个可选的实施例中,第一写入模块52包括:逻辑模块,用于每个控制器向各自加载的资源池中对应的逻辑区域写入第一使用标志,其中,资源池在逻辑上均划分为n个区域,每个区域对应一个控制器,每个区域写入的第一使用标志表示该区域对应的控制器对资源池的加载情况。
利用逻辑模块,每个控制器向各自加载的资源池中对应的逻辑区域写入第一使用标志,且n个区域是在资源池上逻辑划分的,这n个区域继承了资源池的特性,使得n个控制器通过对n个区域中第一使用标志的判断,可以得出当前状态是否发生脑裂,避免了多个控制器同时对某一区域进行加载而造成数据破坏。
下面以双控制器系统为例,结合一个可选的实施例进行举例说明。
一个控制器即一个节点(node),以下均使用node来代替控制器进行说明。因为多控制器系统中控制器争夺的最小单位为存储池vd,以下均使用vd来代替资源池进行说明。图6是根据本发明可选实施例的双控制器系统的资源处理方法的正常运行示意图,如图6所示,双控制器中的两个控制器分别为node1,node2,其中node1上运行存储池vd1,node2上运行存储池vd2。图7是根据本发明可选实施例的双控制器系统的资源处理方法的存储池的标记区域的raid示意图,如图7所示,vd1与vd2都是raid5的存储池,每个存储池上逻辑划分了2个区域:use(me)与use(peer),来判断当前是否发生脑裂,以防止存储池双端加载,由于这2个区域是在存储池上逻辑划分的,所以其天生就具有了raid特性。
下面以node1为第一视角来说明脑裂发生时,节点node1、node2对存储池vd2的资源进行争抢,其中use(me)为1表示node1加载存储池vd2,即node1存活,use(peer)为1表示node2加载存储池vd2,即表示node2存活。
在可选实施例一中,图8是根据本发明可选实施例的双控制器系统的资源处理方法的脑裂状态的示意图,如图8所示,此时node1、node2都已上电,node1无法感知node2的存在,节点node1、node2都对运行在其上的存储池的use(me)区域定时置写入使用标志1,且写入使用标志1的时间戳,保证在下一次写入使用标志1之前,运行在该节点上的存储池没有被对方节点加载,该节点是存活的,两次写入使用标志1的时间间隔称为保活时间。
图9是根据本发明可选实施例的双控制器系统的资源处理方法的脑裂状态时,存储池标记区域示意图,如图9所示,以node1为第一视角来看,这时存储池vd1对应的use(me)、use(peer)值分别为:(1,0),表示node1正在加载存储池vd1;vd2对应的use(me)、use(peer)值分别为:(0,1),表示node2正在加载存储池vd2;这个时候node1会接管运行于node2上的存储池,即node1会去接管存储池vd2。
具体来说,图10是根据本发明可选实施例的双控制器系统的资源处理方法的流程图一,如图10所示,当node1在加载存储池vd2的时候首先读取vd2的use(peer)标志,发现值为1,标志为1表示node2可能已掉电也可能已加载vd2,这时候会延迟一段时间(时间应大于保活时间)后,再去读取use(peer)标记,发现use(peer)为1,且保护时间戳在变化,则表示存储池vd2已在节点node2加载,脑裂发生,则节点node1无需加载vd2,成功防止了存储池vd2被双端加载,导致存储池数据错误。
在可选实施例二中,有如下两种情况,这两种情况处理方式相似。情况一:假如node1已上电,存储池vd1被node1成功加载,node2未上电,node1感觉不到node2的存在,node1需对运行在node2上的存储池vd2进行接管,node2上电,node2需加载运行于node2的存储池vd2,脑裂发生。
情况二:双控两个节点相继上电或同时上电,如node1已上电,存储池vd1被node1成功加载,node2未上电,node1感觉不到node2的存在,node1需对运行在node2上的存储池vd2进行接管,这时候node2上电,node2需加载运行于node2的存储池vd2,脑裂发生或node1与node2同时上电时,脑裂发生。
图11是根据本发明可选实施例的双控制器系统的资源处理方法的流程图二,如图11所示,对于vd2的use(me)、use(peer)标记可能存在两种组合(0,1)或者(0,0),首先考虑(0,0)这种组合,(0,0)表示存储池运行在node2上,且node2正常下电,其use(peer)标记已经清零。具体实施为:当节点node1加载存储池vd2时,先读取use(peer)标记发现为0,则表示node2未存活,写入use(me)为1,检验use(me)是否写入成功,同时读use(peer),如果use(peer)为1,则表示脑裂发生,node2需要加载此存储池vd2,则节点node1清除use(me)标记,不加载此存储池vd2。如果vd2的use(me),use(peer)的组合为(0,1),(0,1)表示存储池运行在节点node2上,node2异常掉电没有清除use(peer)标记,当节点node1加载存储池vd2时,先读取use(peer)标记发现为1,则延迟一段时间再读取use(peer),如果发现保护时间戳未变化,且use(peer)还是1,则表示node2未存活,写入use(me)为1,检验use(me)是否写入成功,同时读use(peer),如果use(peer)为1,且保活时间戳有变化,则表示脑裂发生,node2需要加载此存储池vd2,则节点node1清除use(me)标记,不加载此存储池vd2。
在本实施例中,通过对use(peer)的多次读取,可以实现对是否发生脑裂状态的准确判断,节省了脑裂状态检测成本,增加了检测的可靠性。
在可选实施例中,还提供了一种可选实施装置图,以双控制器系统为例,该可选装置图中包括:读取模块、判断模块、写入模块和加载模块。
其中,读取模块,包括第一读取单元和第二读取单元,第一读取单元,用于读取use(me)值;第二读取单元,用于读取use(peer)值;
写入模块,包括写入单元,用于写入use(me)值;
判断模块,包括判断单元,用于根据读取的use(me),use(peer)值,判断当前是否发生脑裂。其中,判断模块和读取模块可以作为一个模块存在。
加载模块,包括加载单元,根据判断单元的结果确定是否加载此资源。其中,加载模块和写入模块可以作为一个模块存在。
图12是根据本发明可选实施例的双控制器系统的资源处理装置的结构框图进行脑裂检测的模块使用流程图,如图12所示,在具体实施过程中,读取模块中的第二读取单元读取指示node2是否加载vd2的指示标志use(peer),判断模块中的判断单元根据第二读取单元读取到的use(peer)值为1,判读node2未加载vd2。接着,写入模块中的写入单元将vd2中的use(me)写为1,读取模块中的第一读取单元读取use(me)是否写入成功,第二读取单元读取use(peer)的值未发生变化,且时间戳也未发生变化,则判断模块中的判断单元判断出node2确实未加载vd2,于是,加载模块中的加载单元加载vd2。
通过利用以上各个装置,结合双控制器系统的资源处理方法,可以实现对是否发生脑裂状态的判断,节省了脑裂检测成本,增加了检测的可靠性。
以上仅为本发明的可选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种多控制器系统的资源处理方法,其特征在于,所述方法包括:
所述多控制器系统中的控制器无法感知对方控制器存在;
所述控制器根据所述对方控制器之前加载的第一资源池中存储的第一使用标志来判断所述对方控制器是否加载所述第一资源池,其中,所述第一使用标志用于标识所述对方控制器是否加载所述第一资源池。
2.根据权利要求1所述的方法,在所述控制器根据所述第一使用标志来判断所述对方控制器是否加载所述第一资源池之前,所述方法还包括:
所述多控制器系统中的每个控制器向各自加载的资源池定时写入第一使用标志,其中,所述第一使用标志用于标识该控制器是否加载该控制器的资源池。
3.根据权利要求1所述的方法,其特征在于,在所述控制器根据所述第一使用标志判断出所述对方控制器未加载所述第一资源池的情况下,所述方法还包括:
所述控制器在所述第一资源池中写入用于指示所述控制器加载所述第一资源池的第二使用标志,并加载所述第一资源池。
4.根据权利要求3所述的方法,其特征在于,在所述控制器在所述第一资源池中写入用于指示所述控制器加载所述第一资源池的第二使用标志之后,所述方法还包括:
所述控制器根据所述第一资源池中的所述第一使用标志判断所述对方控制器是否加载所述第一资源池,在判断结果为是的情况下,所述控制器不加载所述第一资源池,并清除所述第二使用标志。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述控制器根据所述第一资源池中存储的第一使用标志判断所述对方控制器是否加载所述第一资源池包括:
在所述第一使用标志包括:用于指示控制器是否加载资源池的标识信息情况下,所述控制器根据所述标识信息的值确定所述对方控制器是否加载所述第一资源池;和/或,
在所述第一使用标志包括:用于指示控制器是否加载资源池的标识信息和写入所述标识信息的时间戳的情况下,所述控制器判断在预定时长内所述时间戳是否发生变化,如果发生变化,则确定所述对方控制器加载所述第一资源池;否则,确定所述对方控制器未加载所述第一资源池。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述每个控制器向各自加载的资源池定时写入所述第一使用标志包括:
所述每个控制器向各自加载的资源池中对应的逻辑区域写入所述第一使用标志,其中,所述资源池在逻辑上均划分为n个区域,每个区域对应一个控制器,每个区域写入的第一使用标志表示该区域对应的控制器对所述资源池的加载情况。
7.一种多控制器系统的资源处理装置,其特征在于,位于控制器中,所述装置包括:
感知模块,用于感知对方控制器是否存在;
判断模块,用于在所述感知模块无法感知所述对方控制器存在的情况下,根据所述对方控制器之前加载的第一资源池中存储的第一使用标志来判断所述对方控制器是否加载所述第一资源池。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第一写入模块,用于向所述控制器加载的资源池定时写入第一使用标志,其中,所述第一使用标志用于标识该控制器是否加载该控制器的资源池。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二写入模块,在所述判断模块判断出所述对方控制器未加载所述第一资源池的情况下,用于在所述第一资源池中写入用于指示所述控制器加载所述第一资源池的第二使用标志,并加载所述第一资源池。
10.根据权利要求9所述的装置,其特征在于,
所述第二写入模块,还用于在写入所述第二使用标志之后,根据所述第一资源池中的所述第一使用标志判断所述对方控制器是否加载所述第一资源池,在判断结果为是的情况下,不加载所述第一资源池,并清除所述第二使用标志。
11.根据权利要求7至10中任一项所述的装置,其特征在于,所述判断模块包括:
第一判断单元,在所述第一使用标志包括:用于指示控制器是否加载资源池的标识信息情况下,用于根据所述标识信息的值确定所述对方控制器是否加载所述第一资源池;和/或,
第二判断单元,在所述第一使用标志包括:用于指示控制器是否加载资源池的标识信息和写入所述标识信息的时间戳的情况下,用于判断在预定时长内所述时间戳是否发生变化,如果发生变化,则确定所述对方控制器加载所述第一资源池;否则,确定所述对方控制器未加载所述第一资源池。
12.根据权利要求7至10中任一项所述的装置,其特征在于,第一写入模块包括:
逻辑模块,用于向所述控制器加载的资源池中对应的逻辑区域写入所述第一使用标志,其中,所述资源池在逻辑上均划分为n个区域,每个区域对应一个控制器,每个区域写入的第一使用标志表示该区域对应的控制器对所述资源池的加载情况。
CN201410568338.7A 2014-10-22 2014-10-22 多控制器系统的资源处理方法及装置 Active CN105528202B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410568338.7A CN105528202B (zh) 2014-10-22 2014-10-22 多控制器系统的资源处理方法及装置
PCT/CN2015/072799 WO2016061958A1 (zh) 2014-10-22 2015-02-11 多控制器系统的资源处理方法及装置
US15/521,383 US20170308469A1 (en) 2014-10-22 2015-02-11 Resource Processing Method and Device for Multi-controller System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410568338.7A CN105528202B (zh) 2014-10-22 2014-10-22 多控制器系统的资源处理方法及装置

Publications (2)

Publication Number Publication Date
CN105528202A true CN105528202A (zh) 2016-04-27
CN105528202B CN105528202B (zh) 2021-01-26

Family

ID=55760142

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410568338.7A Active CN105528202B (zh) 2014-10-22 2014-10-22 多控制器系统的资源处理方法及装置

Country Status (3)

Country Link
US (1) US20170308469A1 (zh)
CN (1) CN105528202B (zh)
WO (1) WO2016061958A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115599316A (zh) * 2022-12-15 2023-01-13 南京鹏云网络科技有限公司(Cn) 分布式数据处理方法、装置、设备、介质和计算机程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07183891A (ja) * 1993-12-24 1995-07-21 Mitsubishi Electric Corp 計算機システム
US20100169948A1 (en) * 2008-12-31 2010-07-01 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
CN102742214A (zh) * 2011-07-13 2012-10-17 青岛海信传媒网络技术有限公司 改善高可用性系统可靠性的方法和装置
CN103051470A (zh) * 2012-11-29 2013-04-17 中标软件有限公司 一种集群及其磁盘心跳的控制方法
CN103257908A (zh) * 2013-05-24 2013-08-21 浪潮电子信息产业股份有限公司 一种软硬件协同的多控制器磁盘阵列设计方法
CN103313253A (zh) * 2012-03-12 2013-09-18 诺基亚公司 用于在rf频段中的资源分配冲突处理的方法、装置和计算机程序产品

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7231543B2 (en) * 2004-01-14 2007-06-12 Hewlett-Packard Development Company, L.P. Systems and methods for fault-tolerant processing with processor regrouping based on connectivity conditions
US8006129B2 (en) * 2008-10-03 2011-08-23 Cisco Technology, Inc. Detecting and preventing the split-brain condition in redundant processing units
CN101674331B (zh) * 2009-10-21 2012-11-07 成都市华为赛门铁克科技有限公司 集群存储系统及其脑裂处理方法
US8806264B2 (en) * 2010-08-30 2014-08-12 Oracle International Corporation Methods for detecting split brain in a distributed system
CN103209095B (zh) * 2013-03-13 2017-05-17 广东中兴新支点技术有限公司 一种基于磁盘服务锁的裂脑预防的方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07183891A (ja) * 1993-12-24 1995-07-21 Mitsubishi Electric Corp 計算機システム
US20100169948A1 (en) * 2008-12-31 2010-07-01 Hytrust, Inc. Intelligent security control system for virtualized ecosystems
CN102742214A (zh) * 2011-07-13 2012-10-17 青岛海信传媒网络技术有限公司 改善高可用性系统可靠性的方法和装置
CN103313253A (zh) * 2012-03-12 2013-09-18 诺基亚公司 用于在rf频段中的资源分配冲突处理的方法、装置和计算机程序产品
CN103051470A (zh) * 2012-11-29 2013-04-17 中标软件有限公司 一种集群及其磁盘心跳的控制方法
CN103257908A (zh) * 2013-05-24 2013-08-21 浪潮电子信息产业股份有限公司 一种软硬件协同的多控制器磁盘阵列设计方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115599316A (zh) * 2022-12-15 2023-01-13 南京鹏云网络科技有限公司(Cn) 分布式数据处理方法、装置、设备、介质和计算机程序产品

Also Published As

Publication number Publication date
CN105528202B (zh) 2021-01-26
US20170308469A1 (en) 2017-10-26
WO2016061958A1 (zh) 2016-04-28

Similar Documents

Publication Publication Date Title
CN105468484B (zh) 用于在存储系统中确定故障位置的方法和装置
US8930749B2 (en) Systems and methods for preventing data loss
CN108153622B (zh) 一种故障处理的方法、装置和设备
US9604585B2 (en) Failure management in a vehicle
CN105095001A (zh) 分布式环境下虚拟机异常恢复方法
CN103354503A (zh) 一种可自动检测及替换故障节点的云存储系统及其方法
TWI529624B (zh) Method and system of fault tolerance for multiple servers
CN102402395A (zh) 基于仲裁磁盘的高可用系统不间断运行方法
US8555110B2 (en) Apparatus, method, and program configured to embed a standby unit based on an abnormality of an active unit
US10401935B2 (en) Storage device with a power source and persistent store that provides backup power to DRAM in a power loss event
US9575855B2 (en) Storage apparatus and failure location identifying method
CN103257908A (zh) 一种软硬件协同的多控制器磁盘阵列设计方法
CN104798046A (zh) 对称多处理器布置、安全关键系统及其方法
CN105302768A (zh) 一种从cpu异常处理方法及装置
CN105138280B (zh) 数据写入方法、装置及系统
CN113742165B (zh) 双主控设备及主备控制方法
US8451019B2 (en) Method of detecting failure and monitoring apparatus
CN105528202A (zh) 多控制器系统的资源处理方法及装置
CN103778968A (zh) 结合多张快闪记忆卡的固态硬盘的检测装置及其方法
US20170249248A1 (en) Data backup
CN203289491U (zh) 一种故障节点可自动修复的集群存储系统
US8977892B2 (en) Disk control apparatus, method of detecting failure of disk apparatus, and recording medium for disk diagnosis program
CN108196985A (zh) 一种基于智能预测的存储系统故障预测方法与装置
US10055272B2 (en) Storage system and method for controlling same
CN110633176B (zh) 工作系统切换方法、立方星和切换装置

Legal Events

Date Code Title Description
C06 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