一种基于snmp进行服务器风扇控制的方法

xiaoxiao2020-10-23  39

一种基于snmp进行服务器风扇控制的方法
【技术领域】
[0001] 本发明涉及服务器管理技术领域,具体地说是一种实用性强、基于SNMP进行服务 器风扇控制的方法。
【背景技术】
[0002] SNMP (Simple Network Management Protocol,简单网络管理协议)是一种管理 网络节点(如服务器、工作站、路由器、交换机等)的标准协议,它提供了 GET、SET、TRAP和 INFORM四类实用的操作。通常,SNMP代理以变量的形式呈现被管理对象的信息,每个对象 基本上是一个数据变量,管理信息库MIB是对象的集合,它代表网络中可以管理的资源和 设备,这些变量以层次化的方式组织起来,构成了 MIB树。
[0003] SNMP通过GET类指令获取信息,使用TRAP或者INR0RM主动发送告警指示,通过 SET指令更新配置和进行控制。由于SNMP的管理对象主要是各种网络节点,因此SNMP的 GET、TRAP和INFORM监视指令通常是常态性的,而SET配置和控制指令只有当网络基本结 构需要改变的时候使用,即SET的设计初衷并不针对控制服务器风扇这种非网络节点的情 形,这体现在以下两个方面: (1 )SNMP采用基于变量进行管理的方式,实现简单,但描述性不强,控制功能有限,无法 对风扇进行有效地控制操作; (2)SNMP是基于IP的,但服务器风扇是非IP访问的,无法直接采用SNMP进行管理,需 要提供针对风扇控制的函数接口。
[0004] SNMP已经被广泛地应用于网络管理上,几乎各种网络设备上都可以看到默认启用 的SNMP服务,在服务器管理的实际应用中存在着使用SNMP进行服务器风扇控制的需求,如 果通过扩展SNMP的功能实现基于SNMP的服务器风扇控制,可以有效地简化和统一服务器 的管理方案。

【发明内容】

