BMC—服务器运维管理利器

BMC全称BaseboardManagement Controller,通俗来讲,BMC是整个服务器单板的大管家。从一款服务器上电时刻,它的所有部件都归BMC来负责和管理。说到这里,大家可能已经了解BMC是与服务器有关的,但还是会有疑惑,BMC到底是啥?它在服务器哪里?它在干什么?

简单提下服务器,服务器从功能上来讲,跟我们日常学习办公使用的台式机和笔记本没有本质区别,主要也是由*为关键的三大件CPU、内存、硬盘组成,但是服务器的应用场景主要是提供给企业等角色用来支撑形形色色业务,不仅仅是用来安装浏览器访问网页、安装播放器看看电影,因此服务器会使用更强的配置,即更强劲的CPU、更大的内存、更大的硬盘存储。从外形上来说,服务器存在多种外形,如机架式、刀片式、塔式等等,*主要的区别在于服务器一般不会配置显示器、键盘、鼠标等部件用于近端操作,一般通过IP远程连接的方式访问即可。因为服务器一般情况下都会放置于单独的机房,而且风扇噪音会比家用电脑更大些。

说到这里,大家可能觉得我懂了,BMC就是跑在服务器上的一个软件是吧?错误。

BMC是一款服务器AC上电起始即运行的软件,运行在服务器上一款单独的ARM芯片上,这个ARM芯片就是BMC软件的CPU,同时会芯片外围会配置自己的RAM、Flash等器件,只要服务器插上电源线,BMC软件便快速运行起来,此时有可能我们通常意义上的x86服务器侧的OS都还没有安装呢。BMC是整个服务器的大管家,主要用于服务器各个部件(CPU、内存、硬盘、风扇、机框等)的温度、电压等健康状态进行检测,同时根据各个温度采集点情况实时调整风扇转速保证服务器不产生过温、而且控制总体功耗又不能过高,如果单板部件出现任何异常则通过SNMP协议、SMTP协议、Redfish协议等多种业界通用规范讲信息及时上报给上层网管,以便运维人员及时处理,保证业务无损。

此处介绍下带外管理和带内的概念,通常情况下x86侧执行的运维管理动作被称作带内的方式,而BMC是脱离x86侧独立运行的服务器管理软件,被称作带外管理软件。

简单来说,BMC可以采集任何服务器上的除x86侧运行的私有业务本身之外的任何信息,本文不展开讲到底可以采集哪种信息,但是请注意,现在业界的BMC带外管理软件有各种解决方案,可以采集到任何你想要的信息,是的,任何。因为即使从带外无法获取的信息,当前业界也存在带外和带内监控结合、带外统一提供接口的方案,可以实现通过BMC获取任何想要获得信息。

从功能上来讲,BMC主要用于采集单个服务器上各种信息,同时提供给上层运维网管软件。主要有两种手段,*种BMC会提供各种各样的接口供上层网管查询,如web、命令行等人机接口、SNMP、IPMI、Restful等机机接口;第二种是主动上报,当检测到有故障产生时,BMC可以通过SNMP trap消息、SMTP 邮件消息、Redfish http json报文等手段上报给上层网管软件的服务端,以便运维人员及时识别处理故障。一般情况下,BMC软件上报的消息中都会明确的指明具体是哪个部件产生了故障、处理建议是怎样的等等。

讲到这里,大家对BMC带外管理应该有了初步的认识,也达到了本文的目的。此时大家可能存在疑问,在x86侧OS上部署一套自研的Agent,也可以采集到我想要的各种信息,对于少量与硬件强相关的信息,我在带内OS上通过BMC接口查询补全,这种带内结合带外管理的方式不是也挺好吗?

全带外管理,是当前各大服务器厂商推出的单板运维管理的解决方案。各大服务器厂商当前均自研统一的带内Agent信息补全工具,*终汇集信息至BMC侧统一对外提供接口。理论上来说,可以满足单板运维管理的诉求。对于服务器用户来说,这是零成本的解决方案,强烈建议采用,何必自己再研发一套增加成本呢?

