本申请涉及计算机技术领域,特别涉及一种白盒交换机故障诊断方法及装置。
背景技术:
云计算(cloudcomputing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。交换机是云计算数据中心的一种网络设备,随着软件定义网络(sdn)的全面兴起,白盒交换机开始走入人们的视野。与传统交换机不同,白盒交换机将交换机的硬件和软件解耦,用户可以只购买交换机的硬件,然后按需搭配第三方操作系统软件,这使得用户可以灵活地设计和配置网络。
但是,在软硬件解耦的同时也会带来维护方面的一些问题,如何在设备使用现场判别软件故障还是硬件故障成为一个难题。
技术实现要素:
有鉴于此,本申请的目的在于提供一种白盒交换机故障诊断方法及装置。其具体方案如下:
第一方面,本申请实施例提供了一种白盒交换机故障诊断方法,包括:
在白盒交换机启动时,判断是否接收到检测指令;
若接收到测试版本检测指令,则执行测试版本检测,所述测试版本的检测项目包括硬件、底层软件、操作系统、软件开发工具包以及测试模块;
若接收到正式版本检测指令,则执行正式版本检测,所述正式版本的检测项目包括硬件、底层软件、操作系统、软件开发工具包以及网络操作系统。
可选地,所述方法还包括:
若未接收到检测指令,则执行正式版本检测。
可选地,所述执行测试版本检测包括:
执行快速检测;
若快速检测中检测到故障,则执行深度检测。
可选地,所述快速检测包括下述步骤中的一种或其组合:
读取交换芯片配置空间值判断是否有错误,如有错误则记录并退出;
读取交换芯片通用寄存器判断是否有错误,如有错误则记录;
读取交换芯片内部表项值判断是否有错误,如有错误则记录;
读取交换芯片外部表项判断是否有错误,如有错误则记录;
测试交换芯片外部报文缓存判断是否有错误,如有错误则记录;
依次内部环回测试交换芯片端口,如有错误则记录。
可选地,所述深度检测包括下述步骤中的一种或其组合:
对芯片内部所有表项可自由操作写内容写入0x55值;
读取芯片内部所有表项并判断是否是写入值,如果不是则记录错误;
对芯片内部所有表项可自由操作写内容写入0xaa值;
读取芯片内部所有表项并判断是否是写入值,如果不是则记录错误;
对芯片所有外部表项可自由操作写内容写入0x55值;
读取芯片所有外部表项并判断是否是写入值,如果不是则记录错误;
对芯片所有外部表项可自由操作写内容写入0xaa值;
读取芯片所有外部表项并判断是否是写入值,如果不是则记录错误;
通过配置内部环回和vlan使交换芯片端口两两成环;
通过控制cpu往成环端口发送广播报文在端口成环对上制造广播风暴;
读取端口统计寄存器判断是否有硬件引起的报文丢弃错误,如有则记录错误。
第二方面,本申请实施例提供了一种白盒交换机故障诊断装置,包括:
指令接收模块,用于在白盒交换机启动时,接收检测指令;
执行模块,用于若接收到测试版本检测指令,则执行测试版本检测,所述测试版本的检测项目包括硬件、底层软件、操作系统、软件开发工具包以及测试模块;
若接收到正式版本检测指令,则执行正式版本检测,所述正式版本的检测姓名包括硬件、底层软件、操作系统、软件开发工具包以及网络操作系统。
可选地,所述执行模块还用于:
若未接收到检测指令,则执行正式版本检测。
可选地,所述执行测试版本检测包括:
执行快速检测;
若快速检测中检测到故障,则执行深度检测。
可选地,所述快速检测包括下述步骤中的一种或其组合:
读取交换芯片配置空间值判断是否有错误,如有错误则记录并退出;
读取交换芯片通用寄存器判断是否有错误,如有错误则记录;
读取交换芯片内部表项值判断是否有错误,如有错误则记录;
读取交换芯片外部表项判断是否有错误,如有错误则记录;
测试交换芯片外部报文缓存判断是否有错误,如有错误则记录;
依次内部环回测试交换芯片端口,如有错误则记录。
可选地,所述深度检测包括下述步骤中的一种或其组合:
对芯片内部所有表项可自由操作写内容写入0x55值;
读取芯片内部所有表项并判断是否是写入值,如果不是则记录错误;
对芯片内部所有表项可自由操作写内容写入0xaa值;
读取芯片内部所有表项并判断是否是写入值,如果不是则记录错误;
对芯片所有外部表项可自由操作写内容写入0x55值;
读取芯片所有外部表项并判断是否是写入值,如果不是则记录错误;
对芯片所有外部表项可自由操作写内容写入0xaa值;
读取芯片所有外部表项并判断是否是写入值,如果不是则记录错误;
通过配置内部环回和vlan使交换芯片端口两两成环;
通过控制cpu往成环端口发送广播报文在端口成环对上制造广播风暴;
读取端口统计寄存器判断是否有硬件引起的报文丢弃错误,如有则记录错误。
采用本申请实施例所提供的方法,在现场即可区分和定位白盒交换机故障,不需要把交换机返厂定位,从而节省故障定位时间,减少设备返厂检测成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种白盒交换机故障诊断方法流程示意图;
图2为本申请实施例提供的一种测试版本架构示意图;
图3为本申请实施例提供的一种正式版本架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例提供的一种白盒交换机故障诊断方法流程示意图,如图1所示,所述方法包括以下步骤。
步骤s101:在白盒交换机启动时,判断是否接收到检测指令;
步骤s102:若接收到测试版本检测指令,则执行测试版本检测;
步骤s103:若接收到正式版本检测指令,则执行正式版本检测。
在一种可选实施例中,若未接收到检测指令,则执行正式版本检测。
图2为本申请实施例提供的一种测试版本架构示意图,如图2所示,所述测试版本的检测项目包括硬件(cpu/交换芯片/其它硬件)、底层软件(bios)、操作系统、软件开发工具包、测试模块和bmc。
图3为本申请实施例提供的一种正式版本架构示意图,如图3所示,所述正式版本的检测项目包括硬件(cpu/交换芯片/其它硬件)、底层软件(bios)、操作系统、软件开发工具包、网络操作系统和bmc。
在一种可选实施例中,所述测试版本包括快速检测和深度检测两种检测模式,所述执行测试版本检测包括:执行快速检测;若快速检测中检测到故障,则执行深度检测。
其中,所述快速检测包括下述步骤中的一种或其组合:
读取交换芯片配置空间值判断是否有错误,如有错误则记录并退出;
读取交换芯片通用寄存器判断是否有错误,如有错误则记录;
读取交换芯片内部表项值判断是否有错误,如有错误则记录;
读取交换芯片外部表项判断是否有错误,如有错误则记录;
测试交换芯片外部报文缓存判断是否有错误,如有错误则记录;
依次内部环回测试交换芯片端口,如有错误则记录。
所述深度检测包括下述步骤中的一种或其组合:
对芯片内部所有表项可自由操作写内容写入0x55值;
读取芯片内部所有表项并判断是否是写入值,如果不是则记录错误;
对芯片内部所有表项可自由操作写内容写入0xaa值;
读取芯片内部所有表项并判断是否是写入值,如果不是则记录错误;
对芯片所有外部表项可自由操作写内容写入0x55值;
读取芯片所有外部表项并判断是否是写入值,如果不是则记录错误;
对芯片所有外部表项可自由操作写内容写入0xaa值;
读取芯片所有外部表项并判断是否是写入值,如果不是则记录错误;
通过配置内部环回和vlan使交换芯片端口两两成环;
通过控制cpu往成环端口发送广播报文在端口成环对上制造广播风暴;
读取端口统计寄存器判断是否有硬件引起的报文丢弃错误,如有则记录错误。
采用本申请实施例所提供的方法,在现场即可区分和定位白盒交换机故障,不需要把交换机返厂定位,从而节省故障定位时间,减少设备返厂检测成本。
与上述方法实施例相对应,本申请还提供了一种白盒交换机故障诊断装置,包括:
指令接收模块,用于在白盒交换机启动时,接收检测指令;
执行模块,用于若接收到测试版本检测指令,则执行测试版本检测,所述测试版本的检测项目包括硬件、底层软件、操作系统、软件开发工具包以及测试模块;
若接收到正式版本检测指令,则执行正式版本检测,所述正式版本的检测姓名包括硬件、底层软件、操作系统、软件开发工具包以及网络操作系统。
在一种可选实施例中,所述执行模块还用于:
若未接收到检测指令,则执行正式版本检测。
在一种可选实施例中,所述执行测试版本检测包括:
执行快速检测;
若快速检测中检测到故障,则执行深度检测。
在一种可选实施例中,所述快速检测包括下述步骤中的一种或其组合:
读取交换芯片配置空间值判断是否有错误,如有错误则记录并退出;
读取交换芯片通用寄存器判断是否有错误,如有错误则记录;
读取交换芯片内部表项值判断是否有错误,如有错误则记录;
读取交换芯片外部表项判断是否有错误,如有错误则记录;
测试交换芯片外部报文缓存判断是否有错误,如有错误则记录;
依次内部环回测试交换芯片端口,如有错误则记录。
在一种可选实施例中,所述深度检测包括下述步骤中的一种或其组合:
对芯片内部所有表项可自由操作写内容写入0x55值;
读取芯片内部所有表项并判断是否是写入值,如果不是则记录错误;
对芯片内部所有表项可自由操作写内容写入0xaa值;
读取芯片内部所有表项并判断是否是写入值,如果不是则记录错误;
对芯片所有外部表项可自由操作写内容写入0x55值;
读取芯片所有外部表项并判断是否是写入值,如果不是则记录错误;
对芯片所有外部表项可自由操作写内容写入0xaa值;
读取芯片所有外部表项并判断是否是写入值,如果不是则记录错误;
通过配置内部环回和vlan使交换芯片端口两两成环;
通过控制cpu往成环端口发送广播报文在端口成环对上制造广播风暴;
读取端口统计寄存器判断是否有硬件引起的报文丢弃错误,如有则记录错误。
在本申请的又一种具体实施方式中,本申请实施例提供一种计算机可读存储器,所述计算机存储器上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法实施例中的步骤。
在本申请的一种具体实施方式中,本申请实施例提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述方法实施例中的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用设备,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种服务器上电状态监测系统及方法、计算机存储器及设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。