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

文档序号:9765805阅读:322来源:国知局
多控制器系统的资源处理方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及一种多控制器系统的资源处理方法及装置。
【背景技术】
[0002]共享后端存储的多控制器系统,包含多个控制器。正常的情况下控制器之间通过一种检测机制(例如,心跳信号)来判断对方状态,当某个或某些控制器关机或离开,另外的控制器会接管其上运行的存储池资源,以保证系统正常运行。如果控制器之间通信中断或者异常,控制器就会无法感知对端存在而发生脑裂。下面以双控制器系统为例进行说明,图1是根据相关技术中双控制器系统中出现脑裂情况的示意图,如图1所示,双控制器都认为对端已正常关机或离开,进而触发双控制器对同一个后端存储对象(如存储池资源)的接管。一般存储对象的使用需要互斥,而在脑裂场景下,存储对象就有可能因为被双控制器同时接管使用而遭到破坏。
[0003]在目前的多控制器系统中,通常是通过增加第三方节点或者仲裁盘的方法来辅助判断脑裂是否发生,避免双控制器同时争抢存储池资源。
[0004]图2是根据相关技术中通过第三方节点判断双控制器系统中是否出现脑裂情况的示意图,如图2所示,当双控制器间通信中断时,双控制器可以通过询问第三方节点,由第三方节点告诉其对端节点是否异常。但是增加第三方节点的做法并不能绝对保证判断准确,比如第三方节点和设备之间通道出现异常同样可能出现误判,且增加第三方节点的成本较大。
[0005]图3是根据相关技术中通过仲裁盘判断双控制器系统中是否出现脑裂情况的示意图,但是通过仲裁盘的方式一是浪费硬盘,二是硬盘没有冗余备份,当仲裁盘故障时,检测机制就会失效。
[0006]针对多控制器系统中脑裂检测机制成本高、存在可能失效的问题,目前尚未提出有效的解决方案。

【发明内容】