希望大家看完此文能对BMC带外管理有一定的了解。

服务器远程管理简介(ILO,BMC,RSA)

现在说说HP的服务器:

好像HP的服务器标配都集成了iLO的,也就是HP自己的远程管理系统。以DL380的iLO2为例:
其实服务器上要设置的也就是IP地址和用户密码之类的东东,

在服务器开机自检到lights-out卡按F8进入ILO的配置界面,在Network里设置IP地址,在Users里面设置用户密码,都很简单,一看就会。HP的服务器的iLO是要单独接一根网线用来做远程管理的,这点和DELL的服务器不一样 — 更确切的说,是Dell的BMC太神奇了,居然和应用的网口合二为一。
然后随便找一台客户机,只要网络能通,用网页访问服务器
里配的管理地址就可以了,都是图形界面,一看就明白。

 

再说说IBM的服务器:

又分两种:带RSA卡和不带RSA卡的。所谓RSA卡,也就是远程管理卡,就像HP的iLO差不多,带卡的话提供web方式访问。不带卡的就不提供Web方式访问。
不带卡:
BMC是一个标准,IBM的服务器标配都有BMC,而且也和Dell的服务器类似,也是和*个网卡共用的。只要在BIOS里设置一下IP地址就可以了(是在BIOS的Advance里设置的,只要设IP地址、掩码、网关就好,其他什么串口、共享的设置不用管,设了也没什么用处),然后一样用ipmitool进行远程开机和关机。而且就用Dell服务器随机光盘里的那个ipmitool就可以。反倒是IBM的随机光盘没有用过。

BMC的IP地址很有意思,在本机上ping本机BMC的IP地址是不通的!要在别的电脑上ping才通。刚开始设置的时候不要被这个小问题迷惑了。而IBM服务器背后还有一个写这System Management的网口反而不知道是干什么用的,反正不需要接。

带卡:
就更简单了,网线接卡上的System Management的网口,其他都一样。就多了web方式问题的功能。

IBM3650,3550等新发布的服务器目前支持IMM,取代了IBM的远程管理卡RSA-II

imm用来远程管理。通常主机后部有一个专用的管理端口,例如下图以3650M3为例,可以通过此端口访问IMM。

IMM管理端口默认IP:192.168.70.125

用户名:USERID

密码:PASSW0RD

注意字母为大写,密码中的“0”是数字0

在UEFI中修改IMM的IP地址

在开机自检的过程中根据提示按F1进入UEFI设置,

在UEFI中进入System Setting->Integrated Management Module->Network configuration。在输入需要修改的IP地址后,选择Save Network Settings

在IE中输入IP地址即可访问IMM管理界面

对于网管来说,远程管理*实用的就是远程关机和开机。试想,在家里躺在沙发上,报个笔记本,手指轻轻一点就能把在公司的某些服务器开机或关机,那是多么惬意的事情!
本文主要讨论硬件级的开机和关机,即不涉及到服务器上的操作系统和应用软件。像那种在服务器上装个Remote Administrator软件之类的方式来实现重启或关机当然也可以,但是,万一服务器当掉了呢?什么软件都没有用了!
以下以Dell的2950服务器为例。
其实如果只是想实现远程开机或关机的话,是不需要额外配DRAC卡的。Dell的服务器默认都带BMC,而且挺神奇的,这个用来做管理的网口和操作系统是共用的同一个网口(注意必需是*个网口,即服务器上标有1的那个),只要BMC里设置的IP地址和操作系统的IP不一样就可以了。而且经测试,必须不一样,否则没法远程开关机。
BMC的设置很简单,在服务器启动时看到Press <Ctrl-E> for BMC Setup提示的时候按Ctrl+E键进入设置画面,设置 IPMI Over LAN 为 On,在IPMI LAN Channel里面设置IP地址,注意一个小细节,这里如果输错了或者不想要IP地址的某个数字,要用Backup键删除之后才能输入,否则会被搞晕的:
怎么这里不能设置了?那里不能设置了?
配置完成,保存设置。

