服务器集群及适用于该集群的数据库资源组切换控制方法与流程

文档序号:11878017阅读:393来源:国知局
服务器集群及适用于该集群的数据库资源组切换控制方法与流程

本发明涉及服务器集群管理技术,特别是一种服务器集群以及适用于该服务器集群的数据库资源组切换控制方法。



背景技术:

服务器集群是指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。一旦在服务器上安装并运行了集群服务,该服务器即可加入群集。集群化操作可以减少单点故障数量,并且实现了群集化资源的高可用性。

目前,业界使用的现有适用于服务器集群的数据库资源组切换控制系统中,各个服务器使用的数据库管理软件是商业化软件,采购成本较高,另外,在现有适用于服务器集群的数据库资源组切换控制系统中,各个服务器对应的数据库存储要求必须使用文件系统,使得数据库IO性能会降低,同时,各个服务器对应的数据库存储涉及文件系统卷的卸载和加载,切换时间长。



技术实现要素:

鉴于以上内容,有必要提供一种适用于服务器集群的数据库资源组切换控制方法,其可以减少数据库资源组切换的切换时间。

一种适用于服务器集群的数据库资源组切换控制方法,包括:

A、每隔预设时间对各个资源组中的各个资源进行故障检查;

B、若没有资源组中的资源发生故障,则返回执行上述步骤A,或者,若有资源组中的资源发生故障,则分析发生故障的资源是否允许重启;

C、若发生故障的资源不允许重启,则将发生故障的资源切换至其他节点上运行;

D、若发生故障的资源允许重启,则控制发生故障的资源进行重启,并在重启之前、重启之中或者重启之后将该资源对应的当前重启次数加1;及

E、若发生故障的资源重启成功,则返回执行上述步骤A,或者,若发生故障的资源重启失败,则将发生故障的资源切换至其他节点上运行。

优选地,所述步骤B包括:

通过当前资源的第一动态属性值RESTART_COUNT和第一静态属性值RESTART_ATTEMPTS来进行控制当前资源的重启,其中:

若当前第一静态属性值RESTART_ATTEMPTS的定义值为0,则代表当前资源不允许重启,若第一静态属性值RESTART_ATTEMPTS的定义值为N,则代表当前资源允许重启的次数为N,同时若当前第一动态属性值RESTART_COUNT是n,代表该资源已经重启了n次;

若n<N,则确认该资源仍然可以在本地节点进行重启,尝试重启该资源,并将动态属性值n加1;

若n≥N,则确认该资源不可以在本地节点重启。

优选地,所述步骤C包括:

F、分析该资源是否允许切换,其中,分析是否允许切换是基于当前资源的第二静态属性值FAILURE_THRESHOLD来进行分析的;

若第二静态属性值FAILURE_THRESHOLD定义值为0,则代表当前资源不允许切换,如果第二静态属性值FAILURE_THRESHOLD定义值为P,则代表当前资源允许切换的次数为P;

G、若该资源允许切换,则将该资源按预设的切换规则逐一切换至预先确定的预设数量的切换节点上运行;

H、若该资源在一个切换的节点上运行成功,则将该资源对应的当前重启次数清零,并返回执行上述步骤A;及

I、若该资源在预先确定的预设数量的切换节点上均运行失败,则将该资源离线处理,并停止监控该资源。

优选地,所述预设的切换规则为:

按照预先确定的节点的切换顺序,逐个将该资源切换至预先确定的预设数量的切换节点上运行;

若该资源在当前切换的节点上运行成功,则将该资源对应的当前重启次数清零,并返回执行上述步骤A;

若该资源在当前切换的切换节点上运行失败,且该资源对应的当前切换次数小于允许切换的次数,则将该资源切换至预先确定的其他切换节点上运行,并在切换之前、切换之中或者切换之后将该资源对应的当前切换次数加1;及

若该资源在当前切换的切换节点上运行失败,且该资源对应的当前切换次数大于等于允许切换的次数,则将该资源离线处理,并停止监控该资源。

优选地,该方法还包括:

若该资源不允许切换,则将该资源离线处理,并停止监控该资源。

鉴于以上内容,还有必要提供一种适用于上述方法的服务器集群,其可以减少数据库资源组切换的切换时间。

一种服务器集群,包括多个服务器,每个服务器包括存储设备以及处理器,其中:

所述存储设备,用于存储一个适用于服务器集群的数据库资源组切换控制系统;

所述处理器,用于调用并执行所述适用于服务器集群的数据库资源组切换控制系统,以执行如下步骤:

A、每隔预设时间对各个资源组中的各个资源进行故障检查;

B、若没有资源组中的资源发生故障,则返回执行上述步骤A,或者,若有资源组中的资源发生故障,则分析发生故障的资源是否允许重启;

C、若发生故障的资源不允许重启,则将发生故障的资源切换至其他节点上运行;

D、若发生故障的资源允许重启,则控制发生故障的资源进行重启,并在重启之前、重启之中或者重启之后将该资源对应的当前重启次数加1;及

E、若发生故障的资源重启成功,则返回执行上述步骤A,或者,若发生故障的资源重启失败,则将发生故障的资源切换至其他节点上运行。

优选地,所述步骤B包括:

通过当前资源的第一动态属性值RESTART_COUNT和第一静态属性值RESTART_ATTEMPTS来进行控制当前资源的重启次数,其中:

若当前第一静态属性值RESTART_ATTEMPTS的定义值为0,则代表当前资源不允许重启,若第一静态属性值RESTART_ATTEMPTS的定义值为N,则代表当前资源允许重启的次数为N,同时若当前第一动态属性值RESTART_COUNT是n,代表该资源已经重启了n次;

若n<N,则确认该资源仍然可以在本地节点进行重启,尝试重启该资源,并将动态属性值n加1;

若n≥N,则数据库资源组切换控制系统确认该资源不可以在本地节点重启。

优选地,所述步骤C包括:

F、分析该资源是否允许切换,其中,分析是否允许切换是基于当前资源的第二静态属性值FAILURE_THRESHOLD来进行分析的,如果第二静态属性值FAILURE_THRESHOLD定义值为0,则代表当前资源不允许切换,如果第二静态属性值FAILURE_THRESHOLD定义值为P,则代表当前资源允许切换的次数为P;

G、若该资源允许切换,则将该资源按预设的切换规则逐一切换至预先确定的预设数量的切换节点上运行;

H、若该资源在一个切换的节点上运行成功,则将该资源对应的当前重启次数清零,并返回执行上述步骤A;及

I、若该资源在预先确定的预设数量的切换节点上均运行失败,则将该资源离线处理,并停止监控该资源。

优选地,所述预设的切换规则为:

按照预先确定的节点的切换顺序,逐个将该资源切换至预先确定的预设数量的切换节点上运行;

若该资源在当前切换的节点上运行成功,则将该资源对应的当前重启次数清零,并返回执行上述步骤A;

若该资源在当前切换的切换节点上运行失败,且该资源对应的当前切换次数小于允许切换的次数,则将该资源切换至预先确定的其他切换节点上运行,并在切换之前、切换之中或者切换之后将该资源对应的当前切换次数加1;及若该资源在当前切换的切换节点上运行失败,且该资源对应的当前切换次数大于等于允许切换的次数,则将该资源离线处理,并停止监控该资源。

优选地,所述处理器在调用并执行所述适用于服务器集群的数据库资源组切换控制系统还执行如下步骤:

若该资源不允许切换,则将该资源离线处理,并停止监控该资源。

相较于现有技术,本发明所述适用于服务器集群的数据库资源组切换控制方法及系统,可以减少数据库资源组切换的切换时间。

附图说明

图1是本发明适用于服务器集群的数据库资源组切换控制方法较佳实施例的方法流程图。

图2是图1所示适用于服务器集群的数据库资源组切换控制方法中其中一个步骤的细化流程图。

图3是本发明适用于服务器集群的数据库资源组切换控制系统较佳实施例的系统架构图。