[0007]本发明提供了一种多控制器系统的资源处理方法及装置,以解决多控制器系统中脑裂检测机制成本高、存在可能失效的问题。
[0008]根据本发明的一个方面,提供了一种多控制器系统的资源处理方法,包括:所述多控制器系统中的控制器无法感知对方控制器存在;所述控制器根据所述对方控制器之前加载的第一资源池中存储的第一使用标志来判断所述对方控制器是否加载所述第一资源池,其中,所述第一使用标志用于标识所述对方控制器是否加载所述第一资源池。
[0009]进一步地,在所述控制器根据所述第一使用标志来判断所述对方控制器是否加载所述第一资源池之前,所述方法还包括:所述多控制器系统中的每个控制器向各自加载的资源池定时写入第一使用标志,其中,所述第一使用标志用于标识该控制器是否加载该控制器的资源池。
[0010]进一步地,在所述控制器根据所述第一使用标志判断出所述对方控制器未加载所述第一资源池的情况下,所述方法还包括:所述控制器在所述第一资源池中写入用于指示所述控制器加载所述第一资源池的第二使用标志,并加载所述第一资源池。
[0011]进一步地,在所述控制器在所述第一资源池中写入用于指示所述控制器加载所述第一资源池的第二使用标志之后,所述方法还包括:所述控制器根据所述第一资源池中的所述第一使用标志判断所述对方控制器是否加载所述第一资源池,在判断结果为是的情况下,所述控制器不加载所述第一资源池,并清除所述第二使用标志。
[0012]进一步地,所述控制器根据所述第一资源池中存储的第一使用标志判断所述对方控制器是否加载所述第一资源池包括:在所述第一使用标志包括:用于指示控制器是否加载资源池的标识信息情况下,所述控制器根据所述标识信息的值确定所述对方控制器是否加载所述第一资源池;和/或,在所述第一使用标志包括:用于指示控制器是否加载资源池的标识信息和写入所述标识信息的时间戳的情况下,所述控制器判断在预定时长内所述时间戳是否发生变化,如果发生变化,则确定所述对方控制器加载所述第一资源池;否则,确定所述对方控制器未加载所述第一资源池。
[0013]进一步地,所述每个控制器向各自加载的资源池定时写入所述第一使用标志包括:所述每个控制器向各自加载的资源池中对应的逻辑区域写入所述第一使用标志,其中,所述资源池在逻辑上均划分为η个区域,每个区域对应一个控制器,每个区域写入的第一使用标志表示该区域对应的控制器对所述资源池的加载情况。
[0014]根据本发明的另一个方面,还提供了一种多控制器系统的资源处理装置,位于控制器中,所述装置包括:感知模块,用于感知对方控制器是否存在;判断模块,用于在所述感知模块无法感知所述对方控制器存在的情况下,根据所述对方控制器之前加载的第一资源池中存储的第一使用标志来判断所述对方控制器是否加载所述第一资源池。
[0015]进一步地,所述装置还包括:第一写入模块,用于向所述控制器加载的资源池定时写入第一使用标志,其中,所述第一使用标志用于标识该控制器是否加载该控制器的资源池。
[0016]进一步地,所述装置还包括:第二写入模块,在所述判断模块判断出所述对方控制器未加载所述第一资源池的情况下,用于在所述第一资源池中写入用于指示所述控制器加载所述第一资源池的第二使用标志,并加载所述第一资源池。
[0017]进一步地,所述第二写入模块,还用于在写入所述第二使用标志之后,根据所述第一资源池中的所述第一使用标志判断所述对方控制器是否加载所述第一资源池,在判断结果为是的情况下,不加载所述第一资源池,并清除所述第二使用标志。
[0018]进一步地,所述判断模块包括:第一判断单元,在所述第一使用标志包括:用于指示控制器是否加载资源池的标识信息情况下,用于根据所述标识信息的值确定所述对方控制器是否加载所述第一资源池;和/或,第二判断单元,在所述第一使用标志包括:用于指示控制器是否加载资源池的标识信息和写入所述标识信息的时间戳的情况下,用于判断在预定时长内所述时间戳是否发生变化,如果发生变化,则确定所述对方控制器加载所述第一资源池;否则,确定所述对方控制器未加载所述第一资源池。
[0019]进一步地,第一写入模块包括:逻辑模块,用于向所述控制器加载的资源池中对应的逻辑区域写入所述第一使用标志,其中,所述资源池在逻辑上均划分为η个区域,每个区域对应一个控制器,每个区域写入的第一使用标志表示该区域对应的控制器对所述资源池的加载情况。
[0020]通过本发明,采用多控制器系统中的控制器无法感知对方控制器存在;该控制器根据所述对方控制器之前加载的第一资源池中存储的第一使用标志来判断所述对方控制器是否加载所述第一资源池,其中,所述第一使用标志用于标识所述对方控制器是否加载所述第一资源池。解决了多控制器系统中脑裂检测机制成本高、存在可能失效的问题,在无需增加任何第三方设备也不增加专门仲裁盘的情况下,对多控制器系统中是否发生脑裂状态进行检测,节省了成本,增加了检测的可靠性和稳定性。
【附图说明】
[0021]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0022]图1是根据相关技术中双控制器系统中出现脑裂情况的示意图;
[0023]图2是根据相关技术中通过第三方节点判断双控制器系统中是否出现脑裂情况的不意图;
[0024]图3是根据相关技术中通过仲裁盘判断双控制器系统中是否出现脑裂情况的示意图;
[0025]图4是根据本发明实施例的多控制器系统的资源处理方法的流程图;
[0026]图5是根据本发明实施例的多控制器系统的资源处理装置的结构框图;
[0027]图6是根据本发明可选实施例的双控制器系统的资源处理方法的正常运行示意图;
[0028]图7是根据本发明可选实施例的双控制器系统的资源处理方法的存储池的标记区域的raid示意图;
[0029]图8是根据本发明可选实施例的双控制器系统的资源处理方法的脑裂状态的示意图;
[0030]图9是根据本发明可选实施例的双控制器系统的资源处理方法的脑裂状态时,存储池标记区域示意图;
[0031]图10是根据本发明可选实施例的双控制器系统的资源处理方法的流程图一;
[0032]图11是根据本发明可选实施例的双控制
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1