客户端其实没有什么设置,只要能ping通服务器BMC配置的IP地址就可以,不需要在同一网段的!
找个ipmitool,哪里有?在Dell服务器的随机光盘里就有!找到那张服务器管理光盘,把这个文件拷贝出来:\SYSMGMT\ManagementStation\windows\ManagementStation\BMC.cab
这是个cab文件,可以用WinRAR直接打开,把里面的文件都解压缩出来,其实我们只需要里面的3个文件:
ipmitool.exe 这个是主力
cygcrypto-0.9.8.dll 运行必需的
cygwin1.dll 运行必需的

解压出来的文件是不带扩展名的,需要手动改成这些文件名。
这个压缩包里还有ipmish.exe,经过多次试验,发现ipmish.exe在2950上只能实现开机,不能关机,也搞不清楚问题出在哪里,鸡肋一个,弃之不用。

下面是ipmitool的一些实用实用命令,假设服务器BMC里设的IP地址是 192.168.188.167,用户是root,密码是password
查看电源状态:
ipmitool -I lan -U root -P password -H 192.168.188.167 power status
开机:
ipmitool -I lan -U root -P password -H 192.168.188.167 power on
关机:
ipmitool -I lan -U root -P password -H 192.168.188.167 power off

ipmitool也可以用 -I lanplus 参数,
在新的2950,R900,R710等服务器上测试都OK。
但是一些老的服务器如2850等不支持-I lanplus参数,还是
用-I lan兼容性好些。

 

ASMI简介

高级系统管理界面(Advanced System Management Interface 简称ASMI)是由IBM P5/i5服务器的服务处理器(Service Processor)所提供的管理界面,系统管理员能够通过它设置服务器的参数,比如自动启动到诊断模式,或者是查看系统信息,比如查看错误日志和VPD。

系统管理员可以使用装有互联网浏览器的PC,通过以太网来访问高级系统管理界面。系统管理员也可以通过连接在服务器串口上的终端和硬件管理终端(HMC)来方位高级系统管理界面。

ASMI连接方法

IBM P550的后面有两个HMC接口:HMC1、HMC2。可以通过电脑网口直接接入主机的HMC端口,也可以将HMC端口接入交换机来访问ASMI界面。

P520 HMC默认访问IP:
HMC1: 192.168.2.147   255.255.255.0
HMC2: 192.168.3.147   255.255.255.0

P550 HMC接口的默认IP为:

默认访问IP:
HMC1: 169.254.2.147   255.255.255.0
HMC2: 169.254.3.147   255.255.255.0

使用浏览器直接访问https://169.254.2.147,就可以访问ASMI管理界面。

默认的用户名和密码都是admin,

 

http://blog.sina.com.cn/s/blog_593ce4850100dnvk.html

 

登陆AIX,光纤交换机,盘阵方式:

AIX 存储、HMC、光纤交换机登入方法

服务器BMC知识介绍

在介绍BMC之前需要了解一个概念,即平台管理(platform management)。

平台管理表示的是一系列的监视和控制功能,操作的对象是系统硬件。比如通过监视系统的温度,电压,风扇、电源等等,并做相应的调节工作,以保证系统处于健康的状态。当然如果系统真的不正常了,也可以通过复位的方式来重新启动系统。同时平台管理还负责记录各种硬件的信息和日志记录,用于提示用户和后续问题的定位。以上的这些功能可以集成到一个控制器上来实现,这个控制器被称为基板管理控制器(Baseboard Manager Controller,简称BMC)。

需要说明的是,BMC是一个独立的系统,它不依赖与系统上的其它硬件(比如CPU、内存等),也不依赖与BIOS、OS等(但是BMC可以与BIOS和OS交互,这样可以起到更好的平台管理作用,OS下有系统管理软件可以与BMC协同工作以达到更好的管理效果)。

一般我们的电脑不会带BMC,因为用处不大,一些温度、电源等的管理,CPU(或者EC,这就是另外一个话题了)来控制就够了。但是对于系统要求高的设备,比如服务器,就会用到BMC。当然因为BMC是一个独立的系统,对于某些嵌入式设备,可能不需要其它处理器,光一个BMC就能完成工作。

