监控机群中的交换机的方法

文档序号:7591266阅读:262来源:国知局
专利名称:监控机群中的交换机的方法
技术领域
本发明涉及一种监控计算机机群中的交换机的方法,具体涉及一种能够对计算机机群中的不同型号的交换机进行监控的方法。

背景技术
机群服务器系统是相互连接的多个独立计算机(结点)的集合,每个结点都是单独的计算机,可以是个人计算机(PC)也可以是服务器(server),每个结点都有自己的处理器、存储系统、I/O设备和操作系统。操作系统可以是Linux操作系统也可以是Windows操作系统。这些结点通过高速网络连接起来,应用中间件将各个结点形成一个单一映像的超级服务器。机群可以广泛应用于商务和大型科学计算之中。机群的易用性对用户越来越重要,对机群的有效管理离不开机群的监控系统,机群监控系统可以将整个机群进行有效方便的管理,因此提高机群的易用性是机群技术的一项重要内容。
在机群中,不但要监控计算机的健康信息和运行信息,还要监控用于连接各个结点的高速交换机,网络中最主要的设备就是交换机。机群可以通过4个网络互相连接起来监控网通过串口线将各个结点机与控制台连接起来,将各个结点机上的硬件健康信息传输到控制台;管理网通过千兆或百兆以太网将各个结点机和控制台连接起来,在结点机和控制台之间传输管理信息;计算网(或系统网)通过高速的网络(如QSNET)将所有结点机连接成一个整体,在整个机群像一台并行计算机;存储域网通过高速光纤将存储结点和存储盘阵连接起来。
对于交换机的监控,一般是采用厂家提供的配套的带有图形化界面的监控系统,如果在机群中有多个厂家生产的交换机,那么就会有多个不同的交换机监控系统,需要多个控制台进行监控,并且无法与机群监控系统的其他模块集成在一个系统中,这样对用户来说非常不方便。因此,在监控系统中集成对机群中所有交换机的监控模块不仅能大大的方便用户,还能提高监控系统的集成度和可维护性。


发明内容
本发明的目的是为了解决机群中不同型号的交换机的监控的问题。
根据本发明的一个方面,提供了一种监控机群中的交换机的方法,包括步骤a)根据机群中的多个交换机对向它们发送的简单网络管理协议数据包的响应,把所述多个交换机分成支持简单网络管理协议的交换机和不支持简单网络管理协议的交换机;b)利用简单网络管理协议从支持简单网络管理协议的交换机获取监控系统所需的第一类监控信息;c)通过与不支持简单网络管理协议的交换机建立传输控制协议连接来获取包括模组信息和面板信息的第二类监控信息;d)根据所述第一类监控信息和所述第二类监控信息对所述多个交换机进行监控。
在根据本发明的监控机群中的交换机的方法中,所述利用简单网络管理协议从简单网络管理协议的交换机获取监控系统所需的第一类监控信息的步骤包括b1)创建一个简单网络管理协议数据单元;b2)把值为空的对象标识符添加到所述简单网络管理协议数据单元中;b3)把添加了对象标识符的所述简单网络管理协议数据单元发送给所述支持简单网络管理协议的交换机;b4)从所述支持简单网络管理协议的交换机的回应数据包中获取所述第一类监控信息。
在根据本发明的监控机群中的交换机的方法中,所述通过与不支持简单网络管理协议的交换机建立传输控制协议连接来获得第二类监控信息的步骤包括c1)建立与不支持简单网络管理协议的交换机的传输控制协议端口之间的传输控制协议连接;c2)利用所述传输控制协议连接向不支持简单网络管理协议的交换机发送模组信息请求;c3)从来自不支持简单网络管理协议的交换机的、响应模组信息请求的回应数据包获取模组信息,并将其存储到数据库中;c4)向不支持简单网络管理协议的交换机发送面板信息请求;c5)从来自不支持简单网络管理协议的交换机的、响应面板信息请求的回应数据包获取面板信息。
利用上述的方法,本发明能够自动完成对交换机类型的判断、分别对支持SNMP协议的交换机和不支持SNMP协议的交换机进行监控,从而实现对不同类型交换机监控的集成,提高了机群系统的易用性。



图1是本发明的方法所应用的机群系统的示意图; 图2是根据本发明的方法中对支持SNMP协议的交换机的监控过程; 图3是根据本发明的方法中对不支持SNMP协议的交换机的监控过程。