[0005] 本发明的技术任务是针对以上不足之处,提供一种实用性强、基于SNMP进行服务 器风扇控制的方法。
[0006] 一种基于SNMP进行服务器风扇控制的方法,其具体实现过程为: 一、 检测风扇运行参数更新标识,查看该运行参数是否更新:当出现更新时,将该风扇 运行参数进行重新设置; 二、读取并解析风扇运行模式,更新PWM控制信号; 三、 循环遍历其余风扇进行同样操作后,完成对服务器所有风扇的控制。
[0007] 所述方法的实施,是基于服务器的BMC芯片中增加SNMP代理扩展模块和set命令 参数解析和动作模块完成的,其中set命令参数解析和动作模块对自定义结构化字符串进 行解析并根据预定义的语义执行扩展操作,增强使用SNMP进行服务器管理时SNMP描述被 管理对象行为的能力,实现SNMP进行服务器风扇控制。
[0008] 所述风扇运行参数包括两种:一是在自动控制模式下根据传感器采集的温度获取 此时风扇所应采用占空比的温度-占空比映射表;二是在手动控制模式下各个风扇转速档 位及其所对应的占空比。
[0009] 所述风扇运行参数作为SNMP set命令的参数被SNMP代理扩展模块获取,决定更 新哪个风扇的运行参数,并写入到以要调整运行参数的风扇号命名的相应的存储区域中。
[0010] 所述风扇运行参数更新设置过程为: 检测全局变量运行参数更新标识位是否置位,只更新置位的标识所对应的风扇运行参 数,当置位时,进入下一步骤; 释放相应的存储温度-占空比映射表或者风扇转速档位的存储空间; 对置位的全局变量运行参数,根据要调整运行参数的风扇号选取以其风扇号命名的存 放着风扇运行参数的存储空间; 读取更新的风扇运行参数,开辟临时存储空间; 解析并存储风扇运行参数; 复位风扇运行参数更新标识。
[0011] 所述运行模式包括手动控制模式和自动控制模式。
[0012] 所述风扇运行模式作为SNMP set命令的参数被SNMP代理扩展模块获取,决定更 新哪个风扇的运行模式,并写入到相应的存储区域中。
[0013] 所述步骤二的详细过程为:读取以要调整运行参数的风扇号命 名的风扇运行模式存储空间中的信息,解析风扇运行模式,使用更新后的 信号控制风扇号为要调整运行参数的风扇号的风扇的转速。
[0014] 本发明的一种基于SNMP进行服务器风扇控制的方法,具有以下优点: 本发明提出的一种基于SNMP进行服务器风扇控制的方法,增强了使用SNMP进行服务 器管理时SNMP描述被管理对象行为的能力,使得SNMP可以进行服务器风扇控制等较为复 杂的操作,可以有效地简化和统一服务器的管理,实用性强,易于推广。
【附图说明】
[0015] 附图1为基于SNMP进行服务器风扇控制实现结构图。
[0016] 附图2为本发明的实现流程图。
【具体实施方式】
[0017] 下面结合附图和具体实施例对本发明作进一步说明。
[0018] 本发明提供一种基于SNMP进行服务器风扇控制的方法,通过增加一个SNMP代理 扩展模块以及一个对自定义结构化字符串进行解析并根据预定义的语义执行扩展操作的 set命令参数解析和动作模块,实现有效地简化和统一服务器的管理方案。
[0019]如附图1、图2所示,其具体实现过程为, 一、 检测风扇运行参数更新标识,查看该运行参数是否更新:当出现更新时,将该风扇 运行参数进行重新设置; 二、 读取并解析风扇运行模式,更新PWM控制信号; 三、 循环遍历其余风扇进行同样操作后,完成对服务器所有风扇的控制。
[0020] 所述方法的实施,是基于服务器的BMC芯片中增加SNMP代理扩展模块和set命令 参数解析和动作模块完成的,其中set命令参数解析和动作模块对自定义结构化字符串进 行解析并根据预定义的语义执行扩展操作,增强使用SNMP进行服务器管理时SNMP描述被 管理对象行为的能力,使得SNMP可以进行服务器风扇控制等较为复杂的操作。
[0021] 所述风扇运行参数包括两种:一是在自动控制模式下根据传感器采集的温度获取 此时风扇所应采用占空比的温度-占空比映射表;二是在手动控制模式下各个风扇转速档 位及其所对应的占空比。
[0022] 对于自动控制模式,温度-占空比映射表在set命令参数中通过如下的结构化字 符串表不:
[0023]其中,是要调整运行参数的风扇号,可以对具体的某个风扇进行调整;r: 是传感器温度;i>raTCTC££;是1}对应的占空比;卩是最低温度,DI7JTCTO:乓是其 占空比,称为起点温度占空比;th是最高温度,是其占空比,称为终止温度 占空比;从乃到,温度升高,占空比增大,对应的风扇转速会相应的提高。
[0024]需要说明的是,温度-占空比映射表通常较大,因此结构化字符串较长,为便于输 入,各个温度之间的间隔一般大于1,t之间的各个占空比数值需要在set命令参数 解析和动作模块中增加相应的处理算法得到,本发明申请对于如何得到各个占空比数值不 做限定,也不在本发明申请中进一步阐述,但此解决问题的思路仍属于本发明的范围。一种 可能的方法是限定上述参数T; :DMTCFCI£;;的对数,比如不大于5,I)UTYCYCLEn不大 于风扇控制器芯片支持的最大占空比,T;:i}L71TTa:乓中的1}表示分线段数量不大于 5的多分段函数各个分线段起点的温度,而相应的!>LTOrC££:则是该起点温度对应的占 空比,在set命令参数解析和动作模块中根据这些输入的值计算得到2;与T;之间其余 各个温度点的占空比。
[0025] 对于手动控制模式,各个风扇转速档位及其所对应的占空比在set命令参数中通 过如下的结构化字符串表示:

