一种主控节点切换方法、装置、设备及存储介质与流程

文档序号:22621724发布日期:2020-10-23 19:27阅读:148来源:国知局
一种主控节点切换方法、装置、设备及存储介质与流程

本发明涉及存储系统领域,更具体地说,涉及一种主控节点切换方法、装置、设备及存储介质。



背景技术:

目前,多控集群切换主控节点的方法是按照当前链路通信的质量选择最优的通路,然后迁移数据,变更主控状态,完成主控节点的切换。参见图1,为现有方案中的双节点多控集群的组织方式示意图,图1简单描述了一种由双控机箱组成的多控集群配置方法,同一机箱的节点间通过ntb(non-transparent-bridge,非透明桥)连接,不同机箱的节点间通过fc(fibrechannel,网状通道技术)连接,节点与仲裁盘之间的连接方式不考虑。

在集群正常运行的过程中,一般不会主动触发主控节点的切换,在节点发生故障时,集群为了能够稳定运行才发生主控节点的切换,是集群积极做出的避险措施。如图1所示,假设集群的主控节点是节点1,当节点1出现故障而不能正常运行时,按照现有方案提供的方法,由于ntb的通信质量要高于fc的通信质量,所以节点2将会接管主控节点的位置。该方法切换主控节点时效率会更高一点,但由于后续的系统运行,跨机箱的通信会更加的频繁,在一定程度上会降低系统的性能,而且系统运行的时间越长,处理的工作量越大,影响越大。



技术实现要素:

本发明的目的在于提供一种主控节点切换方法、装置、设备及存储介质,以降低切换后主控节点使用fc通信的概率,提高了系统整体的执行效率,提高了系统的稳定性。

为实现上述目的,本发明提供一种主控节点切换方法,包括:

确定故障主控节点所在的初始机箱;

确定每个机箱内的正常运行节点数量及所述初始机箱内节点数量;

查找正常运行节点数量不小于所述初始机箱内节点数量的目标机箱,并从所述目标机箱内确定待切换的主控节点。

其中,若正常运行节点数量不小于所述初始机箱内节点数量的机箱数量大于一个,则所述主控节点切换方法还包括:

从正常运行节点数量不小于所述初始机箱内节点数量的机箱中,选择正常运行节点数量最多的机箱作为目标机箱。

其中,所述从所述目标机箱内确定待切换的主控节点,包括:

从所述目标机箱内确定性能最好的节点作为待切换的主控节点。

其中,所述确定故障主控节点所在的初始机箱之前,还包括:

在建立集群时,按照集群内各机箱的加入顺序对每个机箱按照从小到大的顺序进行编号;按照各机箱内节点的加入顺序对所有节点按照从小至大的顺序进行编号;在选择初始主控节点时,选择编号最小的节点作为主控节点。

其中,所述查找正常运行节点数量不小于所述初始机箱内节点数量的目标机箱,包括:

按照各机箱编号从小至大的顺序,依次查找每个机箱内正常运行的节点数量是否不小于所述初始机箱的节点数量;

若当前查找到的机箱的正常运行的节点数量不小于所述初始机箱的节点数量,则将当前查找到的机箱作为目标机箱。

其中,从所述目标机箱内确定待切换的主控节点,包括:

从所述目标机箱内节点编号最小的节点作为待切换的主控节点。

为实现上述目的,本发明进一步提供一种主控节点切换装置,包括:

机箱确定模块,用于确定故障主控节点所在的初始机箱;

数量确定模块,用于确定每个机箱内的正常运行节点数量及所述初始机箱内节点数量;

机箱查找模块,用于查找正常运行节点数量不小于所述初始机箱内节点数量的目标机箱;

节点确定模块,用于从所述目标机箱内确定待切换的主控节点。

其中,机箱查找模块还用于:在正常运行节点数量不小于所述初始机箱内节点数量的机箱数量大于一个时,从正常运行节点数量不小于所述初始机箱内节点数量的机箱中,选择正常运行节点数量最多的机箱作为目标机箱。

为实现上述目的,本发明进一步提供一种电子设备,包括:

存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述的主控节点切换方法的步骤。

为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的主控节点切换方法的步骤。