说到底BMC本身也是一个带外处理器(一般都是ARM处理器)的小系统,单独用来处理某些工作也完全是可以的。不过这里既然叫做BMC,那么总的来说重点还是在平台管理,所以本文主要说的是服务器中的BMC。BMC在系统中的位置大致如下图所示:
%title插图%num

BMC通过不同的接口与系统中的其它组件连接。

LPC、I2C、SMBUS,Serial等,这些都是比较基本的接口,而IPMI,它是与BMC匹配的总线,所有的BMC都需要实现这种接口,这里需要特别的介绍。

IPMI
IPMI的全称是Intelligent Platform Management Interface,智能平台管理接口。

看了名字也不需要特别介绍它用来干什么的了,关于它的详细介绍可以参看https://www.intel.com/content/www/us/en/servers/ipmi/ipmi-home.html,这里只做简单的介绍。

IPMI规定了很多的东西,BMC是其中*重要的一个部分,此外还有一些”卫星“控制器通过IPMB与BMC相连,这些”卫星“控制器一般控制特定的设备。

IPMB全称Intelligent Platform Management Bus,是一种基于I2C的串行总线,它用于BMC与”卫星“控制器的通信,其上传递的是IPMI命令。

下面的图描述了与IPMI有关的各个模块:
%title插图%num

下面简单的介绍各个部分。

MOTHERBOARD

首先是图中的左下角部分,名称写着Mother Board。

%title插图%num

通常,在服务器中,这一部分是主角,它包含了CPU,PCH等主要的部件。

这里我们可以看到它连接除了数个组件:网卡,串口和IPMI总线,其实还有一个部分在图中*上面中间的PCI总线。

网卡:服务器需要用到网卡,这个本身没有什么好介绍的,重点其实在于BMC到网卡的连接,后续会介绍。

串口:串口用于输出服务器的调试信息,但是这里值得注意的是其中的Serial Port Sharing,它使得服务器的串口输出可以直接输出,也可以输出到BMC。至于为什么要输出到BMC,这里其实需要注意的是一种常用的场景。服务器位于机房,而工作人员通常不会直接在机房操作,而是通过网络(这也是为什么BMC会连接网卡的原因)进行操作,这个时候过需要获取服务器的串口信息,就不方便直接去机房,这个时候通过BMC来获取服务器串口信息就是一个好主意。

IPMI总线:这是BMC与服务器通信并进行控制的主体,当然少不了。

PCI总线:这个部分的作用跟串口很像。服务器除了输出串口信息,当然还需要输出图形界面之类的东西。从服务器端来看,它通过PCI连接的就是一个显卡,通过它来输出显示。

 

IPMB
再来到图中的右上角,其中描述的是通过IPMB连接的设备。
%title插图%num

这些设备跟BMC类似,也是用来进行管理芯片。

它们是对BMC的补充,从而扩展BMC的功能。

 

Non-volatile Storage
我们知道BMC其实是一个独立的芯片,那么它肯定也需要运行系统。

通过BMC里面运行的是一个类Unix系统,而该系统就存放再Non-volatile Storage中,通常就是SPI Flash里面。
%title插图%num

跟一般的存储介质没有本质的区别。

除了系统本身之后,还包含一系列BMC会存放的信息。

比如从服务器上面获取到的串口信息;系统本身的报警信息;FRU信息等。

 

Sensors & Control Circuitry
这一部分虽然图中只占很小的一部分,但却是BMC*基本的功能:获取信息和控制环境。
%title插图%num

BMC会通过I2C/PECI等总线去获取设备的温度,然后根据预先设定的策略去调整温度。

调整的方式两种,一种就是调整风扇,属于主动降温;另一种是调整供电,比如CPU的P状态,或者关闭多余的硬盘等,属于被动降温。

 

FRU
FRU的全称是Field Replaceable Unit。
%title插图%num

从图中也可以看出,类似内存条,CPU等就属于FRU,它们在服务器中通常是可以更换的。

BMC会检测这些设备并保存相关的信息。

当这些设备的在位情况发生变化时,BMC会发生相关的告警。