图4是本发明适用于服务器集群的数据库资源组切换控制系统较佳实施例中每个数据库资源组的配置图。

图5是本发明适用于服务器集群的数据库资源组切换控制系统较佳实施例的功能模块图。

具体实施方式

参阅图1所示,是本发明适用于服务器集群的数据库资源组切换控制方法较佳实施例的方法流程图。本实施例所述适用于服务器集群的数据库资源组切换控制方法并不限于流程图中所示步骤,此外流程图中所示步骤中,某些步骤可以省略、步骤之间的顺序可以改变。

步骤S10,安装于服务器集群的每个服务器中的数据库资源组切换控制系统每隔预设时间(例如,2分钟),对各个数据库资源组中的各个资源进行故障检查。

步骤S11,所述数据库资源组切换控制系统判断有没有资源组中的资源发生故障。

若没有资源发生故障,则返回执行上述步骤S10。

或者,若有资源组中的资源发生故障,则步骤S12,所述数据库资源组切换控制系统分析发生故障的资源是否允许重启。

若发生故障的资源不允许重启,则步骤13,所述数据库资源组切换控制系统将发生故障的资源切换至其他节点上运行。

若发生故障的资源允许重启,则步骤S14,所述数据库资源组切换控制系统控制发生故障的资源进行重启,并在重启之前、重启之中或者重启之后将该资源对应的当前重启次数加1。

本发明其中一个实施例中,当前资源的重启次数控制是通过当前资源的第一动态属性值RESTART_COUNT和第一静态属性值RESTART_ATTEMPTS来进行控制的。若当前RESTART_ATTEMPTS的定义值为0,则代表当前资源不允许重启,若RESTART_ATTEMPTS的定义值为N,则代表当前资源允许重启的次数为N,若RESTART_COUNT是n,则说明该资源已经重启了n次。当n<N时,则确认该资源仍然可以在本地节点进行重启,会尝试重启该资源,并将RESTART_COUNT值n加1;当n≥N时,则数据库资源组切换控制系统确认该资源不可以在本地节点继续进行重启。

例如:若RESTART_ATTEMPTS的定义值为3,则代表当前资源允许重启的次数为3,同时若当前RESTART_COUNT是2(说明该资源已经重启了2次),则数据库资源组切换控制系统确认该资源仍然可以在本地节点进行重启,会尝试重启该资源,并将RESTART_COUNT值加1;若RESTART_ATTEMPTS的定义值为3,同时若当前RESTART_COUNT是3(说明该资源已经重启了3次),则所述数据库资源组切换控制系统确认该资源不可以在本地节点继续进行重启。

步骤S15,所述数据库资源组切换控制系统判断发生故障的资源是否重启成功。

若发生故障的资源重启成功,则返回执行上述步骤10。

或者,若发生故障的资源重启失败,执行上述的步骤S13,所述数据库资源组切换控制系统将发生故障的资源切换至其他节点上运行。

参阅图2所示,是图1中步骤S13的细化实施流程图,即将发生故障的资源切换至其他节点上运行的细化实施流程图。本实施例所述将发生故障的资源切换至其他节点上运行的方法并不限于流程图中所示步骤,此外流程图中所示步骤中,某些步骤可以省略、步骤之间的顺序可以改变。

步骤S20,所述数据库资源组切换控制系统分析该资源是否允许切换。

本发明其中一个实施例中,分析是否允许切换是基于当前资源的第二静态属性值FAILURE_THRESHOLD来进行分析的。若第二静态属性值FAILURE_THRESHOLD定义值为零,则代表当前资源不允许切换;如果第二静态属性值FAILURE_THRESHOLD定义值为P,则代表当前资源允许切换的次数为P,所述P为大于0的整数。

若该资源允许切换,则步骤S21,所述数据库资源组切换控制系统将该资源按预设的切换规则逐一切换至预先确定的预设数量的切换节点上运行。

步骤S22,所述数据库资源组切换控制系统进一步判断该资源在一个切换的节点上是否运行成功。