通过以上方案可知,本发明实施例提供的一种主控节点切换方法,包括:确定故障主控节点所在的初始机箱;确定每个机箱内的正常运行节点数量及所述初始机箱内节点数量;查找正常运行节点数量不小于所述初始机箱内节点数量的目标机箱,并从所述目标机箱内确定待切换的主控节点。可见,本申请在选择待切换的主控节点时,是从正常运行节点数量不小于故障主控节点所在机箱的节点数量的目标机箱内确定待切换的主控节点,通过这种方式选择的主控节点,会降低切换后的主控节点使用fc通信的概率,提高了系统整体的执行效率,提高了系统的稳定性;本发明还公开了一种主控节点切换装置、设备及存储介质,同样能实现上述技术效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有方案中的双节点多控集群的组织方式示意图;

图2为本发明实施例公开的一种主控节点切换方法流程示意图;

图3为本发明实施例公开的一种主控节点切换示意图;

图4为本发明实施例公开的一种主控节点切换装置结构示意图;

图5为本发明实施例公开的一种电子设备结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种主控节点切换方法、装置、设备及存储介质,以降低切换后主控节点使用fc通信的概率,提高了系统整体的执行效率,提高了系统的稳定性。

参见图2,本发明实施例提供的一种主控节点切换方法,包括:

s101、确定故障主控节点所在的初始机箱;

需要说明的是,集群中存在多个机箱,每个机箱内存在多个节点,如果集群内的主控节点故障,此时可以通过集群内的任意节点来执行本申请所述的主控节点切换方法,通过本方案来选择待切换的主控节点。在本方案中,如果原主控节点故障,则本方案首先会确定故障的主控节点所在的机箱,以便后续根据该机箱内的节点数量来选择待切换的主控节点,为了更清楚的对本方案进行说明,在本申请中,将故障主控节点所在的机箱称为初始机箱进行说明。

s102、确定每个机箱内的正常运行节点数量及所述初始机箱内节点数量;

在本申请中,为了选择待切换的主控节点,需要获取每个机箱内的正常运行节点数量及初始机箱内节点数量,该数量信息可以为集群中的每个节点按照预定时长向其他节点发送的信息,此时在确定数量时,可直接从本地存储的数据中获取对应的数量;并且,该数量信息还可以为在确定待切换的主控节点时,主动从其他节点获取的信息,该方式获取的信息可以更实时,更准确。需要说明的是,本申请中的初始机箱内节点数量为包括故障主控节点的数量,如:初始机箱内有一个正常运行的节点和一个故障的主控节点,则该初始机箱内节点数量为正常运行的节点数量与故障主控节点之和,即:该初始机箱内节点数量为两个。

s103、查找正常运行节点数量不小于所述初始机箱内节点数量的目标机箱,并从所述目标机箱内确定待切换的主控节点。

具体来说,本申请首先需要确定选择的待切换的主控节点所在的机箱,本申请为了对方案进行清楚说明,将待切换的主控节点所在的机箱称为目标机箱。并且,本申请选择目标机箱的条件为:选择正常运行节点数量不小于初始机箱内节点数量的机箱作为目标机箱。

可以理解的是,由于现有方案是按照当前链路通信的质量选择最优的通路,如图1所示,若节点1为主控节点,当节点1出现故障不能正常运行时,按照以前的方法,由于ntb的通信质量要高于fc的通信质量,所以节点2将会接管主控节点的位置。但是通过该方式选择节点2为主控节点后,其他节点均需要通过fc与节点2进行跨机箱通信,由于后续系统运行时跨机箱的通信会更加的频繁,在一定程度上会降低系统的性能,而且系统运行的时间越长,处理的工作量越大,影响越大。

因此本申请在选择目标机箱时,具体是选择正常运行节点数量不小于初始机箱内节点数量的机箱作为目标机箱,如图1所示,此时初始机箱内节点数量为两个,而机箱2内的正常运行节点数量为2个,此时机箱2的正常运行节点数量2便不小于初始机箱内节点数量2,便可将机箱2作为目标机箱,也即:本申请在选择目标机箱时,只要目标机箱的正常运行的节点数量大于等于初始节点的节点数量即可。可以看出,如果按照现有方案选择节点2为主控节点,则节点3和节点4均需要通过fc与节点2进行跨机箱通信,而如果通过本申请所述的方式选择机箱2为目标机箱,则无论选择机箱2内的哪个节点为主控节点,均只有节点2与主控节点通过fc与主控节点进行跨机箱通信,进行跨机箱通信的节点数量明显减少。若本申请未查找到正常运行节点数量不小于初始机箱内节点数量的目标机箱时,可按照现有的方式来选择待切换的控制节点,在此并不具体说明。