[0026] 其中,是要调整运行参数的风扇号,可以对具体的某个风扇进行调 整;A是风扇转速档位;是4对应的占空比;&是最低转速档位, DC/UCTCL^是其占空比;^是最高转速档位,是其占空比;从^到 4,档位升尚,占空比增大,对应的风扇转速会相应的提尚。
[0027] 上述参数作为SNMP set命令的参数被SNMP代理扩展模块获取,通过检测字符 串的第一个分号之前的子字符串所代表的数字决定更新哪个风扇的运行参数,并写入到 以FiV:命名的相应的存储区域中,例如,一个文件中,同时置位全局变量运行参数更新标志位
,set命令参数解析和动作模块检测到标志位被置位后会对所对应的存储区域中的数据进 行解析并计算和更新温度-占空比映射表或者更新风扇转速档位和相应占空比,更新操作完成 后复七
[0028] 所述的风扇运 行模式包括上述风扇运行参数中提到的手动控制模式和自动控制 模式。
[0029] 对于自动控制模式,在set命令参数中通过如下的结构化字符串参数表示: ""〇
[0030] 对于手动控制模式,在set命令参数中通过如下的结构化字符串参数表示: "FAN^M+lVim; '
[0031] 类似地,上述参数作为SNMPset命令的参数被SNMP代理扩展模块获取,通过检 测字符串的第一个分号之前的子字符串所代表的数字决定更新哪个风扇的运行模式,并写 入到相应的存储区域中,例如,一个文件中,set命令参数解析和动作模块会对存储区域中 的数据进行解析并执行相应的更新风扇占空比的操作,即更新信号。对于自动控制 模式,set命令参数解析和动作模块识别到启用自动控制方式后,会对指定的风扇采 用上述风扇运行参数设置操作中设置的温度-占空比映射表指定的占空比进行控制;对于 手动控制模式,set命令参数解析和动作模块识别到启用手动控制方式后,会对指定的风扇 根据上述风扇运行参数设置操作中指定的档位及其相应占空比进行控制,并采用风 扇转速档位所对应的占空比。
[0032] 基于上述运行参数及运行模式,该风扇控制方法的具体步骤为: 一、 检测全局变量

