一种基于SNMP和IPMI协议的服务器管理系统及方法
技术领域
本发明涉及一种服务器管理技术领域,具体地说是一种基于SNMP和IPMI协议的服务器管理系统及方法。
背景技术
SNMP(Simple Network Management Protocol,简单网络管理协议)是专门设计用于管理网络节点的一种标准协议,它是一种基于IP的应用层协议。SNMP提供GET、SET、Trap和Inform四类实用的操作,具有简单高效的特点,被广泛地应用于网络管理上,几乎各种网络设备上都可以看到默认启用的SNMP服务。
然而在使用SNMP简化服务器管理的同时,势必会带来一些问题:
(1)SNMP是基于IP的,如果一个服务器机柜中存在多个被管理对象,需要占用多个管理IP,如果配置公网IP,会造成IP资源的浪费;如果配置私网IP,又无法进行远程集中管理。
(2)服务器上存在各种非基于IP的传感器,无法直接采用SNMP进行管理,需要设备厂商提供专门的函数访问接口对SNMP Agent进行扩展,往往一种传感器就需要创建一个访问接口,对于很多访问方式相似的传感器需要进行重复创建工作。
(3)很多SNMP的实现采用了管理IP与业务IP重叠的方式,网络发生故障时,无法进行网络管理。
(4)SNMP提供了基于MIB生成的实现网络管理的框架,虽然实现简单但功能有限,例如SNMP采集到的信息相对简单,不能满足诸如获取系统日志信息等应用系统性能监控的需求。
(5)很多SNMP的实现在系统宕机等严重故障发生时,无法正常使用。
IPMI(Intelligent Platform Management Interface,智能平台管理接口)是由Intel、HP、NEC、Dell和SuperMicro等公司共同制定的一种开放标准的硬件管理接口规范。用户可以利用IPMI监视服务器的物理特征,如温度、电压、风扇工作状态、电源供应以及机箱入侵等。IPMI最大的优势在于它是独立于CPU、BIOS和OS的,所以用户无论在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。IPMI提供了丰富的接口,适用于基于IP和非基于IP的各种应用场景,有效地克服了SNMP的一些缺陷。但是,服务器管理中单独使用IPMI服务,单独构建管理网络会增加一些成本。
发明内容
本发明的技术任务是提供一种将SNMP使用的普遍性和简单性与IPMI提供的常用函数访问接口和独立性结合起来,解决了单独使用其中任何一种协议的缺点,将二者的优势统一起来应用于服务器管理的一种基于SNMP和IPMI协议的服务器管理系统及方法。
本发明的技术任务是按以下方式实现的:
一种基于SNMP和IPMI协议的服务器管理系统,其特征在于包括服务器管理单元和网络管理站;被管理服务器为服务器机柜的多个刀片或者多个服务器;服务器管理单元包括多个BMC和一个中央BMC及其挂接的传感器,被管理服务器上都安设有一个BMC,多个BMC均通过LAN或者IPMB与中央BMC通信,多个BMC均通过IPMB与传感器连接;中央BMC包括:IPMI引擎、SNMP Trap转发模块、SNMP代理、SNMP代理扩展模块、IPMI-SNMP消息池,多个BMC均通过LAN或者IPMB连接到IPMI引擎,多个BMC均连接SNMP Trap转发模块,IPMI引擎与SNMPTrap转发模块互连,IPMI引擎与IPMI-SNMP消息池互连,IPMI-SNMP消息池与SNMP代理扩展模块互连,SNMP代理与SNMP代理扩展模块互连,SNMP Trap转发模块及SNMP代理均通过网络连接网络管理站。
IPMI引擎,用于发送网络管理站的IPMI请求和接收各个BMC的IPMI响应;SNMPTrap转发模块,用于使用IPMI命令从IPMI引擎获取网络管理站的IP,对各个BMC发送的SNMPTrap进行转发至网络管理站;SNMP代理,用于向网络管理站请求信息和动作,通过SNMP协议对被管理服务器进行管理;SNMP代理扩展模块,在由自定义MIB文件生成的代理扩展框架的基础上修改而来,以SNMP子代理或者SNMP代理扩展动态链接库的形式挂接在SNMP代理上,提供给SNMP代理获取IPMI-SNMP消息池中的信息;IPMI-SNMP消息池,提供IPMI消息与SNMP消息的映射表,由IPMI引擎将获取的各个BMC以及传感器的IPMI消息被写入IPMI-SNMP消息池。
网络管理站采用HP OpenView软件架构或者是采用Net-SNMP开源项目定制的管理软件架构。
SNMP代理为开源的Net-SNMP提供的代理程序架构。
传感器为非智能的I2C传感器。
一种基于SNMP和IPMI协议的服务器管理方法,使用服务器管理系统对被管理服务器进行查询管理操作,将各个BMC分别用OID标识,包括步骤如下:
①、IPMI引擎将各个BMC及传感器的IPMI消息写入IPMI-SNMP消息池;
②、IPMI-SNMP消息池,提供IPMI消息与SNMP消息的映射表;
③、网络管理站向中央BMC上的SNMP代理发送SNMP查询请求;
④、SNMP代理根据SNMP查询请求内的OID判断对应的BMC所在的被管理服务器;
⑤、将此SNMP查询请求转发到SNMP代理扩展模块;
⑥、SNMP代理扩展模块通过IPMI-SNMP消息池获取相应的被管理服务器的IPMI消息,并根据IPMI-SNMP消息池中的映射表将IPMI消息转换成SNMP消息返回给SNMP代理;
⑦、SNMP代理以SNMP PDU的形式将此SNMP消息发送给网络管理站。
一种基于SNMP和IPMI协议的服务器管理方法,使用服务器管理系统对被管理服务器进行设置管理操作,将各个BMC分别用OID标识,包括步骤如下:
①、IPMI引擎将各个BMC及传感器的IPMI消息写入IPMI-SNMP消息池;
②、IPMI-SNMP消息池,提供IPMI消息与SNMP消息的映射表;
③、网络管理站向中央BMC上的SNMP代理发送设置请求;
④、SNMP代理根据设置请求内的OID判断对应BMC所在的被管理服务器;
⑤、SNM代理将此设置请求转发到SNMP代理扩展模块;
⑥、SNMP代理扩展模块设置IPMI-SNMP消息池中的IPMI消息字段;
⑦、触发IPMI引擎将打包了此设置信息的IPMI命令发送至相应的被管理服务器的BMC,由BMC执行最终的设置管理操作。
一种基于SNMP和IPMI协议的服务器管理方法,使用服务器管理系统对被管理服务器进行SNMP Trap转发管理操作,包括步骤如下:
①、各个BMC产生的SNMP Trap通过LAN发送到SNMP Trap转发模块;
②、SNMP Trap转发模块对接收到的SNMP Trap不做任何解析处理直接转发到网络管理站。
本发明的一种基于SNMP和IPMI协议的服务器管理系统及方法具有以下优点:
1、被管理服务器为服务器机柜的多个刀片或者多个服务器;若为服务器机柜的多个刀片,则各个刀片上均设置有一个BMC;若为多个服务器,则各个服务器上均设置有一个BMC,通过服务器管理的系统,将SNMP和IPMI协议的优势统一起来应用于服务器管理;
2、利用IPMI现有的成熟的函数访问接口查询被管理服务器的各种健康信息,并根据IPMI-SNMP消息池中的映射表转换成SNMP消息发送到网络管理站;
3、SNMP消息修改IPMI-SNMP消息池中的数据,触发IPMI引擎发送IPMI命令对各个BMC管理的参数进行设置;
4、整个服务器管理单元对外显示的IP就是中央BMC的IP,使整个服务器管理单元对外呈现一个统一的整体;
5、利用IPMI命令获取网络管理站的IP,对各个BMC发送的SNMP Trap不做解析处理直接转发,简化了处理流程。
附图说明
下面结合附图对本发明进一步说明。
附图1为一种基于SNMP和IPMI协议的服务器管理系统的结构框图。
具体实施方式
参照说明书附图和具体实施例对本发明的一种基于SNMP和IPMI协议的服务器管理系统及方法作以下详细地说明。
实施例1:
本发明的一种基于SNMP和IPMI协议的服务器管理系统,其特征在于包括服务器管理单元和网络管理站;被管理服务器为服务器机柜的多个刀片或者多个服务器;
服务器管理单元包括多个BMC和一个中央BMC及其挂接的传感器,被管理服务器上都安设有一个BMC,多个BMC均通过LAN或者IPMB与中央BMC通信,多个BMC均通过IPMB与传感器连接;
中央BMC包括:IPMI引擎、SNMP Trap转发模块、SNMP代理、SNMP代理扩展模块、IPMI-SNMP消息池,多个BMC均通过LAN或者IPMB连接到IPMI引擎,多个BMC均连接SNMP Trap转发模块,IPMI引擎与SNMP Trap转发模块互连,IPMI引擎与IPMI-SNMP消息池互连,IPMI-SNMP消息池与SNMP代理扩展模块互连,SNMP代理与SNMP代理扩展模块互连,SNMP Trap转发模块及SNMP代理均通过网络连接网络管理站。
IPMI引擎,用于发送网络管理站的IPMI请求和接收各个BMC的IPMI响应;SNMPTrap转发模块,用于使用IPMI命令从IPMI引擎获取网络管理站的IP,对各个BMC发送的SNMPTrap进行转发至网络管理站;SNMP代理,用于向网络管理站请求信息和动作,通过SNMP协议对被管理服务器进行管理;SNMP代理扩展模块,在由自定义MIB文件生成的代理扩展框架的基础上修改而来,以SNMP子代理或者SNMP代理扩展动态链接库的形式挂接在SNMP代理上,提供给SNMP代理获取IPMI-SNMP消息池中的信息;IPMI-SNMP消息池,提供IPMI消息与SNMP消息的映射表,由IPMI引擎将获取的各个BMC以及传感器的IPMI消息被写入IPMI-SNMP消息池。
BMC可以位于服务器机柜的各个刀片上,也可以位于不同的服务器上,BMC能够支持完整的IPMI协议,通过LAN或者IPMB与中央BMC通信,BMC的IP在服务器管理单元内是唯一的;中央BMC是服务器管理单元的核心,需要支持完整的IPMI协议,整个服务器管理单元对外显示的IP就是中央BMC的IP。
网络管理站(英文全称为Network Management Station),也称为网络管理终端或网络管理测量点。
BMC,英文全称为Baseboard Management Controller,翻译为基板管理控制器。提供下列功能:与IPMI协议的兼容性、用于风扇转速监视的转速计输入、用于风扇转速控制的脉冲宽度调节器输出、用于前面板按钮和开关的按钮输入、与服务器控制台端口进行多路传输的一个串行端口、远程访问和 ICMB(Intelligent Chassis Management Bus,智能机箱管理总线)支持、三I2C主端口和备用端口(其中一个端口用于智能机箱管理总线)。
LAN,英文全称Local Area Network,翻译为局域网,是在一个局部的地理范围内(如一个学校、工厂和机关内),一般是方圆几千米以内,将各种计算机,外部设备和数据库等互相联接起来组成的计算机通信网。
IPMB,英文全称Intelligent Platform Management BUS,翻译为智能平台管理总线。
SNMP trap,即SNMP 陷阱(或者SNMP异常),为被管理服务器的错误情况或异常情况。
实施例2:
本发明的一种基于SNMP和IPMI协议的服务器管理系统,其特征在于包括服务器管理单元和网络管理站;被管理服务器为服务器机柜的多个刀片或者多个服务器;
服务器管理单元包括多个BMC和一个中央BMC及其挂接的传感器,被管理服务器上都安设有一个BMC,多个BMC均通过LAN或者IPMB与中央BMC通信,多个BMC均通过IPMB与传感器连接;
中央BMC包括:IPMI引擎、SNMP Trap转发模块、SNMP代理、SNMP代理扩展模块、IPMI-SNMP消息池,多个BMC均通过LAN或者IPMB连接到IPMI引擎,多个BMC均连接SNMP Trap转发模块,IPMI引擎与SNMP Trap转发模块互连,IPMI引擎与IPMI-SNMP消息池互连,IPMI-SNMP消息池与SNMP代理扩展模块互连,SNMP代理与SNMP代理扩展模块互连,SNMP Trap转发模块及SNMP代理均通过网络连接网络管理站。
IPMI引擎,用于发送网络管理站的IPMI请求和接收各个BMC的IPMI响应;SNMPTrap转发模块,用于使用IPMI命令从IPMI引擎获取网络管理站的IP,对各个BMC发送的SNMPTrap进行转发至网络管理站;SNMP代理,用于向网络管理站请求信息和动作,通过SNMP协议对被管理服务器进行管理;SNMP代理扩展模块,在由自定义MIB文件生成的代理扩展框架的基础上修改而来,以SNMP子代理或者SNMP代理扩展动态链接库的形式挂接在SNMP代理上,提供给SNMP代理获取IPMI-SNMP消息池中的信息;IPMI-SNMP消息池,提供IPMI消息与SNMP消息的映射表,由IPMI引擎将获取的各个BMC以及传感器的IPMI消息被写入IPMI-SNMP消息池。
网络管理站采用HP OpenView软件架构或者是采用Net-SNMP开源项目定制的管理软件架构。
SNMP代理为开源的Net-SNMP提供的代理程序架构。
传感器为非智能的I2C传感器。
HP OpenView产品是惠普公司出品的电子业务管理工具程序。客户可以利用OpenView来管理服务器的应用程序、硬件设备、网络配置和状态,系统性能、业务以及程序维护,还能进行存储管理。
Net-SNMP是一个免费的、开放源码的SNMP实现。它包括agent和多个管理工具的源代码,支持多种扩展方式。不仅扩展了获取方式,而且对于数据类型也有一定的扩展。
本发明并不局限于本实施例提到的这种网络管理站或SNMP代理,任何能实现本发明权利要求的功能的网络管理站或SNMP代理均可使用。
实施例3:
本发明的一种基于SNMP和IPMI协议的服务器管理方法,使用服务器管理系统对被管理服务器进行查询管理操作,将各个BMC分别用OID标识,包括步骤如下:
①、IPMI引擎将各个BMC及传感器的IPMI消息写入IPMI-SNMP消息池;
②、IPMI-SNMP消息池,提供IPMI消息与SNMP消息的映射表;
③、网络管理站向中央BMC上的SNMP代理发送SNMP查询请求;
④、SNMP代理根据SNMP查询请求内的OID判断对应的BMC所在的被管理服务器;
⑤、将此SNMP查询请求转发到SNMP代理扩展模块;
⑥、SNMP代理扩展模块通过IPMI-SNMP消息池获取相应的被管理服务器的IPMI消息,并根据IPMI-SNMP消息池中的映射表将IPMI消息转换成SNMP消息返回给SNMP代理;
⑦、SNMP代理以SNMP PDU的形式将此SNMP消息发送给网络管理站。
OID即对象标识符,是为找到区分整体中的对象而添加的标记。
实施例4:
本发明的一种基于SNMP和IPMI协议的服务器管理方法,使用服务器管理系统对被管理服务器进行设置管理操作,将各个BMC分别用OID标识,包括步骤如下:
①、IPMI引擎将各个BMC及传感器的IPMI消息写入IPMI-SNMP消息池;
②、IPMI-SNMP消息池,提供IPMI消息与SNMP消息的映射表;
③、网络管理站向中央BMC上的SNMP代理发送设置请求;
④、SNMP代理根据设置请求内的OID判断对应BMC所在的被管理服务器;
⑤、SNM代理将此设置请求转发到SNMP代理扩展模块;
⑥、SNMP代理扩展模块设置IPMI-SNMP消息池中的IPMI消息字段;
⑦、触发IPMI引擎将打包了此设置信息的IPMI命令发送至相应的被管理服务器的BMC,由BMC执行最终的设置管理操作。
实施例5:
本发明的一种基于SNMP和IPMI协议的服务器管理方法,使用服务器管理系统对被管理服务器进行SNMP Trap转发管理操作,包括步骤如下:
①、各个BMC产生的SNMP Trap通过LAN发送到SNMP Trap转发模块;
②、SNMP Trap转发模块对接收到的SNMP Trap不做任何解析处理直接转发到网络管理站。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种基于SNMP和IPMI协议的服务器管理系统及方法的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。