综上可见,本申请这种主控节点选择方式,虽然增加了切换主控节点的时延,但却减少了通过fc与主控节点进行跨机箱通信的节点数量,从而降低了切换后主控节点使用fc通信的概率,提高了系统整体的执行效率,提高了系统的稳定性。

基于上述实施例,在本实施例中,若正常运行节点数量不小于所述初始机箱内节点数量的机箱数量大于一个,则所述主控节点切换方法还包括:从正常运行节点数量不小于所述初始机箱内节点数量的机箱中,选择正常运行节点数量最多的机箱作为目标机箱。

需要说明的是,如果集群中正常运行节点数量不小于初始机箱内节点数量的机箱数量大于一个,这时本申请在选择目标机箱时,为了尽可能的降低切换后主控节点使用fc通信的概率,可以选择正常运行节点数量最多的机箱作为目标机箱。如图1所示,若还存在机箱3,机箱3内的正常运行节点的数量为3个,在该情况下,如果从机箱2内选择主控节点,则有4个节点通过fc与主控节点进行跨机箱通信,如果从机箱3内选择主控节点,则有3个节点通过fc与主控节点进行跨机箱通信,可见,本申请选择正常运行节点数量最多的机箱作为目标机箱,可以进一步的降低切换后主控节点使用fc通信的概率,提高了系统整体的执行效率,提高了系统的稳定性。

并且,本申请在从目标机箱内确定待切换的主控节点时,具体可以从目标机箱内确定性能最好的节点作为待切换的主控节点。在确定节点的性能时,可利用cpu(centralprocessingunit,中央处理器)性能、mips(millioninstructionpersecond,每秒百万条指令数)等参数体现,当然还可以通过其他参数来标识节点的性能,在此并不具体说明。

基于上述实施例,在本实施例中,在确定故障主控节点所在的初始机箱之前,还包括:

在建立集群时,按照集群内各机箱的加入顺序对每个机箱按照从小到大的顺序进行编号;按照各机箱内节点的加入顺序对所有节点按照从小至大的顺序进行编号;在选择初始主控节点时,选择编号最小的节点作为主控节点。

并且,本申请对机箱和节点进行编码后,在查找正常运行节点数量不小于初始机箱内节点数量的目标机箱时,具体是按照各机箱编号从小至大的顺序,依次查找每个机箱内正常运行的节点数量是否不小于所述初始机箱的节点数量;若当前查找到的机箱的正常运行的节点数量不小于所述初始机箱的节点数量,则将当前查找到的机箱作为目标机箱,然后再从目标机箱内节点编号最小的节点作为待切换的主控节点。

具体来说,在申请可从逻辑层面对原有的多控集群切换主控节点的方法进行改进,可对集群中的机箱按照加入集群的顺序依次编号,然后再对机箱中的节点依次编号,并保存在集群中各个节点上。当集群中的非主控节点故障时,集群移除节点,主控节点并不更改;当主控节点故障时,按照序号递增的方式选择下一个主控节点,如:以机箱为跨度,选择机箱中运行节点数较多,且编号最小的节点为主控节点。因此在本申请具体可包括如下步骤:

步骤一:建立集群时,按照机箱加入的顺序和节点加入的顺序进行编号,并将数据分发保存到集群中的各个节点;

参见图3,为本发明实施例提供的一种主控节点切换示意图;通过该图可以看出,本申请在确定机箱和节点的编号时,将最先加入集群的机箱编号为1,最先加入集群的节点编号为1,后加入的机箱和节点依次编号,因此若本申请具有两个机箱,且每个机箱有两个节点,则机箱1内包括节点1和节点2,机箱2包括节点3和节点4。在本申请中,将主控节点设置为编号最低的节点,也即当前的主控节点为机箱1中的节点1.

步骤二:当非主控节点出现故障时,由主控节点负责更新机箱和节点的编号信息,并分发到集群中正常运行的节点;

具体来说,如果通过机箱和节点的编号来确定主控节点,则需要在集群的机箱或者节点变化时,及时的更新各个节点中存储的机箱和节点的编号信息,以便准确的选择待切换的主控节点。