若该资源在一个切换的节点上运行成功,则所述数据库资源组切换控制系统将该资源对应的当前重启次数清零,并返回执行图1中的步骤S10。

在本发明其他实施例中,若该资源在预先确定的预设数量的切换节点上均运行失败,则步骤S23,所述数据库资源组切换控制系统将该资源离线处理,并停止监控该资源。

此外,步骤S20中,所述数据库资源组切换控制系统分析该资源不允许切换,则也是执行步骤S23,所述数据库资源组切换控制系统将该资源离线处理,并停止监控该资源。

本发明较佳实施例中,所述预设的切换规则为:按照预先确定的节点的切换顺序,逐个将该资源切换至预先确定的预设数量的切换节点上运行;若该资源在当前切换的节点上运行成功,则将该资源对应的当前重启次数清零,并返回图1中的步骤S10。若该资源在当前切换的切换节点上运行失败,且该资源对应的当前切换次数小于允许切换的次数,则将该资源切换至预先确定的其他切换节点上运行,并在切换之前、切换之中或者切换之后将该资源对应的当前切换次数加1。若该资源在当前切换的切换节点上运行失败,且该资源对应的当前切换次数大于等于允许切换的次数,则将该资源离线处理,并停止监控该资源(例如,可以按照在HOSTING_MEMBERS或者SERVER_POOLS中定义的节点次序切换该资源到其他的节点上运行,并在每次节点切换之前、切换之中或者切换之后将该资源对应的当前切换次数加1,例如,当前资源的切换次数控制是通过当前资源的第二动态属性FAILURE_COUNT和第二静态属性FAILURE_THRESHOLD来进行控制的,例如当前FAILURE_COUNT是2(说明该资源已经切换了2次),FAILURE_THRESHOLD的定义值为4,则适用于服务器集群的数据库资源组切换控制系统确认该资源仍然可以在其他节点进行切换,会尝试继续切换该资源的运行节点,并将FAILURE_COUNT值加1)。

参阅图3所示,是本发明适用于服务器集群的数据库资源组切换控制系统较佳实施例的系统架构图。

所述数据库资源组切换控制系统的系统架构图统架构为:多个业务服务器1(图中以3个为例),和所述多个业务服务器1通过网络3(例如,光纤网络)通信连接的多个存储装置2(图中以2个为例)。每个业务服务器1包括数据资源组10、所述数据库资源组切换控制系统11、集群管理系统12、以及操作系统13。

其中,所述数据库资源组10包括数据库资源组标识11。进一步地,所述数据库资源组10还包括监听器12、虚拟IP地址13和数据库14三个资源。每个数据库资源组10的监听器12、虚拟IP地址13和数据库14这三个资源整体设计配置在一起,请参见图2所示,这样做的技术益处是:一、监听器12是依赖于虚拟IP地址13的,数据库14是相对独立的,这样就保证切换或者启动数据库资源组10过程中各个资源的启动顺序是正确无误的;二、使得监听器12、虚拟IP地址13及数据库14这三个关键资源作为一个整体进行切换,确保数据库资源组10切换节点后可以对外提供服务。

所述集群管理系统12可以用于以单一系统的模式管理一组相互独立的、通过高速网络互联的业务服务器1,它们构成了一个组。

所述操作系统13为Linux操作系统、Windows操作系统或者其他任意适用的操作系统。

所述数据库资源组切换控制系统11根据其所执行的功能,可以被划分为多个功能模块,如资源组监控模块110以及资源组管理模块111。

所述资源组监控模块110用于每隔预设时间(例如,2分钟),对各个数据库资源组10中的各个资源进行故障检查,以判断有没有资源组10中的资源发生故障。

所述资源组管理模块111用于当有资源组10中的资源发生故障时,对发生故障的资源执行重启或者将发生故障的资源切换至其他节点上运行。

详细地,若发生故障的资源不允许重启,所述资源组管理模块111将发生故障的资源切换至其他节点上运行;或者若发生故障的资源允许重启,所述资源组管理模块111控制发生故障的资源进行重启,并在重启之前、重启之中或者重启之后将该资源对应的当前重启次数加1。