具体实施例方式 下面参考附图对本发明的实施例进行详细说明。
图1示出了本发明的方法所应用的机群系统的示意图,其中出于清楚说明的目的仅仅示出了本发明的方法所涉及的部分。在图1中,主控制部分1与管理网交换机连接,用于对机群系统实施监控。附图标记2表示用于管理网的支持SNMP协议的交换机1-1,附图标记3和4表示不支持SNMP协议的交换机2-1和2-2,附图标记5表示未用于管理网但支持SNMP协议的交换机1-2。数据库6用于存储采集到的各个交换机的监控信息和机群配置信息。图1中的支持SNMP协议的交换机1-1例如是Passport 8610交换机,其用于管理网,不支持SNMP协议的交换机2-1和2-2例如是Quadrics型交换机,支持SNMP协议的交换机1-2例如是Brocade型交换机。虽然在下面的说明中将以具体的交换机类型进行说明,但是这并不是对本发明的限制,而是出于清楚说明的目的。此外,同样出于清楚说明的目的,把用于监控支持SNMP协议的交换机的监控信息称为第一类监控信息,而把用于监控不支持SNMP协议的交换机的监控信息称为第二类监控信息。
对交换机的判断
对机群中每一台交换机实施监控的前提是必须知道该交换机所属类型。主控制部分1首先向机群中发送SNMP数据包,如果交换机响应该数据包就可以判定该交换机支持SNMP协议,否则可以判定该交换机不支持SNMP协议。
对不响应SNMP数据包的交换机,主控制部分1向它发送建立某种交换机专用(如Quadrics)TCP连接的请求,如果TCP连接建立成功,则该交换机的类型可以确定,如果建立TCP连接不成功就继续尝试建立适合其他类型交换机的TCP连接,直到找出该交换机的类型。
对支持SNMP协议的交换机的监控
对于支持SNMP协议的交换机,可以利用SNMP协议获取相应的信息。在本发明中,根据标准管理信息库(MIB)的对象标识符(ObjectIdentifier-OID)获取第一类监控信息,如交换机名(sysName)、交换机端口数(1.3.6.1.4.1.1588.2.1.1.1.6.1),也可以经过简单计算得到更多的监控信息,例如对于某一端口,其输入流量等于两次采集得来的输入字节数之差除以采集时间间隔。这类交换机的监控相对比较简单。采集信息的数据结构和函数接口可以是统一定义的数据结构和函数接口。
下面以Passport8610交换机为例参照图2说明在本发明的方法中对支持SNMP协议的交换机的监控过程。Passport 8610交换机属于支持SNMP协议并且具有标准MIB库结构的交换机。对Passport8610交换机的监控能通过SNMP协议获取到相应的信息。
表1示出了支持SNMP协议的交换机的整体信息及与SNMP的OID的对应关系,其中Passport交换机具有MIB库结构,而Brocade交换机有专用的MIB库结构。
参数名说明Passport相对应的OIDBrocade相对应的 OID Name交换机名sysName SysName Desc交换机设备描述sysDescr SysDescr Uptime交换机运行时间sysUpTime SysUpTime Port_num交换机端口数ifNumber 1.3.6.1.4.1.1588.2.1.1 .1.6.1 Ip交换机IP地址ipAdEntAddr IpAdEntAddr Mask子网掩码ipAdEntNetMask IpAdEntNetMask Broadcast广播地址ipAdEntBcastAddr IpAdEntBcastAddr 表1 表2示出了支持SNMP协议的交换机各个端口的信息与SNMP的OID的对应关系 参数名说明Passport相对应的OID/来源Brocade相对应的OID/来源 Id端口编号IfIndexenterprises.1588.2.1.1.1.6.2.1.1 Name端口名IfName1.3.6.1.4.1.1588.2.1.1.1.7.2.1.5 Mac端口mac地址IfPhysAddress1.3.6.1.2.1.75.1.1.5.1.2 status端口状态IfOperStatus1.3.6.1.2.1.75.1.2.2.1.2 in_byte端口的输入字节数IfInOctets1.3.6.1.4.1.1588.2.1.1.1.6.2.1.12 in_packet s端口的输入包数IfInUcastPkts+ifInNUcastPkts1.3.6.1.4.1.1588.2.1.1.1.6.2.1.14*4 in_discar d端口的输入丢弃包数IfInDiscards+ifInErrors+ifInUnknownProtos1.3.6.1.4.1.1588.2.1.1.1.6.2.1.21 in_flow_端口的输(current.in_byte-(current.in_byte- byte入流量last.in_byte)/(current.uptime-last.uptime)last.in_byte)/(current.uptime-last.uptime) in_discar d_rate端口的输入丢包率(current.in_discard-last.in_discard)/(current.in_packets-last.in_packets)(current.in_discard-last.in_discard)/(current.in_packets-last.in_packets) out_byte端口的输出字节数IfOutOctets1.3.6.1.4.1.1588.2.1.1.1.6.2.1.11*4 out_pack ets端口的输出包数IfOutUcastPkts+ifOutNUcastPkts1.3.6.1.4.1.1588.2.1.1.1.6.2.1.13 out_error端口的输出出错包数IfOutDiscards+ifOutErrors1.3.6.1.4.1.1588.2.1.1.1.6.2.1.26 out_flow _byte端口的输出流量(current.out_byte-last.out_bye)/(current.uptime-last.uptime)(current.out_byte-last.out_byte)/(current.uptime-last.uptime) out_error rate端口的输出出错率(current.out_discard-last.out_discard)/(current.out_packets-last.out_packets)(current.out_discard-last.out_discard)/(current.out_packets-last.out_packets)表2 如图2所示,在对支持SNMP协议的交换机的监控过程中,在步骤S11,创建一个SNMP协议数据单元(PDU);然后在步骤S12把值为空(NULL)的OID添加到该PDU中;在步骤S13,发送该PDU并且等待响应;在步骤S14从回应的数据包中获取监控信息,这里的监控信息包括交换机信息和端口信息,并且在表1和2中给出了一些监控信息的计算公式,例如端口的输入流量、端口的输入丢包率、端口的输出流量和端口的输出出错率等。然后过程结束。
如表1和2所示,交换机信息包括交换机名、交换机设备描述、交换机运行时间、交换机端口数、交换机因特网协议地址、子网掩码和广播地址;端口信息包括端口编号、端口名、端口媒介访问控制地址、端口状态、端口输入字节数、端口的输入包数、端口的输入丢弃包数、端口的输入流量、端口的输入丢包率、端口的输出字节数、端口的输出包数、端口的输出出错包数、端口的输出流量、端口的输出出错率。
在实际的实施过程中,主控制部分从数据库里得到交换机的配置基本信息,然后对每一个交换机用一个单独线程来监控,每一个交换机监控线程按照采样周期例如每1隔分钟采集交换机信息,并将采集到的信息存储到数据库中。对不支持SNMP协议的交换机的监控
这类交换机的监控比较困难,因为这类交换机不支持SNMP协议。不管机群内用于计算网还是存储网的交换机都有一个管理网口通过以太网连接到管理网交换机上,如图1所示,机群中所有的设备都连接到用于管理网的交换机(Passport8610)2的一个端口上,所以可以在管理网内截取不支持SNMP协议的交换机互相发送的数据包,例如在Passport8610交换机上截取两个或多个Quadrics交换机之间发送的数据包,并分析其数据包结构以得到符合该类交换机之间通信协议的数据包结构。有了符合该类交换机之间通信协议数据包结构,就可以通过发送符合该包结构的请求信息给该类不支持SNMP协议的交换机,这样从该类交换机返回的信息中就可以得到所需的第二类监控信息。
下面参考附图3以Quadrics交换机为例说明对不支持SNMP协议的交换机的监控过程。由于此类交换机的特殊性,其可监控的信息与其他类型交换机可监控信息量不完全一致,可用单独的数据结构和接口函数来实现监控。
首先,在步骤S21,主控制部分1建立一个与Quadrics交换机的TCP端口7200的TCP连接。在步骤S22,向Quadrics交换机发送模组信息的请求,请求的格式如下 typedef enum{SWM_STATUS,/*Poll module status*/SWM_MODULEINFO,/*Collect module info*/SWM_BOARDINFO,/*Collect module info*/SWM_I2CREADWRITE,/*Raw i2c read/write*/SWM_JTAGREADWRITE,/*Raw jtag read/write*/SWM_SERVERCONFIG,/*Configure server*/SWM_ACKNOWLEDGE,/*Acknowledge a monitor message*/SWM_CLEARERRORS,/*Clear link errors and counters*/SWM_SCANMODULE,/*Scan the contents of the module*/SWM_SHUTDOWN,/*Shutdown server-QNX reboot*/SWM_TOPSWITCH,/*Set top switch*/SWM_SCANPORTS,/*Scan the ports of a module*/SWM_SETCLKSRC,/*Set the clock source*/SWM_SETLINKSTATE,/*Fix state of one or more links*/SWM_SETCLKFREQ,/*Set the clock frequency*/SWM_SETPARAM,/*Set the value of a parameter*/SWM_GETPARAM,/*Get the value of a parameter*/}RequestType;#define SWM_VERSION 3struct request{char padding[8];/*8个字节的补充字符*/RequestType type;/*请求类型*/int version;/*版本.3*/int board;}; request结构中整数的字节序都是网络字节序。请求模组信息时type是SWM_MODULEINFO,board是无效的。发送请求如下 struct request req;req.padding
=0xfe;req.padding[1]=0xed;req.padding[2]=0xbe;req.padding[3]=0xef;req.padding[4]=0x00;req.padding[5]=0x00;req.padding[6]=0x00;req.padding[7]=0x08;write(s,&amp;req,sizeof req-sizeof(int)); 在步骤S23,交换机接收到请求后,会作出相应的回应,如果成功,获取回应数据包中包含的交换机的模组信息,并将其存储。其中,回应的数据结构是swmreply_t,模组信息的数据结构是_moduleinfo_t,如下 typedef struct_moduleinfo{int version;/*Monitor software version number*/int build;/*Monitor software build number*/Switch Module Type type;/*Moduletype*/int started;/*Last time monitor was started*/char ip[HOSTNAME_LEN];/*IP address(as text)*/char mac[HOSTNAME_LEN];/*Ethernet address(as text)*/int fanSensors;/*number of fan sensors*/int fanSpeeds[MAX_FANS];/*Fan speeds*/int psuSensors;/*Number of PSU sensors*/int psus;/*Power supply status mask*/int temp;/*Max temperature reading*/int clockSource;/*Clock source for module*/uint32_t boardMask;/*Mask of boards present*/int btemps[MAX_BOARDS];/*Board temperatures*/bool qnx;/*Module is running QNX*/<!-- SIPO <DP n="9"> --><dp n="d9"/>int topSwitch;/*Top switch*/double clockFreq;/*Elite Clock Frequency*/char gateway[HOSTNAME_LEN];/*Network gateway address(dotted quad)*/boot_protocol protocol;char upgradefile[HOSTNAME_LEN];char tftpserver[HOSTNAME_LEN];char hostname[HOSTNAME_LEN];/*Hostname of module*/}_moduleinfo_t;typedef struct{char padding[8];RequestType type;ReturnCode rc;union{_moduleinfo_t module;boardinfo_t board;}reply;}swmreply_t。
接下来在步骤S24判断模组信息中的类型字段是否与预定的字段(MODULE_QMS64U64D)匹配,如果不匹配(步骤S24否)则过程结束。
如果在步骤S24判断出二者匹配(步骤S24是),则在步骤S25向交换机发送面板信息请求,该面板信息请求中包含面板的序号,该序号必须小于32。此外,在面板信息请求的面板掩码(boardMask)中相应的位必须是1,表示该序号的board存在。发送请求如下 req.padding
=0xfe;req.padding[1]=0xed;req.padding[2]=0xbe;req.padding[3]=0xef;<!-- SIPO <DP n="10"> --><dp n="d10"/>req.padding[4]=0x00;req.padding[5]=0x00;req.padding[6]=0x00;req.padding[7]=0x0c;req.board=htonl(i);write(s,&amp;req,sizeof req)。
然后,在步骤S26接受包含了面板信息(boardinfo)的回应数据包。
typedef struct boardinfo{SwitchBoardType type;/*Board type*/int slot;/*Slot/ring number*/int tempSensors;/*Number of thermistors*/int temp;/*Current temperature*/int nElites;/*Number of Elites*/int chipmask;/* */eliteinfo_t elites[MAX_ELITES];/*Elite descriptions*/char PN[8];/*Part number*/char FN[8];/*FRU part number*/char EC[8];/*EC level*/char SN[8];/*Serial number*/char MN[8];/*Manufacturer ID*/}boardinfo_t。
在步骤S27,判断面板信息的类型字段是否与预定的字段(BOARD_QM401)匹配,如果二者匹配,则过程转到步骤S28,否则(步骤S27否),过程转到步骤S25。
如果在步骤S27判断出面板信息的类型字段与预定的字段匹配(步骤S27是),则在步骤S28存储面板信息中的前4个小面板(elite)、每个小面板的前4个链接或者端口的状态。然后过程结束。
在实际的监控过程中,主控制部分在初始化时从数据库中获得Quadrics交换机的配置信息。对每一个Quadrics交换机创建一个监控线程。监控线程每隔1分钟向Quadrics交换机采集一次数据。
虽然上面以具体的交换机为例来说明本发明的监控方法,但是本领域的技术人员应该认识到这仅仅是实施例,并且可以对本发明的方法进行修改,而不脱离所附的权利要求所限定的范围。
权利要求
1.一种监控机群中的交换机的方法,包括步骤
a)根据机群中的多个交换机对向它们发送的简单网络管理协议数据包的响应,把所述多个交换机分成支持简单网络管理协议的交换机和不支持简单网络管理协议的交换机;
b)利用简单网络管理协议从支持简单网络管理协议的交换机获取监控系统所需的第一类监控信息;
c)通过与不支持简单网络管理协议的交换机建立传输控制协议连接来获取包括模组信息和面板信息的第二类监控信息;
d)根据所述第一类监控信息和所述第二类监控信息对所述多个交换机进行监控。
2.根据权利要求1所述的方法,其特征在于,所述利用简单网络管理协议从简单网络管理协议的交换机获取监控系统所需的第一类监控信息的步骤包括
b1)创建一个简单网络管理协议数据单元;
b2)把值为空的对象标识符添加到所述简单网络管理协议数据单元中;
b3)把添加了对象标识符的所述简单网络管理协议数据单元发送给所述支持简单网络管理协议的交换机;
b4)从所述支持简单网络管理协议的交换机的回应数据包中获取所述第一类监控信息。
3.根据权利要求1所述的方法,其特征在于,所述通过与不支持简单网络管理协议的交换机建立传输控制协议连接来获得第二类监控信息的步骤包括
c1)建立与不支持简单网络管理协议的交换机的传输控制协议端口之间的传输控制协议连接;
c2)利用所述传输控制协议连接向不支持简单网络管理协议的交换机发送模组信息请求;
c3)从来自不支持简单网络管理协议的交换机的、响应模组信息请求的回应数据包获取模组信息,并将其存储到数据库中;
c4)向不支持简单网络管理协议的交换机发送面板信息请求;
c5)从来自不支持简单网络管理协议的交换机的、响应面板信息请求的回应数据包获取面板信息。
4.根据权利要求1所述的方法,其特征在于,每隔预定的时间间隔执行所述利用简单网络管理协议从支持简单网络管理协议的交换机获取监控系统所需的第一类监控信息的步骤,和所述通过与不支持简单网络管理协议的交换机建立传输控制协议连接来获取包括模组信息和面板信息的第二类监控信息的步骤。
5.根据权利要求2所述的方法,其特征在于,所述第一类监控信息包括交换机信息和端口信息。
6.根据权利要求5所述的方法,其特征在于,所述交换机信息至少包括下面之一
交换机名、交换机设备描述、交换机运行时间、交换机端口数、交换机因特网协议地址、子网掩码和广播地址。
7.根据权利要求5所述的方法,其特征在于,所述端口信息至少包括下面之一
端口编号、端口名、端口媒介访问控制地址、端口状态、端口输入字节数、端口的输入包数、端口的输入丢弃包数、端口的输入流量、端口的输入丢包率、端口的输出字节数、端口的输出包数、端口的输出出错包数、端口的输出流量和端口的输出出错率。
8.根据权利要求3所述的方法,其特征在于,所述模组信息请求和所述面板信息请求是通过在管理网内截取所述不支持简单网络管理协议的交换机之间发送的数据包并进行分析而生成的。
9.根据权利要求3所述的方法,其特征在于,当获取的所述模组信息的类型与预定的模组信息类型相匹配时,执行所述向不支持简单网络管理协议的交换机发送面板信息请求的步骤。
10.根据权利要求3所述的方法,其特征在于,还包括
c6)当获取的所述面板信息的类型与预定的面板信息类型匹配时,将所述面板信息中的部分小面板的状态和所述部分小面板的部分端口的状态存储到数据库中,否则执行所述向不支持简单网络管理协议的交换机发送面板信息请求的步骤。
11.根据权利要求3所述的方法,其特征在于,所述面板信息请求中包括面板的序号,并且所述序号小于32。
12.根据权利要求8所述的方法,其特征在于,至少一个所述支持简单网络管理协议的交换机用于所述管理网。
全文摘要
一种监控机群中的交换机的方法,包括根据机群中的多个交换机对向它们发送的SNMP数据包的响应,把所述多个交换机分成支持SNMP的交换机和不支持SNMP的交换机;利用SNMP从支持SNMP的交换机获取监控系统所需的第一类监控信息;通过与不支持SNMP的交换机建立传输控制协议连接来获取包括模组信息和面板信息的第二类监控信息;根据所述第一类监控信息和所述第二类监控信息对所述多个交换机进行监控。利用上述方法,不仅能大大的方便用户,还能提高监控系统的集成度和可维护性。
文档编号H04L12/26GK1674535SQ20041003320
公开日2005年9月28日 申请日期2004年3月26日 优先权日2004年3月26日
发明者陈然, 陈又新, 蒋晓华, 崔吉顺, 易昭华, 金正操, 饶弋宁, 张羽飞, 李金丽, 程菊生 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1