步骤三:当主控节点出现故障时,由集群中编号最小的节点负责选择下一个主控节点;如主控节点为节点1时,此时节点1故障,这时由节点2来执行选择主控节点的步骤,也即:步骤四和步骤五可以为节点2执行的步骤。

步骤四:主控节点的选择,是以机箱为跨度,如果下一机箱a中正常运行的节点数大于等于原主控节点所在的机箱正常运行的节点数,则选择机箱a中节点编号最小的节点为主控节点;否则,继续遍历下一个机箱。

步骤五:如果遍历了所有的机箱,没有符合条件的主控节点,则选择集群系统中节点编号最小的节点为主控节点。

具体来说,参见图3,若当前主控节点编号为1,初始机箱编号为1,初始机箱有2个节点;当主控节点故障时,选择下一个编号为2的机箱,如果机箱2中正常运行的节点数大于等于2,则选择机箱2中节点编号最小的节点作为主控节点。如果机箱2中正常运行的节点数小于2,则继续循环选择下一机箱中的节点;如果遍历完成所有机箱没有符合要求的节点,则选择当前整个集群中节点编号最小的节点为主控节点。

综上可见,本发明提出的这种多控集群切换主控节点的方法,以当前主控节点为零点,以机箱为跨度,优先选择跨度最小的机箱,当机箱中正常运行的节点数不少于原主控节点所在机箱的节点数时,再选择机箱中编号最小的节点为主控节点。通过该方式,能够在系统长期运行的过程中,在一定程度上减少fc链路的访问比例,提高了通信的质量和效率,提高了系统的执行效率和稳定性。

下面对本发明实施例提供的切换装置进行介绍,下文描述的切换装置与上文描述的切换方法可以相互参照。

参见图4,本发明实施例提供的一种主控节点切换装置,包括:

机箱确定模块100,用于确定故障主控节点所在的初始机箱;

数量确定模块200,用于确定每个机箱内的正常运行节点数量及所述初始机箱内节点数量;

机箱查找模块300,用于查找正常运行节点数量不小于所述初始机箱内节点数量的目标机箱;

节点确定模块400,用于从所述目标机箱内确定待切换的主控节点。

其中,机箱查找模块还用于:在正常运行节点数量不小于所述初始机箱内节点数量的机箱数量大于一个时,从正常运行节点数量不小于所述初始机箱内节点数量的机箱中,选择正常运行节点数量最多的机箱作为目标机箱。

其中,所述节点确定模块具体用于:从所述目标机箱内确定性能最好的节点作为待切换的主控节点。

其中,本装置还包括编号设置模块;所述编号设置模块用于在建立集群时,按照集群内各机箱的加入顺序对每个机箱按照从小到大的顺序进行编号;按照各机箱内节点的加入顺序对所有节点按照从小至大的顺序进行编号;在选择初始主控节点时,选择编号最小的节点作为主控节点。

其中,所述机箱查找模块具体用于:按照各机箱编号从小至大的顺序,依次查找每个机箱内正常运行的节点数量是否不小于所述初始机箱的节点数量;若当前查找到的机箱的正常运行的节点数量不小于所述初始机箱的节点数量,则将当前查找到的机箱作为目标机箱。

其中,所述节点确定模块具体用于:从所述目标机箱内节点编号最小的节点作为待切换的主控节点。

参见图5,本发明实施例还公开了一种电子设备,包括:

存储器11,用于存储计算机程序;

处理器12,用于执行所述计算机程序时实现如上述任意方法实施例所述的主控节点切换方法的步骤。

在本实施例中,设备可以是pc(personalcomputer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。

该设备可以包括存储器11、处理器12和总线13。

其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是设备的内部存储单元,例如该设备的硬盘。存储器11在另一些实施例中也可以是设备的外部存储设备,例如设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器11还可以既包括设备的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于设备的应用软件及各类数据,例如执行主控节点切换方法的程序代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行主控节点切换方法的程序代码等。

该总线13可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

进一步地,设备还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该设备与其他电子设备之间建立通信连接。

可选地,该设备还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备中处理的信息以及用于显示可视化的用户界面。

图5仅示出了具有组件11-14的设备,本领域技术人员可以理解的是,图5示出的结构并不构成对设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意方法实施例所述的主控节点切换方法的步骤。

其中,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1