一种双控制器的主从状态判断方法、控制器及存储介质与流程

文档序号:17160370发布日期:2019-03-20 00:36阅读:190来源:国知局
一种双控制器的主从状态判断方法、控制器及存储介质与流程
本申请涉及控制器领域,具体涉及一种双控制器的主从状态判断方法。
背景技术
:存储阵列通常采用双控制器架构,当某一控制器发生故障或失效时,备用控制器立即介入并接管故障控制器的工作,处于运行状态的控制器称之为主控制器,处于备用状态的控制器称之为从控制器。目前,对于双控制器的主从状态的判断,一般是通过基板管理控制器(baseboardmanagementcontrolle,bmc)小系统协商来判断。但是,在实际应用过程中,由于bmc升级或者启动需要较长的时间,将会导致bmc较长时间无法正常工作,此时很难判断控制器的主从,影响系统运行的稳定性和可靠性。技术实现要素:本申请实施例提供一种双控制器的主从状态判断方法、控制器及存储介质,通过复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld)能很快实现双控制器的主从协商,不依赖系统做复杂的程序判断,提高系统运行的稳定性和可靠性。为达到上述目的,本申请实施例提供如下技术方案:本申请第一方面提供一种双控制器的主从状态判断方法,可以包括:第一控制器获取第二控制器的复杂可编程逻辑器件cpld输出管脚的信息。第一控制器根据获取到的信息判断第二控制器的状态。若第二控制器为主控状态,则第一控制器设置第一控制器的cpld的输出管脚输出从控状态信息。可选地,结合上述第一方面,在第一种可能的实现方式中,在第一控制器根据获取到的信息判断第二控制器的状态之后,还可以包括:若第二控制器为从控状态,则第一控制器设置第一控制器的cpld的输出管脚输出主控状态信息。可选地,结合上述第一方面,在第二种可能的实现方式中,在第一控制器根据获取到的信息判断第二控制器的状态之后,还可以包括:若第二控制器为无效状态,则第一控制器设置第一控制器的cpld的输出管脚输出主控状态信息。可选地,结合上述第一方面、第一方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,在第一控制器获取第二控制器的复杂可编程逻辑器件cpld输出管脚的信息之前,还可以包括:第一控制器获取第二控制器的上电状态。若第二控制器为未上电状态,则第一控制器设置第一控制器的cpld的输出管脚输出主控状态信息。可选地,结合上述第一方面、第一方面第一种或第二种可能的实现方式,在第四种可能的实现方式中,还可以包括:第一控制器的cpld的输入输出i/o管脚和第二控制器的cpld的i/o管脚相连,输入输出i/o管脚可以包括输出管脚。本申请第二方面提供一种控制器,该控制器具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。本申请第三方面提供一种控制器,该控制器可以包括:处理器和存储器,存储器中存储有程序指令,处理器用于执行存储器中存储的程序指令,执行如上述第一方面或第一方面任意一种可能实现方式的双控制器的主从状态判断方法。本申请第四方面提供一种计算机可读存储介质,当指令在计算机装置上运行时,使得计算机装置执行如上述第一方面或第一方面任意一种可能实现方式的双控制器的主从状态判断方法。本申请第五方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的双控制器的主从状态判断方法。本申请实第六方面提供一种双控制器系统,包括第一控制器和第二控制器,该第一控制器为上述第一方面或第一方面任意一种可能的实现方式中所描述的第一控制器。该第二控制器为上述第一方面或第一方面任意一种可能的实现方式中所描述的第二控制器。本申请技术方案中第一控制器获取第二控制器的cpld输出管脚信息,根据第二控制器的cpld输出管脚信息可以判断第二控制器的状态,当第二控制器为主控状态时,则将第一控制器设置为从控状态。由于cpld具有上电快速,升级可以使用背景background升级模式的特点,使得通过cpld能很快实现双控制器的主从协商,不依赖系统做复杂的程序判断,提高系统运行的稳定性和可靠性。附图说明图1为本申请实施例中双控制器的主从状态判断方法的一个实施例示意图;图2为本申请实施例中双控制器的主从状态判断方法的另一个实施例示意图;图3为本申请实施例中双控制器的主从状态判断方法的另一个实施例示意图;图4为本申请实施例中双控制器的主从状态判断方法的另一个实施例示意图;图5为本申请实施例中控制器的一个实施例示意图;图6为本申请实施例中控制器的硬件结构的一个实施例示意图。具体实施方式下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。本申请实施例提供一种双控制器的主从状态判断方法、控制器及存储介质,根据第二控制器的cpld输出管脚信息可以判断第二控制器的状态,当第二控制器为主控状态时,则将第一控制器设置为从控状态。由于cpld具有上电快速,升级可以使用背景background升级模式的特点,使得通过cpld能很快实现双控制器的主从协商,不依赖系统做复杂的程序判断,提高系统运行的稳定性和可靠性。以下分别进行详细说明。本申请中字符“/”,一般表示前后关联对象是一种“或”的关系。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的模块的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。图1为本申请实施例中双控制器的主从状态判断方法的一个实施例示意图。如图1所示,本申请实施例提供的双控制器的主从状态判断方法的一实施例包括:101、第一控制器获取第二控制器的cpld输出管脚的信息。cpld包括输入输出i/o管脚,i/o管脚包括输出管脚。第一控制器的cpld的i/o管脚和第二控制器的cpld的i/o管脚相连。cpld的输出管脚输出的信息不同,代表不同的输出定义。如下表1中所示,表1中列出了cpld输出管脚输出信息代表的不同定义。其中,若控制器的cpld的管脚输出信息为10,代表该控制器为主控状态,若控制器的cpld的管脚输出信息为01,代表该控制器为从控状态,若控制器的cpld的管脚输出信息为00,代表该控制器为无效状态,若控制器的cpld的管脚输出信息为11,代表该控制器为无效状态。表1:gpld管脚输出信息定义管脚输出信息对应输出定义10主控状态01从控状态00无效状态11无效状态102、第一控制器根据获取到的信息判断第二控制器的状态。第一控制器根据获取到的第二控制器的cpld的管脚输出的信息,根据表中示出的对应关系,可以判断第二控制器的状态。比如,若第一控获取到的第二控制器的cpld的管脚输出的信息为10,则第一控制器可以判断第二控制器的状态为主控状态。103、若第二控制器为主控状态,则第一控制器设置第一控制器的cpld的输出管脚输出从控状态信息。按照表1中示出的对应关系,若第一控制器获取到第二控制器为主控状态,则第一控制器设置第一控制器的cpld的输出管脚输出01,即当第二控制器为主控状态时,第一控制器为从控状态。本申请实施例中第一控制器获取第二控制器的cpld输出管脚信息,根据第二控制器的cpld输出管脚信息可以判断第二控制器的状态,当第二控制器为主控状态时,则将第一控制器设置为从控状态,使得可以很快实现双控制器的主从协商,不依赖系统做复杂的程序判断,提高系统运行的稳定性和可靠性。图2为本申请实施例中双控制器的主从状态判断方法的另一个实施例示意图。如图2所示,本申请实施例提供的双控制器的主从状态判断方法的另一实施例包括:201、第一控制器获取第二控制器的cpld输出管脚的信息。202、第一控制器根据获取到的信息判断第二控制器的状态。203、若第二控制器为从控状态,则第一控制器设置第一控制器的cpld的输出管脚输出主控状态信息。按照表1中示出的对应关系,若第一控制器获取到第二控制器为从控状态,则第一控制器设置第一控制器的cpld的输出管脚输出10,即当第二控制器为从控状态时,第一控制器为主控状态。本申请实施例中的步骤201、202可以参阅图1对应的实施例中的101、102进行理解,此处不再重复赘述。本申请实施例中第一控制器获取第二控制器的cpld输出管脚信息,根据第二控制器的cpld输出管脚信息可以判断第二控制器的状态,当第二控制器为从控状态时,则第一控制器设置第一控制器的cpld的输出管脚输出主控状态信息,使得可以很快实现双控制器的主从协商,不依赖系统做复杂的程序判断,提高系统运行的稳定性和可靠性。图3为本申请实施例中双控制器的主从状态判断方法的另一个实施例示意图。如图3所示,本申请实施例提供的双控制器的主从状态判断方法的另一实施例包括:301、第一控制器获取第二控制器的cpld输出管脚的信息。302、第一控制器根据获取到的信息判断第二控制器的状态。303、若第二控制器为无效状态,则第一控制器设置第一控制器的cpld的输出管脚输出主控状态信息。按照表1中示出的对应关系,若第一控制器获取到第二控制器为无效状态,则第一控制器设置第一控制器的cpld的输出管脚输出10,即当第二控制器为无效状态时,第一控制器为主控状态。本申请实施例中的步骤301、302可以参阅图1对应的实施例中的101、102进行理解,此处不再重复赘述。本申请实施例中第一控制器获取第二控制器的cpld输出管脚信息,根据第二控制器的cpld输出管脚信息可以判断第二控制器的状态,当第二控制器为无效状态,则第一控制器设置第一控制器的cpld的输出管脚输出主控状态信息,使得可以很快实现双控制器的主从协商,不依赖系统做复杂的程序判断,提高系统运行的稳定性和可靠性。图4为本申请实施例中双控制器的主从状态判断方法的另一个实施例示意图。如图4所示,本申请实施例提供的双控制器的主从状态判断方法的另一实施例包括:401、第一控制器获取第二控制器的上电状态。第二控制器的上电状态包括第二控制器处于上电状态以及第二控制器处于未上电状态。402、若第二控制器为未上电状态,则第一控制器设置第一控制器的cpld的输出管脚输出主控状态信息。若第二控制器为未上电状态,则第一控制器设置第一控制器的cpld的输出管脚输出10。即当第二控制器为未上电状态时,第一控制器为主控状态。403、若第二控制器为上电状态,则第一控制器获取第二控制器的cpld输出管脚的信息。404、第一控制器根据获取到的信息判断第二控制器的状态。405、若第二控制器为主控状态,则第一控制器设置第一控制器的cpld的输出管脚输出从控状态信息。406、若第二控制器为从控状态,则第一控制器设置第一控制器的cpld的输出管脚输出主控状态信息。407、若第二控制器为无效状态,则第一控制器设置第一控制器的cpld的输出管脚输出主控状态信息。本申请实施例中的步骤403至405可以参阅图1对应的实施例中的101至103进行理解,406可以参阅图2对应的实施例中的203进行理解,407可以参阅图3对应的实施例中的303进行理解,此处不再重复赘述。本申请实施例中第一控制器先获取第二控制器的上电状态,若第二控制器为未上电状态,则第一控制器设置第一控制器的cpld的输出管脚输出主控状态信息,可以很快实现双控制器的主从协商。图5为本申请实施例中控制器的一个实施例示意图。该控制器为双控制器系统中的第一控制器,针对该第一控制器,该第一控制器为双控制器系统中的任意一个控制器,包括:获取单元501,用于获取第二控制器的复杂可编程逻辑器件cpld输出管脚的信息。判断单元502,用于根据获取单元501获取到的信息判断第二控制器的状态。设置单元503,用于若判断单元502判断第二控制器为主控状态,则设置第一控制器的cpld的输出管脚输出从控状态信息。可选地,设置单元503,还用于若判断单元502判断第二控制器为从控状态,则第一控制器设置第一控制器的cpld的输出管脚输出主控状态信息。可选地,设置单元503,还用于若判断单元502判断第二控制器为无效状态,则第一控制器设置第一控制器的cpld的输出管脚输出主控状态信息。可选地,获取单元501,还用于在获取第二控制器的复杂可编程逻辑器件cpld输出管脚的信息之前,获取第二控制器的上电状态;相应的,设置单元503,还用于若获取单元501获取到第二控制器为未上电状态,则设置第一控制器的cpld的输出管脚输出主控状态信息。图6为本申请实施例中控制器的硬件结构的一个实施例示意图。如图6所述,包括:处理器(processor)601、通信接口(communicationsinterface)602、存储器(memory)603和通信总线604;其中,处理器601、通信接口602和存储器603通过通信总线604完成相互间的通信。处理器601可能是一个多核中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器603可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储装置,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储装置,存储器可以是独立存在,通过通信总线604与处理器相连接。存储器也可以和处理器集成在一起。通信接口602,用于实现这些装置之间的连接通信。处理器601用于执行存储器603中的程序代码,以实现上述图1至图4对应实施例中的方法步骤。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储装置。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。以上对本申请实施例所提供的双控制器的主从状态判断方法,控制器以及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1