专利名称:软件版本不一致的处理方法和堆叠系统中的成员设备的制作方法
技术领域:
本发明涉及数据通信网络领域中的堆叠技术,具体涉及一种堆叠系统中 成员设备软件版本不一致的处理方法和一种堆叠系统中的成员设备。
背景技术:
随着网络规模的急剧增加,堆叠技术应运而生。堆叠技术是指将两台或 多台网络设备通过堆叠口连接起来,组成堆叠系统。组成堆叠系统的网络设 备称为堆叠成员设备,简称成员设备。堆叠系统启动时各成员设备选举主设 备并堆叠在一起启动,堆叠在一起的设备组成堆叠组。堆叠组中有一台成员
设备充当控制者和管理者的角色,称为主设备(Active设备),其他成员设 备均为从设备(Slave设备)。从逻辑上来说,堆叠在一起的设备相当于同 一设备,用户管理堆叠组就像管理一台设备。
堆叠组中各成员设备的软件版本号必须一致。当某一新设备请求与 一堆 叠组a堆叠以形成新的堆叠组A时,即新设备i青求加入堆叠组A时,如果 新设备的软件版本为升级后的软件版本,而堆叠组a中各设备的软件版本为 升级前的软件版本,则现有技术不允许新设备与堆叠组a堆叠,除非新设备 采用与堆叠组a相同的软件版本,或者堆叠组a升级为新的软件版本。
当需要对已启动的堆叠组进行软件版本升级时,需要向堆叠组中的所有 设备下载升级后的软件版本,然后同时重启堆叠组中的所有设备,设备重启 后运行升级后的软件版本,从而完成了堆叠組的升级。但是,在升级过程中, 同时重启堆叠组中的所有设备势必会造成用户流量中断,不能满足不间断业 务升级的要求。
发明内容
有鉴于此,本发明提供了一种堆叠组中成员设备的软件版本不一致的处 理方法,有利于实现不间断业务下的堆叠组升级。
该方法包括
A、 堆叠系统中的一个或多个成员设备启动并请求加入一个堆叠组时, 检测所述一个或多个成员设备与欲加入所述堆叠组的其他已启动设备的软 件版本是否一致;如果不一致,则允许所述一个或多个成员设备以主设备身 份启动;否则,所述一个或多个成员i殳备加入所述堆叠组;
B、 当检测到所述堆叠系统中包含至少两个主设备且各主设备的软件版 本不完全一致时,保留启动时间最短的一个主设备正常工作,将未保留的成 员设备的所有业务口关闭。
当堆叠系统中的一个成员设备x_l启动并请求加入一个堆叠组时, 步骤A所述允许所述一个或多个成员设备以主设备身份启动为所述 成员设备x—1以主设备身份启动;
步骤B所述保留启动时间最短的一个主设备正常工作,将未保留的成 员设备的所有业务口关闭为比较成员设备x—1与欲加入所述堆叠组中的其 他已启动设备的启动时间,确定所述成员设备x一l的启动时间短于所述其他 已启动设备,则保留成员设备x一l正常工作,将所述其他已启动设备的所有 业务口关闭。
当堆叠系统中的多个成员设备x_l~x—n启动并请求加入一个堆叠组时, 其中,n为大于或等于2的整数;
步骤A所述允许所述一个或多个成员设备以主设备身份启动为所述 成员设备x_l~x_n分别以主设备身份启动;
步骤B所述保留启动时间最短的一个主设备正常工作,将未保留的成 员设备的所有业务口关闭为比较成员设备x—l~x_n和欲加入所述堆叠组的 其他已启动设备的启动时间,确定所述成员设备x—l~x_n的启动时间相同,且短于所述其他已启动设备,则根据MAD机制从所述成员设备x一l x—n中 选择一个成员设备保留正常工作,将成员设备x_l~x—n中除保留成员设备之 外的所有成员设备以及所述其他已启动设备的所有业务口关闭。
当堆叠系统中的多个成员设备x一l x—n启动并请求加入一堆叠组时,其 中,n为大于或等于2的整数;
步骤A所述允许所述一个或多个成员设备以主设备身份启动为成员 设备x—l~x—n选举主设备x—A并堆叠在一起启动;
步骤B所述保留启动时间最短的一个主设备正常工作,将未保留的成 员设备的所有业务口关闭为比较主设备x—A和欲加入所述堆叠组的其他 已启动设备的启动时间,确定主设备x—A的启动时间短于所述其他已启动 设备,则保留成员设备x—1 x一n正常工作,将所述其他已启动设备的所有业 务口关闭。
较佳地,该方法进一步包括在所述堆叠系统初始启动时,如果所述堆 叠系统中各成员设备的软件版本不完全一致,则软件版本相同的成员设备选 举主i殳备并堆叠在一起启动;
所述堆叠系统初始启动后,MAD机制检测到所述堆叠系统中包含至少 两个主设备,且各主设备的软件版本不完全一致但启动时间相同,则根据 MAD机制从各主设备中选择一个,保留选定的主设备及其从设备正常工作, 将未保留的成员设备的所有业务口关闭。
较佳地,所述步骤B之后,该方法进一步包括步骤C:重启业务口关闭 的成员设备,重启的成员设备运行与所述堆叠组中的成员设备相同的软件版 本,允许所述重启的成员设备加入所述堆叠组。
在需要对已启动的堆叠组进行软件版本升级时,先重启所述堆叠组中的 部分成员设备X;所述已启动的堆叠组中未重启的成员设备称为成员设备Y;
成员设备X重启时,运行升级后的软件版本,然后执行所述步骤A至 C;且步骤A中所述的其他已启动设备为所述成员设备Y。
较佳地,所述重启所述堆叠组中的部分成员设备X之前,该方法进一
8步包括将待升级的软件版本下载到所述堆叠组中的所有成员设备中,并标 "i己为下一次启动时运行的版本。
本发明还提供了 一种堆叠系统中的成员设备,有利于实现不间断业务下 的堆叠组升级。
该成员设备包括
软件版本^r测单元,用于当所在成员设备启动并请求加入一堆叠组时, 检测自身与欲加入所述堆叠组的其他已启动设备的软件版本是否一致;如果 不一致,则允许所在成员设备以主设备身份启动;否则,允许所在成员设备 加入所述堆叠组;
多主设备检测单元,用于当冲企测到所在堆叠系统中包含至少两个主设备 且各主设备的软件版本不完全一致时,确定启动时间最短的一个主设备,判 断所在成员设备是否为所确定的主设备本身或其从设备;如果是,则保留所 在成员设备正常工作;否则,将所在成员设备的所有业务口关闭。
其中,所述软件版本检测单元在判定自身与欲加入所述堆叠组的其他已 启动设备的软件版本不一致时,无论是否存在同时启动的其他成员设备,均 以主设备身份启动;
或者,与其他同时启动且具有相同软件版本的成员设备堆叠在一起启动。
其中,所述多主设备检测单元在确定启动时间最短的一个主设备时,如 果所在堆叠系统中仅存在一个启动时间最短的主设备,则将该主设备确定为 所述启动时间最短的一个主设备;如果所在堆叠系统中存在多个启动时间最 短的主设备,则根据MAD机制从所述多个启动时间最短的主设备中选择一 个主设备,将选定的主设备确定为所述启动时间最短的 一个主设备。
较佳地,所述软件版本检测单元进一步用于,在所述堆叠系统初始启动 时,如果所述堆叠系统中各成员设备的软件版本不完全一致,则软件版本相 同的成员设备选举主设备并堆叠在一起启动;
所述多主i殳备检测单元进一步用于,所述堆叠系统初始启动后,MAD机制检测到所述堆叠系统中包含至少两个主设备,且各主设备的软件版本不
完全一致但启动时间相同,则根据MAD机制从各主设备中选择一个,判断 所在成员设备是否为所选定的主设备本身或其从设备;如果是,则保留所在 成员设备正常工作;否则,将所在成员设备的所有业务口关闭。 较佳地,该成员设备进一步包括软件保存单元和重启单元; 所述软件保存单元,用于接收并保存软件,该软件包括升级后的软件版
本;
所述重启单元,用于根据来自外部的重启命令重启时,运行所述软件保 存单元保存的所述升级后的软件版本,并通知^:件版本检测单元执行其自身 操作。
较佳地,所述软件保存单元在所在成员设备重启之前,接收来自外部的 升级后的软件版本,并标记为下一次启动时运4亍的版本。
根据以上技术方案可见,本发明在某成员i殳备加入堆叠组A时,如果 出现软件版本不一致的情况,虽不能正常堆叠,但允许成员设备以主设备身 份启动。这样,堆叠系统中会同时存在多个主设备且各主设备的软件版本不 完全一致,然后再根据各主设备的启动时间,保留启动时间最短的主设备正 常工作,如果保留的主设备有从设备,还保留其从设备正常工作,将未保留 的成员设备的所有业务口关闭。实际上,启动时间最短的主设备就是运行升 级后软件版本的设备,采用该方案使得运行升级后软件版本的设备保留正常 工作,使得运行旧软件版本的设备关闭,从而将旧软件版本的设备从堆叠组 中去除。
当后续对业务口关闭的设备进行软件版本升级再重启后,由于软件版本 一致,可以正常堆叠,至此,堆叠组中所有成员设备都运行升级的软件版本, 从而完成了整个堆叠组的升级。
由于堆叠组的升级过程中始终有一个或一个以上的设备正常工作,从而 避免了业务中断。
图1为本发明堆叠组中成员设备软件版本不一致的处理方法流程图。 图2为本发明堆叠组升级方法的流程图。
图3为本发明实施例一中堆叠组软件版本升级的方法流程图。 图4为本发明实施例二中堆叠组软件版本升级的方法流程图。 图5为本发明实施例三中堆叠组软件版本升级的方法流程图。 图6为本发明实施例中一种成员设备的结构示意图。
具体实施例方式
本发明首先提供了 一种堆叠系统中成员设备软件版本不 一致的处理方 案,如图1所示,该方法包括以下步骤
步骤101:当堆叠系统中的一个或多个成员设备启动并请求加入某一堆 叠组A时,检测所述一个或多个成员设备与欲加入堆叠组A的其他已启动 设备的软件版本是否一致;如果不一致,则不允许所述一个或多个成员设备 加入所述堆叠组A,但允许所述一个或多个成员i殳备以主设备身份启动;否 则,允许所述一个或多个成员i殳备加入所述堆叠组A,即所述一个或多个成 员设备与所述其他已启动设备堆叠,形成堆叠组A。
其中,成员设备的"启动"包括初始启动和重启。
本发明中,欲加入堆叠组A的"其他已启动设备"可以是一个设备, 也可以是多个设备堆叠在一起组成的堆叠组a。
以"其他已启动设备"为堆叠组a为例,当所述"一个或多个成员设备" 启动后,如果"一个或多个成员设备"与堆叠组a的软件版本一致,则"一 个或多个成员设备"与堆叠组a堆叠,构成所述堆叠组A。其中,判断设备 与堆叠组软件版本是否一致为判断设备与堆叠组中的设备软件版本是否一 致。
步骤102:当所述一个或多个成员设备以主设备身份启动后,检测到所
ii根据各主设备的启动时间,保留启动时间最短的主设备正常工作,即保留软 件版本较新的主设备正常工作,将未保留的成员设备的所有业务口关闭。
被关闭的业务口为面向用户的业务口 ,并非堆叠链路所占用的堆叠口 。 关闭相应业务口后,堆叠系统的多主设备仍然存在,只对外网不可见,对外 网来说,堆叠系统仍然只具有一个主设备。
其中,检测堆叠系统中是否包含多个主设备的操作可以采用现有的多活
动主积^险测(MAD, Multi-Active Detection)才几制完成。该MAD才几制冲全测 的范围是堆叠系统,即配置的堆叠范围。
这里需要说明的是,本文所述的堆叠系统和堆叠组是有区别的堆叠系 统是指配置的堆叠范围,即通过堆叠链路连接起来的成员设备的范围;堆叠 组是指成员设备启动并参与堆叠后形成的设备集合。当堆叠系统启动后,形 成堆叠组,堆叠组中成员设备的数量小于或等于堆叠系统中成员设备的数 量。例如,配置堆叠系统中包括设备A、 B、 C和D,堆叠系统启动后,因 为某种原因设备A未能成功堆叠,则设备B、 C和D成功堆叠在一起,则 形成的堆叠组^f又包括设备B、 C和D。
至此,本流程结束。
上述步骤101和102包含了本发明提出的两种处理机制 机制1:当某成员设备x—1请求与其他已启动设备堆叠成堆叠组A时, 如果检测到成员设备xl的软件版本与欲加入堆叠组A的其他已启动设备的 软件版本不一致时,不允许堆叠成功,允许成员设备xl以主设备的身份启 动。
需要说明的是,所述允许成员设备xl以主设备的身份启动并不表明成 员设备xl —定会以主设备的身份启动,具体来说,可以包括以下两种实施 方式
其一、无论是否存在同时启动的其他成员设备,成员设备xl均以主设 备身份启动;
其二、仅当不存在同时启动的其他成员设备时,成员设备xl以主设备身份启动;当存在同时启动的其他成员设备时,成员设备xl与其他同时启 动且具有相同软件版本的设备堆叠在一起启动。堆叠在一起启动的成员设备 相互交流并选举出主设备。
机制2:当MAD检测到多主设备时,比较多个主设备的软件版本号, 如果不一致,则保留启动时间最短的主设备及其从设备正常工作,将未保留 的设备的所有业务口关闭。
具体来说,所述保留启动时间最短的设备正常工作为
如果堆叠系统中仅存在一个启动时间最短的主设备,则保留该启动时间 最短的主设备及其从设备正常工作;
如果堆叠系统中存在多个启动时间最短的主设备,则根据MAD机制从 多个启动时间最短的主设备中选择一个主设备,保留选定的主设备及其从设 备正常工作。
经图1所述流程的处理,业务口被关闭的成员设备上的流量切换到被保 留的设备中,从而避免了业务流量的中断。当后续对业务口关闭的成员设备 升级并重启后,由于经升级后软件版本一致,则允许重启后的设备堆叠成功, 从而完成了堆叠组的升级过程。在堆叠组的升级过程中始终有成员设备正常 工作,业务流量不会间断,因此图1所述的处理方法有利于实现不间断业务 下的堆叠组升级。
利用图1示出的处理方法可以实现堆叠组的在线升级,即对已启动的堆 叠组进行升级。图2为本发明堆叠组升级方法的流程图。如图2所示,该流 程包括以下步骤
步骤201:在需要对已启动的堆叠组A进行软件版本升级时,先重启堆 叠组A中的部分成员设备X。成员设备X^皮重启后,退出堆叠组A,缺少 成员设备X的堆叠组A形成堆叠组a。
在实际中,两台成员设备构成的堆叠组比较常见,那么先重启的部分成 员设备X为一个。如果堆叠组包括两台以上成员设备,则先重启的部分成员设备X可以
为一个,也可以为多个(多个指一个以上)。由于只要剩余一个成员设备提
供业务流量处理即可,因此先重启的部分成员设备X最多不超过N-1个,N 为重启前堆叠组A中所有成员设备的数目。
步骤202:成员设备X重启时,运行升级后的软件版本,并请求与堆叠 组a堆叠,以形成堆叠组A,即成员设备X请求加入堆叠组A;在检测到成 员设备X重启后运行的软件版本与堆叠组a的软件版本不一致时,允许成员 设备X以主设备身份启动。
根据前述步骤101所述的其一和其二,本步骤202所述成员设备X以 主设备身份启动也分为几种情况
一种情况是,当成员设备X为一个时,必定以主设备身份启动;
另一种情况是,当成员设备X为至少2个时,可以按照"其一"每个 成员设备X都以主设备身份启动,也可以按照"其二"多个成员设备X选 举主i殳备并堆叠在一起启动。
步骤203:成员设备X重启完成后,MAD机制检测到堆叠系统中包含 不只一个主设备后,比较各主设备的软件版本,如果版本完全不一致,则保 留启动时间最短的一个主设备及其从设备正常工作,将未保留的成员设备的 所有业务口关闭,业务口被关闭的成员设备记为Y。成员设备Y的业务口被 关闭后,成员设备X形成堆叠组a,。
成员设备X的数目为一个和多个时,对应的保留设备选择过程略有不 同,以下实施例中详细描述。
步骤204:重启成员设备Y;重启的成员设备Y运行升级后的软件版本, 并请求与堆叠组a,堆叠,以再次形成堆叠组A;检测到成员设备Y重启后 运行的软件版本与堆叠组a,的软件版本一致,则允许成员设备Y和堆叠组a, 堆叠,形成堆叠组A。
至此,堆叠组A中的所有成员设备均完成了升级。
由于在升级过程中始终有保持正常运行的成员设备,因此业务流量可以由正常运行的成员设备处理,避免了对堆叠组中的所有设备同时重启造成的 业务流量中断问题,能够满足用户要求不间断业务升级的要求。
下面针对堆叠组包含不同数量的成员设备以及先重启不同数量的成员 设备分别举实施例进行描述。 实施例一
本实施例中堆叠组A包括两个成员i殳备,分别称为设备1和设备2。
图3为本发明实施例一中堆叠组软件版本升级的方法流程图。如图3所 示,该方法包括以下步骤
步骤301:向堆叠组A中的设备1和设备2中下载升级后的软件版本, 并标记为下一次启动版本。假设设备1和设备2当前运行的版本为版本1, 升级后的版本为版本2。
步骤302:重启堆叠组A中其中一台设备,祁支设重启设备l,此时,业 务流量切换到设备2,流量没有中断。
堆叠组中的某台设备重启,MAD机制会将原本由被重启的设备处理的 流量切换到保持正常工作的设备上,该过程为常规手段,这里不赘述。
其中,重启的设备1可以为主设备,也而可以为从i殳备。当设备l为主 设备时,设备l重启后,设备2切换为主设备,该切换过程也为常规手段。
步骤303:当设备l重启时,运行版本2的软件,并请求与设备2堆叠, 以加入堆叠组A。此时,判定设备1与设备2的软件版本不一致(设备1使 用版本2,设备2使用版本1),此时根据机制1,设备1不能与设备2正 常堆叠,只能以主设备的身份单独启动。
本步骤执行后实现了设备1的软件版本升级。
步骤304:设备1重启后,设备1和设备2均为主设备,MAD机制检 测到此现象后,根据机制2比较设备1和设备2的软件版本号,发现软件版 本号不一致,再比较设备1和设备2的启动时间,设备l启动时间较短,所 以将设备2的业务口关闭。此时,业务流量切换到设备l,流量没有中断。
15设备1切换为主设备。
步骤305:手工重启设备2。当设备2重启时,运行版本2的软件,并 请求与设备l堆叠,以加入堆叠组A。此时,判定设备2与设备1的软件版 本一致,允许设备2正常堆叠并完成重启,从而实现了设备2的软件版本升 级。设备2启动后,业务流量重新在两台设备间分担,流量没有中断。
至此,完成了堆叠组A的升级过程,由升级过程的描述可以看出,流 量始终没有中断。
在实际中,如果堆叠组A包括两台以上成员设备,且首次重启其中一 台成员设备,则堆叠组A的升级过程与图3相似,只是步骤305重启的成 员设备个数为N-l。
实施例二
本实施例中堆叠组A包括四个成员设备,分别称为设备l、 2、 3和4。 升级堆叠组A时,先重启其中两台设备。
图4为本发明实施例二中堆叠组软件版本升级的方法流程图。如图4所 示,该方法包括以下步骤
步骤401:向堆叠組A中的各设备下载升级后的软件版本,并标记为下 一次启动版本。假设堆叠组中各设备当前运行的版本为版本1,升级后的版 本为版本2。
步骤402:重启堆叠组A中其中两台设备,4叚设重启设备1和i殳备2, 此时,业务流量根据负载分担策略切换到设备3和/或设备4,流量没有中断。
被重启的设备1和设备2中可以包括主设备,也可以不包括主设备。当 设备1和设备2包括主设备时,设备1和设备2重启后,设备3和设备4重 新选举新的主设备。假设重启后设备3为主设备。
步骤403:当设备1和2重启时,均运行版本2的软件,并请求与设备 3和设备4组成的堆叠组a堆叠,以加入堆叠组A。此时,判定设备1和设 备2与堆叠组a中的当前主设备即设备3的软件版本不一致(设备1和设备2使用版本2,设备3使用版本1 ),此时根据机制1,设备1和设备2不能 与堆叠组a成功堆叠,分别以主设备的身份正常启动。
步骤404:设备1和设备2重启后,设备l、 i殳备2和设备3均为主设 备,MAD机制检测到此现象后,根据机制2比较设备1、设备2和设备3 的软件版本号,发现软件版本号不完全一致,再比较设备l、设备2和设备 3的启动时间,假设设备1和设备2的启动时间完全相同且短于设备3,此 时进一步根据MAD机制从设备1和设备2中选择一个成员设备保留正常工 作,例如选择成员编号最小的设备正常工作。假设在设备1和设备2中,设 备l的成员编号较小,则保留设备l正常工作,将设备2和堆叠组a中所有 成员设备的所有业务口的所有业务口关闭。
在实际中,由于设备个体差异,如果设备1和设备2的启动时间稍有差 别,则可以直接选择启动时间最短的成员设备保留正常工作,而不必交由 MAD机制选择保留设备。
经本步骤的处理,业务流量切换到设备l,流量没有中断。同时设备l 切换为主设备。
步骤405:手工重启设备2、 3和4。重启后设备2、 3和4运行版本2 的软件,并请求与设备l堆叠,以加入堆叠组A。此时,判定设备2、 3和 4的软件版本号与设备1 一致,允许设备2、 3和4与设备1正常堆叠并完 成重启,从而实现了设备2、 3和4的软件版本升级。至此,完成了堆叠组 A的升级过程。此后,业务流量重新在四台设备间分担,流量没有中断。 本实施例中,同时重启多个设备可以采用同时关闭设备电源的方式。 但是在实际中,为了保证不间断业务升级的效果,通常对先重启的多台 设备也采用顺序重启的方式,例如在上述步骤402中按照先设备1再设备2 的顺序重启这两台设备。那么在步骤403和404中,设备l先以主设备身份 重启完成,根据机制2设备1保持正常工作,并关闭设备3和设备4的业务 口,此时,设备2请求与设备1堆叠,由于软件版本一致,堆叠成功。然后 再手工重启设备3和设备4从而完成了堆叠组的升级。实施例三
本实施例中堆叠组A仍包括四个成员设备,分别称为设备1、 2、 3和4。 升级堆叠组A时,先同时重启设备1和设备2。不同之处在于设备l和设备 2堆叠在一起重启。
图5为本发明实施例三中堆叠组软件版本升级的方法流程图。如图5所 示,该方法包括以下步骤
步骤501和502与前述步骤401和402相同。
步骤503:当设备1和2重启时,均运行版本2的软件,并请求与设备 3和设备4组成的堆叠组a堆叠,以加入堆叠组A,此时设备l判定与堆叠 组a的当前主设备即设备3的软件版本不一致,但与设备2—致,相应地设 备2判定与设备3的软件版本不一致,但与设备l一致,则根据机制1,设 备1和设备2不能与堆叠组a成功堆叠,但设备1和设备2具有相同软件版 本号,可以相互堆叠,因此设备1和设备2选举主设备并堆叠在一起启动, 设备1和设备2形成的堆叠组称为堆叠组a,。〗叚i殳选举设备1为主设备。
设备1和设备2选举主设备并堆叠在一起启动的前提条件是设备1和设 备2之间具有物理连接。如果设备1和设备2之间没有物理连接,那么设备 1和设备2之间相互知道对方的软件版本号,则设备1和设备2仍分别以主 设备身份单独启动。在这种情况下,设备1和设备2重启后的操作与实施例 二相同,这里不赘述。
步骤504为设备1和设备2重启后,设备1和设备3均为主设备, MAD机制检测到此现象后,根据机制2比较设备1和设备3的软件版本号, 发现软件版本号不一致,再比较设备l和设备3的启动时间,设备l的启动 时间较短,则保留设备1及其从设备即设备2正常工作,将设备3及其从设 备即设备4的所有业务口关闭。
经本步骤的处理,业务流量切换到设备1和/或设备2,流量没有中断。 同时设备1仍然作为主设备。步骤505:手工重启设备3和4。重启后设备3和4运行版本2的软件, 并请求与堆叠组a,堆叠,以加入堆叠组A。此时,判定设备3和4的软件版 本号与堆叠组a,的当前主设备即设备1 一致,允许设备3和4与堆叠组a, 正常堆叠并完成启动,从而实现了设备3和4的软件版本升级。至此,完成 了堆叠组A的升级过程。此后,业务流量重新在四台设备间分担,流量没 有中断。
通常,堆叠系统在初始启动时,各成员设备的软件版本会被配置为一致 从而可以正常堆叠,形成堆叠组。 一旦在堆叠系统初始启动时,各成员设备 的软件版本不完全一致,则本发明实施例将软件版本相同的成员设备选举主 设备并堆叠在一起启动。堆叠系统启动后,MAD机制检测不只一个主设备, 且各主设备的启动时间相同但软件版本不完全一致,则根据MAD机制从各 主设备中选择一个,例如选择成员编号最小者,保留选定的主设备及其从设 备正常工作,将未保留的成员设备的所有业务口关闭,等待手工重启。该各 主设备的启动时间相同则交给MAD机制处理的方式作为上述机制2的补 充,从而使得机制1的设置不会影响堆叠组的正常工作。
为了实现本发明实施例中软件版本不一致的处理方法,本发明提供了 一 种堆叠系统中的成员设备。图6为本发明实施例中一种成员设备的结构示意 图。如图6所示,该成员设备包括软件版本检测单元61和多主设备检测单 元62;其中,
软件版本冲企测单元61,用于当所在成员i殳备启动并请求加入一堆叠组 时,检测自身与欲加入所述堆叠组的其他已启动设备的软件版本是否一致; 如果不一致,则允许所在成员设备以主设备身份启动;否则,允许所在成员 设备加入所述堆叠组。
其中,该软件版本检测单元61在判定自身与名欠加入所述堆叠组的其他 已启动设备的软件版本不一致时,无论是否存在同时启动的其他成员设备,均以主设备身份启动;或者,与其他同时启动且具有相同软件版本的成员设 备堆叠在一起启动。
多主设备检测单元62,用于当4企测到所在堆叠系统中包含至少两个主 设备且各主设备的软件版本不完全一致时,确定启动时间最短的一个主设 备,判断所在成员设备是否为所确定的主设备本身或其从设备;如果是,则 保留所在成员设备正常工作;否则,将所在成员设备的所有业务口关闭。
其中,该多主设备4企测单元62,在确定启动时间最短的一个主设备时, 如果所在堆叠系统中仅存在一个启动时间最短的主设备,则将该主设备确定 为所述启动时间最短的一个主设备;如果所在堆叠系统中存在多个启动时间 最短的主设备,则根据MAD机制从所述多个启动时间最短的主设备中选择 一个主设备,将选定的主设备确定为所述启动时间最短的一个主设备。
较佳地,软件版本4企测单元61进一步用于,当所在堆叠系统初始启动时, 如果所述堆叠系统中各成员设备的软件版本不完全一致,则软件版本相同的成 员设备选举主设备并堆叠在一起启动;
多主设备检测单元62进一步用于,所在堆叠系统初始启动后,MAD机 制检测到所述堆叠系统中包含至少两个主设备,且各主设备的软件版本不完 全一致但启动时间相同,则根据MAD机制从各主设备中选择一个,判断所 在成员设备是否为所选定的主设备本身或其从设备;如果是,则保留所在成 员设备正常工作;否则,将所在成员设备的所有业务口关闭。
当采用图6示出的成员设备实现上述堆叠组升级时,图6示出的成员设 备进一步包括软件保存单元63和重启单元64;其中,
软件保存单元63,用于接收并保存软件,该软件包括升级后的软件版 本。在一个实施例中,在所在成员设备重启之前,该软件保存单元63接收 来自外部的升级后的软件版本,并标记为下一次启动时运行的版本。
重启单元64,用于根据来自外部的重启命令重启时,运行软件保存单 元63保存的升级后的软件版本,并通知软件版本检测单元61执行其自身操 作。
20综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的 保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改 进等,均应包含在本发明的保护范围之内。
权利要求
1、一种堆叠系统中成员设备软件版本不一致的处理方法,其特征在于,该方法包括A、堆叠系统中的一个或多个成员设备启动并请求加入一个堆叠组时,检测所述一个或多个成员设备与欲加入所述堆叠组的其他已启动设备的软件版本是否一致;如果不一致,则允许所述一个或多个成员设备以主设备身份启动;否则,所述一个或多个成员设备加入所述堆叠组;B、当检测到所述堆叠系统中包含至少两个主设备且各主设备的软件版本不完全一致时,保留启动时间最短的一个主设备正常工作,将未保留的成员设备的所有业务口关闭。
2、 如权利要求l所述的方法,其特征在于,当堆叠系统中的一个成员设备 x—1启动并请求加入一个堆叠组时,步骤A所述允许所述一个或多个成员设备以主设备身份启动为所述成员 设备x—1以主设备身份启动;步骤B所述保留启动时间最短的一个主设备正常工作,将未保留的成员设 备的所有业务口关闭为比较成员设备x一l与欲加入所述堆叠组中的其他已启 动设备的启动时间,确定所述成员设备x—1的启动时间短于所述其他已启动设 备,则保留成员设备x一l正常工作,将所述其他已启动设备的所有业务口关闭。
3、 如权利要求l所述的方法,其特征在于,当堆叠系统中的多个成员设备 x—1 乂_11启动并请求加入一个堆叠组时,其中,n为大于或等于2的整数;步骤A所述允许所述一个或多个成员设备以主设备身份启动为所述成员 设备x—l~x—n分别以主设备身份启动;步骤B所述保留启动时间最短的一个主设备正常工作,将未保留的成员设 备的所有业务口关闭为比较成员设备x—l~x_n和欲加入所述堆叠组的其他已 启动设备的启动时间,确定所述成员设备xj x—n的启动时间相同,且短于所 述其他已启动设备,则根据MAD机制从所述成员设备x l~x n中选择一个成员设备保留正常工作,将成员设备xj x一n中除保留成员设备之外的所有成员 设备以及所述其他已启动设备的所有业务口关闭。
4、 如权利要求l所述的方法,其特征在于,当堆叠系统中的多个成员设备 x一l x—n启动并请求加入一堆叠组时,其中,n为大于或等于2的整数;步骤A所述允许所述一个或多个成员设备以主设备身份启动为成员设备 x_l~x—n选举主i殳备x一A并堆叠在一起启动;步骤B所述保留启动时间最短的一个主i殳备正常工作,将未保留的成员设 备的所有业务口关闭为比较主设备x一A和欲加入所述堆叠组的其他已启动设 备的启动时间,确定主设备x—A的启动时间短于所述其他已启动设备,则保留 成员设备x一l x一n正常工作,将所述其他已启动设备的所有业务口关闭。
5、 如权利要求l所述的方法,其特征在于,该方法进一步包括在所述堆 叠系统初始启动时,如果所述堆叠系统中各成员设备的软件版本不完全一致, 则软件版本相同的成员设备选举主设备并堆叠在一起启动;所述堆叠系统初始启动后,MAD机制4全测到所述堆叠系统中包含至少两个 主设备,且各主设备的软件版本不完全一致但启动时间相同,则根据MAD机 制从各主设备中选择一个,保留选定的主设备及其从设备正常工作,将未保留 的成员设备的所有业务口关闭。
6、 如权利要求1至5任意一项所述的方法,其特征在于,所述步骤B之后, 该方法进一步包括步骤C:重启业务口关闭的成员设备,重启的成员设备运行 与所述堆叠组中的成员设备相同的软件版本,允许所述重启的成员设备加入所 述堆叠组。
7、 如权利要求6所述的方法,其特征在于,在需要对已启动的堆叠组进行 软件版本升级时,先重启所述堆叠组中的部分成员设备X;所述已启动的堆叠 组中未重启的成员设备称为成员设备Y;成员设备X重启时,运行升级后的软件版本,然后执行所述步骤A至C; 且步骤A中所述的其他已启动设备为所述成员设备Y。
8、 如权利要求7所述的方法,其特征在于,所述重启所述堆叠组中的部分成员设备X之前,该方法进一步包括将待升级的软件版本下载到所述堆叠组 中的所有成员设备中,并标记为下一次启动时运行的版本。
9、 一种堆叠系统中的成员设备,其特征在于,该成员设备包括 软件版本检测单元,用于当所在成员设备启动并请求加入一堆叠组时,检测自身与欲加入所述堆叠组的其他已启动设备的软件版本是否一致;如果不一 致,则允许所在成员设备以主设备身份启动;否则,允许所在成员设备加入所 述堆叠组;多主设备^f金测单元,用于当4全测到所在堆叠系统中包含至少两个主设备且 各主设备的软件版本不完全一致时,确定启动时间最短的一个主设备,判断所 在成员设备是否为所确定的主设备本身或其从设备;如果是,则保留所在成员 设备正常工作;否则,将所在成员设备的所有业务口关闭。
10、 如权利要求9所述的成员设备,其特征在于,所述软件版本检测单元 在判定自身与欲加入所述堆叠组的其他已启动设备的软件版本不一致时,无论 是否存在同时启动的其他成员设备,均以主设备身份启动;或者,与其他同时启动且具有相同软件版本的成员设备堆叠在一起启动。
11、 如权利要求9所述的成员设备,其特征在于,所述多主设备检测单元 在确定启动时间最短的一个主i殳备时,如果所在堆叠系统中仅存在一个启动时 间最短的主设备,则将该主设备确定为所述启动时间最短的一个主设备;如果 所在堆叠系统中存在多个启动时间最短的主设备,贝']根据MAD机制从所述多 个启动时间最短的主设备中选择一个主设备,将选定的主设备确定为所述启动 时间最短的一个主^殳备。
12、 如权利要求9所述的成员设备,其特征在于,所述软件版本检测单元 进一步用于,在所述堆叠系统初始启动时,如果所述堆叠系统中各成员设备的 软件版本不完全一致,则软件版本相同的成员设备选举主设备并堆叠在一起启 动;所述多主设备检测单元进一步用于,所述堆叠系统初始启动后,MAD机制 检测到所述堆叠系统中包含至少两个主设备,且各主设备的软件版本不完全一致但启动时间相同,则根据MAD机制从各主设备中选择一个,判断所在成员 设备是否为所选定的主设备本身或其从设备;如果是,则保留所在成员设备正 常工作;否则,将所在成员设备的所有业务口关闭。
13、 如权利要求9至12任意一项所述的成员设备,其特征在于,该成员设 备进一步包括软件保存单元和重启单元;所述软件保存单元,用于接收并保存软件,该软件包括升级后的软件版本; 所述重启单元,用于根据来自外部的重启命令重启时,运行所述软件保存 单元保存的所述升级后的软件版本,并通知软件版本^r测单元执行其自身操作。
14、 如权利要求13所述的成员设备,其特征在于,所述软件保存单元在所 在成员设备重启之前,接收来自外部的升级后的软件版本,并标记为下一次启 动时运行的版本。
全文摘要
本发明公开了一种堆叠系统中成员设备软件版本不一致的处理方法,该方法包括堆叠系统中的一个或多个成员设备启动并请求加入一个堆叠组时,检测所述一个或多个成员设备与欲加入所述堆叠组的其他已启动设备的软件版本是否一致;如果不一致,则允许所述一个或多个成员设备以主设备身份启动;否则,所述一个或多个成员设备和所述其他已启动设备加入所述堆叠组。本发明还公开了一种成员设备。使用本发明能够在不间断业务的情况下,实现堆叠组的升级。
文档编号H04L12/24GK101621407SQ200910091158
公开日2010年1月6日 申请日期2009年8月11日 优先权日2009年8月11日
发明者严德汗, 澎 杜, 高平利 申请人:杭州华三通信技术有限公司