本发明涉及计算机应用领域,尤其涉及集群计算机设备的同步升级技术。
背景技术:
HA(High Availability,高可用性)集群(Cluster)系统通过一组物理主机节点为用户提供透明的冗余业务处理能力,实现不间断的提供服务。系统中每个物理主机称为节点,每个节点拥有独立唯一的主机名,并且拥有一组自己的资源,比如磁盘、文件系统、网络地址等。当系统中主节点不可用或无法处理用户请求时,该节点提供的网络资源会及时转移到其他物理节点来处理,这些对于用户来说是透明的,用户无需关心资源的转移、节点的切换等操作,由HA系统自动完成。
在实际应用中,共享资源一般由物理磁盘阵列柜或使用软件实现的镜像快设备内容的储存复制解决方案(如DRBD)。由于只有当前主节点有对该资源的操作权限,其他从节点无法直接对其进行访问,当需要对设备固件进行升级时,一般需要先将集群拆除并分别对其进行升级,升级完成后再重新配置并组成集群系统。这样势必导致服务停止时间增加,以及升级工作难度大、效率低的问题。
技术实现要素:
本发明提供一种集群计算机设备同步升级方法,用于自动实现集群中主设备和各从设备的协同升级功能。
为了能够实现本发明所披露的技术方案,一种集群计算机设备同步升级方法,包括以下主要步骤:
上传升级固件至主设备节点后,由镜像块设备的镜像传输功能同步传输至所有从设备节点,实现所有集群计算机设备节点的升级固件同步上传;其中所述升级固件用于集群节点的应用服务升级。
同时当前主设备需要判断升级固件是否同步传输完成;如果否,主设备节点需要等待传输完成或者传输时间达到最大超时时长,此时升级流程错误结束,并通知上层用户升级错误原因。
如果是,主设备则开始本地升级流程,并在升级重启之前先降格为从设备。
所述方法还包括:主设备对固件版本信息进行判断来决定本地是否需要启动升级流程。主设备降格操作则用于释放共享资源。
所述方法还包括:主设备降格为从设备后,其他从设备在集群管理模块的管理下升格为主设备,获取升级固件等相关共享资源的读写操作权限。
所述设备的降格以及升格均由集群管理模块实现统一管理和处理。
从设备升格为主设备后继续提供服务,并开始本地的升级判断流程。如果本地达到升级条件则开始本地升级流程以及降格为从设备以及设备重启流程。依次类推,直到所有集群计算机设备节点完成升级操作。
上述方法还包括:在集群管理模块的参与下完成整个集群节点的升级判断,判断是否完成整个集群的升级流程。
如果是,则整个集群升级流程结束。
如果否,则继续其他节点的升级流程。
上述方法还包括:所有集群计算机设备完成升级后,是否需要切换至系统最初的主节点。
如果是,则在集群管理模块的参与下完成节点的切换流程。
如果否,则集群当前主设备负责当前系统的服务提供。
本发明通过升级固件的同步分发,并在集群管理模块的作用下控制设备的升格和降格,实现整个集群的设备固件升级。解决了现有集群固件升级方式复杂,服务停止时间长的问题,提高了集群固件升级维护效率,降低了维护成本。
附图说明
图1是本发明具体实施例中集群设备节点组成的基本框架图;
图2是本发明具体实施例中集群设备同步升级方法的流程图一;
图3是本发明具体实施例中集群设备同步升级方法的流程图二。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是此时所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了方便描述,附图中仅示出于本发明相关的部分而非全部结构。
图1 是本发明具体实施例中集群设备节点组成的基本框架图。图1示出了一个基本的集群方案中的集群节点框架,主要由当前工作主节点设备以及若干从节点设备和集群管理模块组成。集群管理模块实现节点的降格、升格、节点状态等功能。当前主节点设备对外提供服务,从节点设备作为备份使用。在镜像块设备的功能作用下可实现任何写入主节点设备的本地文件系统的数据,同时以相同的形式记录在其他从节点设备的文件系统中。本地主节点设备与远程主机从节点设备的数据保持实时同步。同一时刻只能有一个节点设备处于Primary状态,其他从节点设备处于Secondary状态。
图2 是本发明具体实施例中集群设备同步升级方法的流程图一;图3 是本发明具体实施例中集群设备同步升级方法的流程图二。由该两幅图可知,本发明集群方案的同步升级方法的流程,该实现流程100的详细描述如下:
步骤1001,开始升级操作,通过WebUI或其他方式上传升级固件至当前主设备文件系统中。主设备判断固件版本等信息决定是否需要启动本地固件升级流程。如果本地固件版本与新固件版本一致则本地升级流程不触发。
步骤1002,升级固件的同步分发,可通过共享磁盘阵列或其他软件实现的镜像快设备(如DRBD)、以及其他传输方式实现固件的同步分发。
步骤1003,判断升级固件是否同步传输完成,如果是可以通过镜像块设备实现固件的同步分发,则本地文件系统完成写入后远程主机的文件系统也会同步写入。如果是也可以通过节点内部传输模块实现固件的传输则通过主从节点的传输请求和响应消息来确定所有从节点的固件同步传输完成。
上述传输请求和响应消息格式示例如下:
请求:
<xml version="1.0" encoding="utf-8" >
<request>
<cmd_type>ImgTrans<cmd_type>
<cmd_id>12300<cmd_id>
<img_hmac>5202A0Ef12345343...<img_hmac>
<source_addr>tcp:192.168.129.2:5068<source_addr>
</request>
其中字段解释如下:
cmd_type:消息命令类型字符串,命令接受则根据消息类型进行相应处理;
cmd_id:消息唯一标示符,用于区分每次消息的唯一性;
img_hmac: 用于判断固件传输的完整性;
source_addr:具体的固件获取地址以及传输类型;
响应:
<xml version="1.0" encoding="utf-8" >
<response>
<cmd_type>img_trans<cmd_type>
<cmd_id>12300<cmd_id>
<result></result>
<reason></reason>
</response>
其中字段解释如下:
cmd_type:消息命令类型字符串,命令接受则根据消息类型进行相应处理;
cmd_id:消息唯一标示符,用于区分每次消息的唯一性;
result:用于反馈命令执行结果;成功:success,失败:fail;
Reason:可选、当固件获取失败时反馈失败原因。
步骤1004,如果固件传输失败或传输时间超过最大超时时长,则认为本次固件分发失败,则本次集群升级失败,并反馈升级失败原因给用户。
步骤1005,如果固件分发完成且主设备之前判断本地需要升级固件,则完成升级流程后降格为从设备并开始本地升级重启流程。
如果主设备判断本地固件无需升级,则仅触发降格操作。
步骤1006,在集群管理模块的参与下,其他某个从设备将升格为主设备并开始本地的固件升级判断流程,此处固件升级判断逻辑以及步骤与步骤1005一致。从设备升格为主设备后开始本地固件升级同时启动固件升级重启流程,并在重启前降格为从设备。
步骤1007,通过逐步升格为主设备并完成固件的升级流程来完成整个集群的升级,在集群管理模块的参与下判断是否所有节点均升级完成。该过程中从多个从设备中选举出主设备的过程是由集群投票选举机制实现的,与一般的集群选举机制类似。
步骤1008,集群升级成功。
注意,上述仅为本发明的较佳实施例以及所运用技术原理。本领域技术人员会理解,本发明不限于所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、 重新调整和替代而不会脱离本发明的保护范围。 因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。