是否置位,只更新置位的标识所对应 的风扇运行参数; 二、如果置位,释放相应的存储温度-占空比映射表或者风扇转速档位的存储空间; 三、 对于置位的
或者
,根据FAV;选取以FAV:命名的存放 着风扇运行参数的存储空间; 四、 读取字符串全部内容,统计分号个数,分号个数与档位数存在一定的关系,每个档 位需要存储档位号和档位占空比两个字段的内容,根据分号个数开辟临时存储空间; 五、 解析并存储风扇运行参数,以手动控制模式的运行参数为例: 1) 读取字符串内容到第一个分号,判断存储区中的风扇号与全局变量
旨明的风扇号是否一致,一致则进行下一 步,不一致则说明访问错误; 2) 读取字符串内容到第二个分号,冒号之前的内容作为档位1,冒号之后的内容作为档 位1的占空比,存储到上述临时存储空间中; 3) 读取字符串内容到第三个分号或者字符串结束符,如果读取到第三个分号,则按步 骤2)存储档位2和档位2的占空比到临时存储空间中并继续读取,如果读取到字符串结束 符,则按步骤2)存储档位2和档位2的占空比到临时存储空间中并结束读取; 4) 继续解析或者结束解析过程; 六、 读取以F▲乂命名的风扇运行模式存储空间中的信息; 七、 解析风扇运行模式: 读取字符串内容到第一个分号,判断存储区中的风扇号^^%与存储区域名称指明的 风扇号是否一致,一致则进行下一步,不一致则说明访问错误; 读取字符串内容到第二个分号或者字符串结束符,子字符串内容为3LT0为自动控 制模式,使用温度-占空比映射表确定信号的占空比并结束读取,子字符串内容为 为手动控制模式并继续读取; 对于手动控制模式,读取字符串内容到字符串结束符,记录档位,使用该档位确定 信号的占空比并结束读取; 结束解析过程; 八、 使用更新后的PWlf信号控制风扇号为的风扇的转速; 九、 循环遍历其余的风扇进行同样的操作完成一次风扇控制过程。
[0033] 下面以一个实施例进行详细说明: 服务器主板一块,板卡上放置一颗AST2400的BMC,MAX6639作为风扇的控制芯片, AST2400通过I2C总线与MAX6639进行通信,MAX6639被设置为PWM工作模式。
[0034] 则设置风扇运行参数的命令如下: snmpset -v2c _c private BMC_IP 1. 3. 6. 1. 4. 1. myCompanyPEN. 1. 1. 1. 0 s 〃1;1:20;2:50;3:80"。
[0035] 表示设置风扇1的风扇转速档位为如下三个级别: 档位1,占空比20% ;档位2,占空比50% ;档位3,占空比80%。
[0036] 设置风扇运行模式的命令如下: snmpset-v2c-cprivateBMC_IP1. 3. 6. 1. 4. 1.myCompanyPEN. 1. 1. 2. 0s"1;MMUAL;2"。
[0037] 表示设置风扇1的风扇控制模式为手动模式,档位级别为档位2。
[0038] SNMP代理扩展模块获取和存储set命令的参数并置位相应的标识但不做进一步 地解析;set命令参数解析和动作模块检测到标识被置位后会使用本发明所述的方法解析 set命令参数和更新风扇运行参数,然后解析风扇运行模式并使用更新后的风扇运行参数 确定的信号对风扇进行调速操作。
[0039] 上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于 上述【具体实施方式】,任何符合本发明的一种基于SNMP进行服务器风扇控制的方法的权利 要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发 明的专利保护范围。
【主权项】
1. 一种基于SNMP进行服务器风扇控制的方法,其特征在于,其具体实现过程为: 一、 检测风扇运行参数更新标识,查看该运行参数是否更新:当出现更新时,将该风扇 运行参数进行重新设置; 二、 读取并解析风扇运行模式,更新PWM控制信号; 三、 循环遍历其余风扇进行同样操作后,完成对服务器所有风扇的控制。2. 根据权利要求1所述的一种基于SNMP进行服务器风扇控制的方法,其特征在于,所 述方法的实施,是基于服务器的BMC芯片中增加 SNMP代理扩展模块和set命令参数解析和 动作模块完成的,其中set命令参数解析和动作模块对自定义结构化字符串进行解析并根 据预定义的语义执行扩展操作,增强使用SNMP进行服务器管理时SNMP描述被管理对象行 为的能力,实现SNMP进行服务器风扇控制。3. 根据权利要求2所述的一种基于SNMP进行服务器风扇控制的方法,其特征在于,所 述风扇运行参数包括两种:一是在自动控制模式下根据传感器采集的温度获取此时风扇所 应采用占空比的温度-占空比映射表;二是在手动控制模式下各个风扇转速档位及其所对 应的占空比。4. 根据权利要求3所述的一种基于SNMP进行服务器风扇控制的方法,其特征在于,所 述风扇运行参数作为SNMP set命令的参数被SNMP代理扩展模块获取,决定更新哪个风扇 的运行参数,并写入到以要调整运行参数的风扇号命名的相应的存储区域中。5. 根据权利要求3或4所述的一种基于SNMP进行服务器风扇控制的方法,其特征在 于,所述风扇运行参数更新设置过程为: 检测全局变量运行参数更新标识位是否置位,只更新置位的标识所对应的风扇运行参 数,当置位时,进入下一步骤; 释放相应的存储温度-占空比映射表或者风扇转速档位的存储空间; 对置位的全局变量运行参数,根据要调整运行参数的风扇号选取以其风扇号命名的存 放着风扇运行参数的存储空间; 读取更新的风扇运行参数,开辟临时存储空间; 解析并存储风扇运行参数; 复位风扇运行参数更新标识。6. 根据权利要求2所述的一种基于SNMP进行服务器风扇控制的方法,其特征在于,所 述运行模式包括手动控制模式和自动控制模式。7. 根据权利要求6所述的一种基于SNMP进行服务器风扇控制的方法,其特征在于,所 述风扇运行模式作为SNMP set命令的参数被SNMP代理扩展模块获取,决定更新哪个风扇 的运行模式,并写入到相应的存储区域中。8. 根据权利要求6或7所述的一种基于SNMP进行服务器风扇控制的方 法,其特征在于,所述步骤二的详细过程为:读取以要调整运行参数的风扇号 命名的风扇运行模式存储空间中的信息,解析风扇运行模式,使用更新后的 Pffli信号控制风扇号为要调整运行参数的风扇号的风扇的转速。
【专利摘要】本发明公开了一种基于SNMP进行服务器风扇控制的方法,其具体实现过程为:检测风扇运行参数更新标识,查看该运行参数是否更新:当出现更新时,将该风扇运行参数进行重新设置;读取并解析风扇运行模式,更新PWM控制信号;循环遍历其余风扇进行同样操作后,完成对服务器所有风扇的控制。该基于SNMP进行服务器风扇控制的方法与现有技术相比,使得SNMP可以进行服务器风扇控制等较为复杂的操作,可以有效地简化和统一服务器的管理,实用性强,易于推广。
【IPC分类】F04D27/00
【公开号】CN104895817
【申请号】CN201510203749
【发明人】李清石, 张雁鹏, 刘强, 金长新
【申请人】浪潮集团有限公司
【公开日】2015年9月9日
【申请日】2015年4月27日

最新回复(0)