本发明其中一个实施例中,当前资源的重启次数控制是通过当前资源的第一动态属性值RESTART_COUNT和第一静态属性值RESTART_ATTEMPTS来进行控制的。若当前RESTART_ATTEMPTS的定义值为0,则代表当前资源不允许重启,若RESTART_ATTEMPTS的定义值为N,则代表当前资源允许重启的次数为N,若RESTART_COUNT是n,则说明该资源已经重启了n次。当n<N时,则确认该资源仍然可以在本地节点进行重启,会尝试重启该资源,并将RESTART_COUNT值n加1;当n≥N时,则数据库资源组切换控制系统确认该资源不可以在本地节点继续进行重启。

例如:若RESTART_ATTEMPTS的定义值为3,则代表当前资源允许重启的次数为3,同时若当前RESTART_COUNT是2(说明该资源已经重启了2次),则资源组管理模块111确认该资源仍然可以在本地节点进行重启,会尝试重启该资源,并将RESTART_COUNT值加1;若RESTART_ATTEMPTS的定义值为3,同时若当前RESTART_COUNT是3(说明该资源已经重启了3次),则所述资源组管理模块111确认该资源不可以在本地节点继续进行重启。

本发明其他实施例中,所述资源组管理模块111进一步判断发生故障的资源是否重启成功。

若发生故障的资源重启成功,则由所述资源组监控模块110继续每隔预设时间(例如,2分钟),对各个数据库资源组10中的各个资源进行故障检查,以判断有没有资源组10中的资源发生故障。

或者,若发生故障的资源重启失败,所述资源组管理模块111进一步将发生故障的资源切换至其他节点上运行。

在对发生故障的资源切换至其他节点上运行时,所述资源组管理模块111首先分析该资源是否允许切换。本实施例中,分析是否允许切换是基于当前资源的第二静态属性值FAILURE_THRESHOLD来进行分析的。若第二静态属性值FAILURE_THRESHOLD定义值为零,则代表当前资源不允许切换;如果第二静态属性值FAILURE_THRESHOLD定义值为P,则代表当前资源允许切换的次数为P,所述P为大于0的正整数。

若该资源不允许切换,则所述资源组管理模块111将该资源离线处理,并停止监控该资源。

若该资源允许切换,则所述资源组管理模块111将该资源按预设的切换规则逐一切换至预先确定的预设数量的切换节点上运行。若该资源在一个切换的节点上运行成功,则所述资源组管理模块111将该资源对应的当前重启次数清零。若该资源在预先确定的预设数量的切换节点上均运行失败,则所述资源组管理模块111将该资源离线处理,并停止监控该资源。

本发明较佳实施例中,所述预设的切换规则为:按照预先确定的节点的切换顺序,逐个将该资源切换至预先确定的预设数量的切换节点上运行;若该资源在当前切换的节点上运行成功,则将该资源对应的当前重启次数清零。若该资源在当前切换的切换节点上运行失败,且该资源对应的当前切换次数小于允许切换的次数,则将该资源切换至预先确定的其他切换节点上运行,并在切换之前、切换之中或者切换之后将该资源对应的当前切换次数加1。若该资源在当前切换的切换节点上运行失败,且该资源对应的当前切换次数大于等于允许切换的次数,则将该资源离线处理,并停止监控该资源(例如,可以按照在HOSTING_MEMBERS或者SERVER_POOLS中定义的节点次序切换该资源到其他的节点上运行,并在每次节点切换之前、切换之中或者切换之后将该资源对应的当前切换次数加1,例如,当前资源的切换次数控制是通过当前资源的第二动态属性FAILURE_COUNT和第二静态属性FAILURE_THRESHOLD来进行控制的,例如当前FAILURE_COUNT是2(说明该资源已经切换了2次),FAILURE_THRESHOLD的定义值为4,则适用于服务器集群的数据库资源组切换控制系统确认该资源仍然可以在其他节点进行切换,会尝试继续切换该资源的运行节点,并将FAILURE_COUNT值加1)。

最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

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