发明内容
本发明提供了一种预测堆叠分裂的方法及设备,避免对额外检测链路的依赖,实现快速的堆叠分裂检测。
本发明提供的一种预测堆叠分裂的方法,应用于堆叠设备中,包括:
在执行可能引起堆叠分裂的操作之前,对所述操作执行之后的拓扑进行预测,得到预测拓扑;
判断预测拓扑是否存在堆叠分裂,如果存在,基于预测拓扑,使用多活动检测(MAD)技术对分裂双方的状态进行预测,得到分裂双方的预测状态;
执行所述操作;
在检测到堆叠分裂时,判断预测拓扑与实际拓扑是否相同,如果相同,分裂双方进入相应的预测状态。
本发明提供的一种预测堆叠分裂的设备,包括:
拓扑预测模块,用于在执行可能引起堆叠分裂的操作之前对所述操作执行之后的拓扑进行预测,得到预测拓扑,发送给状态预测模块;
状态预测模块,用于根据接收自拓扑预测模块的预测拓扑判断预测拓扑中是否存在堆叠分裂,在存在堆叠分裂时,用于基于预测拓扑,使用多活动检测(MAD)技术对分裂双方的状态进行预测,得到分裂双方的预测状态。
由上述技术方案可见,本发明提供的预测堆叠分裂的方法及设备,在可控操作行为下,避免了对额外MAD检测链路的依赖,并且,在堆叠分裂后,能立即判断出存在MAD冲突,并零延时地完成MAD冲突处理,从而,避免可对额外检测链路的依赖,实现了快速的堆叠分裂检测。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
为方面描述,本发明将堆叠分裂后不应该继续工作的一方称为recovery设备(或称进入recovery状态),分裂后需要继续工作的一方称为active设备(或称保持在active状态)。
细致深入地分析堆叠分裂的原因,可以分为两类:一类是可控分裂行为,例如:手动(通过CLI(命令行)或者MIB操作)关闭堆叠端口,再例如重启(reboot)成员设备导致剩余的堆叠成员分裂;另一类是不可控的分裂行为。
不可控的分裂行为又可以继续细分为:堆叠链路故障、堆叠端口故障、堆叠板卡故障、成员设备故障、其它硬件故障(典型的例如转发路径故障)和电源故障。
对可控分裂行为,在分裂发生前预测分裂影响,确定哪些设备进入recovery状态,哪台设备继续保持在active状态,并将预测结果记录到各成员设备,在发生堆叠分裂时,各成员设备根据预测结果确定自身是进入recovery状态,还是保持在active状态。
本发明提出了一种预测堆叠分裂的方法,如图1所示,该方法在可能引起堆叠分裂的可控操作开始时包括以下步骤:
步骤101:判断当前操作是否会引起堆叠拓扑发生变化,如果是,继续执行步骤102,否则,执行步骤107。
步骤102:对操作执行后的拓扑进行预测,得到预测拓扑。
步骤103:判断预测拓扑是否存在堆叠分裂,如果是,继续执行步骤104。
步骤104:基于预测拓扑,使用MAD冲突处理技术对分裂双方的状态进行预测,得到分裂双方的预测状态。
步骤105:将预测拓扑及其相应的预测状态作为预测结果通知各成员设备。
步骤106:各成员设备保存预测拓扑及其相应的预测状态。
步骤107:执行可控操作。
执行操作后,将发生堆叠分裂,在各成员设备的拓扑重新稳定时,执行步骤108。
步骤108:成员设备检测到堆叠分裂。
步骤109:判断是否保存有预测拓扑和预测状态,如果是,执行步骤110,否则,执行步骤112。
步骤110:判断预测拓扑与实际拓扑是否相同,如果相同,执行步骤111,否则,执行步骤112。
步骤111:进入预测状态。
步骤112:使用现有技术进行堆叠分裂处理。
至此,结束本较佳方法。
较佳地,本发明方法可以由active master(active设备)执行,active master可以对各种操作执行后的结果进行预测,并将预测得到的预测拓扑和预测状态发送给各成员设备,从而,在执行某操作之后,各成员设备能够直接根据预测结果进入相应的状态,避免使用额外的检测链路,并零延时地完成MAD冲突处理。
对应于上述方法,本发明提供了一种预测堆叠分裂的设备,如图2所示,该设备包括:
拓扑预测模块210,用于在执行可能引起堆叠分裂的操作之前对该操作执行之后的拓扑进行预测,得到预测拓扑,发送给状态预测模块220;
状态预测模块220,用于根据接收自拓扑预测模块210的预测拓扑判断预测拓扑中是否存在堆叠分裂,在存在堆叠分裂时,用于基于预测拓扑,使用MAD技术对分裂双方的状态进行预测,得到分裂双方的预测状态。
较佳地,该设备中还可以进一步包括:收发模块230和存储模块240;
处于master角色的设备的收发模块230,用于将预测拓扑和预测状态发送给该堆叠中的各成员设备;
处于非master角色的设备的收发模块,用于从处于master状态的设备接收预测拓扑和预测状态,并发送给存储模块240进行保存。
较佳地,该设备中还可以进一步包括:判断模块250,在检测到堆叠分裂时,用于判断存储模块240中是否保存有预测拓扑和预测状态,在保存有预测拓扑和预测状态的情况下,判断预测拓扑与实际拓扑是否相同,在相同的情况下,令所述设备进入相应的预测状态。
下面通过一个较佳实施例对本发明进行详细说明。
假设执行可能引起堆叠分裂的操作前堆叠的组成如图3所示。图3所示堆叠中,包含3个成员设备,分别为:成员设备1、成员设备2和成员设备3。本实施例中,假设关闭成员设备1和成员设备2之间的物理链路。本实施例预测堆叠分裂的方法流程如图4所示。下面参见图3进行详细说明。
图4左上部分示出的是:操作前堆叠中各成员设备的编号、状态及相互之间的连接关系。从图中可以看出,操作前成员设备1~3均处于active状态。
图4右上部分示出的是:对关闭成员设备1和2之间的物理链路之后的拓扑进行预测的结果,以下称为预测拓扑。从图中可以看出,关闭成员设备1和2之间的物理链路之后,成员设备1的左右端口均不与其他设备相连,成员设备2的右端口与成员设备3的左端口相连,因此,将得到两个分裂的预测拓扑:预测拓扑1和预测拓扑2。其中,预测拓扑1中包含成员设备1,预测拓扑2中包含成员设备2和3。由于存在两个分裂的预测拓扑,表明需要进行MAD冲突处理技术进行处理,可以使用现有的MAD冲突处理技术对预测拓扑进行处理,预测分裂双方的状态。
图4下半部分示出的是:对预测拓扑进行MAD冲突处理后,各预测拓扑的预测状态。从图中可以看出,预测拓扑1将保持在active状态,而预测拓扑2将进入recovery状态。
预测拓扑及相应的预测状态将作为预测结果保存到各成员设备(即:成员设备1~3)上。
预测完成后,关闭成员设备1和2之间的物理链路,此时,堆叠分裂为两个:成员设备1形成单独的一个堆叠,成员设备2和3形成另外的堆叠,如图5所示。各成员设备都将实际拓扑与预测拓扑进行比较,并发现两者是一致的。此时:
成员设备1将使用预测的状态(active),继续保持在active状态;
而成员设备2和3将根据预测的状态,使设备进入recovery状态。
成员设备在使用了预测状态后,或者预测状态在一段预设的时间内没有被使用,成员设备都将清除该预测状态。
由上述实施例可见,本发明提供的预测堆叠分裂的方法及设备,在可控操作行为下,避免了对额外MAD检测链路的依赖,并且,在堆叠分裂后,能立即判断出存在MAD冲突,并零延时地完成MAD冲突处理,从而,避免可对额外检测链路的依赖,实现了快速的堆叠分裂检测。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。