服务器
服务器从功能上来讲,跟我们日常学习办公使用的台式机和笔记本没有本质区别,主要也是由最为关键的三大件:CPU、内存、硬盘组成,但是服务器的应用场景主要是提供给企业等角色用来支撑形形色色业务,不仅仅是用来安装浏览器访问网页、安装播放器看看电影,因此服务器会使用更强的配置,即更强劲的CPU、更大的内存、更大的硬盘存储。从外形上来说,服务器存在多种外形,如机架式、刀片式、塔式等等,最主要的区别在于服务器一般不会配置显示器、键盘、鼠标等部件用于近端操作,一般通过IP远程连接的方式访问。因为服务器一般情况下都会放置于单独的机房,而且风扇噪音会比家用电脑大很多。
BMC
BMC是一个独立于服务器系统的小型操作系统。作用是方便服务器远程管理、监控、安装、重启等。BMC是一个集成在主板上的芯片(也有通过PCIE等各种形式插在主板上),对外表现形式只是一个标准的RJ45网口,拥有独立的IP。普通维护只需使用浏览器访问IP:PORT登录管理界面,服务器集群一般使用BMC指令进行大规模无人值守操作。
一版服务器BMC网口是独立的,仔细看印有BMC字样,也有小型服务器BMC网口和通信网口是二合一的。
IPMI
在介绍BMC之前需要了解一个概念,即IPMI
,智能型平台管理接口(Intelligent Platform Management Interface),是管理基于 Intel结构的企业系统中所使用的外围设备采用的一种工业标准–硬件管理规范。用户可以利用IPMI监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。同时还负责记录各种硬件的信息和日志记录,用于提示用户和后续问题的定位。
IPMI的核心是一个专用芯片/控制器(叫做服务器处理器或基板管理控制器(BMC))。在工作时,所有的IPMI功能都是向BMC发送命令来完成的,命令使用IPMI规范中规定的指令,BMC接收并在系统事件日志中记录事件消息,维护描述系统中传感器情况的传感器数据记录。通俗来讲,BMC是整个服务器单板的大管家。从一款服务器上电时刻,它的所有部件都归BMC来负责和管理。
从功能上来讲,BMC主要用于采集单个服务器上各种信息,同时提供给上层运维网管软件。主要有两种手段,第一种BMC会提供各种各样的接口供上层网管查询,如web、命令行等人机接口、SNMP、IPMI、Restful等机机接口;第二种是主动上报,当检测到有故障产生时,BMC可以通过SNMP trap消息、SMTP 邮件消息、Redfish http json报文等手段上报给上层网管软件的服务端,以便运维人员及时识别处理故障。一般情况下,BMC软件上报的消息中都会明确的指明具体是哪个部件产生了故障、处理建议是怎样的等等。
需要说明的是,BMC是一个独立的系统,它不依赖与系统上的其它硬件(比如CPU、内存等),也不依赖与BIOS、OS等(但是BMC可以与BIOS和OS交互,这样可以起到更好的平台管理作用,OS下有系统管理软件可以与BMC协同工作以达到更好的管理效果)
BMC通过不同的接口与系统中的其它组件连接。在IPMB(Intelligent Platform Management Bus)总线上连接着各个管理控制器,分别执行不同功能。IPMB总线上还连接着一些I2C器件,用来作为传感器的接口,让系统管理软件能够通过IPMB来读取传感器的数据。同时,这些传感器的具体配置信息,如告警门限、事件触发是否允许等配置都保存在一组名为SDR(Sensor Data Record)的数据里面。而传感器产生的告警事件则保存在一组叫做SEL(Sensor Event Log)的数据里面。在IPMB总线上,连接着一个ICMB(Intelligent Chassis Management Bus)桥,通过ICMB可以和远程的另一个管理平台通信。此外,在IPMB总线上,还可以外接其他的用户板,用来扩展IPMI管理平台的功能。
管理系统的核心——BMC芯片就相当于计算机中的中央处理器,通过BMC芯片上一对SMBus接口连接网络,用户可通过网络访问实现对远程服务器接管的带外管理(Out-of-band)功能,例如远程接管服务器(Pre-OS),在客户端实现对远程服务器的完全接管;通过RS-232接口连接Modem,在远程服务器宕机情况下,用户可以通过拨号访问获取SDR、SEL数据,分析诊断故障原因;BMC通过IPMB接口访问模组风扇背板、电源背板等上的SMC,实现对各种背板的温度电压风扇转速等关键参数管理;BMC通过系统接口(多用SMIC:Server Management Interface Chip),实现IPMI消息传输机制,控制LCD显示和实现上层软件与底层F/W通信,实现告警、数据采集。SDR、SEL、FRU(Field Replacement Unit)物理实体可以是做在芯片内的存储体,也可以是外挂的E2PROM。
服务器远程管理
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进行远程开机和关机。
BMC的IP地址很有意思,在本机上ping本机BMC的IP地址是不通的!要在别的电脑上ping才通。刚开始设置的时候不要被这个小问题迷惑了。而IBM服务器背后还有一个写这System Management的网口不知道是干什么用的,反正不需要接。
带卡:
就更简单了,网线接卡上的System Management的网口,其他都一样。就多了web方式的功能。
IBM3650,3550等新发布的服务器目前支持IMM,取代了IBM的远程管理卡RSA-II。
BIOS,BMC
BIOS是基本输入输出系统,是基于硬件最底层的一个系统,用的机器汇编语言。而操作系统OS是相对比BIOS高级的系统。举个简单例子就好像汽车,BIOS有点像车轮子,而操作系统类似于车身。
服务器启动顺序?BMC先起作用,BMC通电即开始工作,即使是关机状态,BMC也是可以操作的,而BIOS必须开机才能工作。
BIOS与BMC之间的通信,主要使用的是IPMI。请记住,BMC是不能主动与BIOS通信的;BIOS会发送IPMI命令给BMC,BMC如果成功接收的话,就会有个返回信息给BIOS,所以“看起来像是BMC可以与BIOS通信”。
如果产生了通信故障如何解决:
(1)确认BIOS是否发送了IPMI命令给BMC,可以查看BMC返回的completion code;
(2)确认BMC是否收到了BIOS发送的IPMI命令;
(3)如果BIOS发送了IPMI命令,但是BMC未接收:可能是BMC的IPMI进程正处于忙碌状态,所以丢掉了这条IPMI命令(BIOS这边如果发送失败,可以尝试多次发送;另外,可以稍微调高点KCS通道的延时);当然,也有可能是BMC的IPMI进程挂了。
(4)如果涉及到了底层协议的具体实现,一条IPMI命令通常涉及到2个底层实现函数,SendDataToBmcPort()和ReceiveBmcDataFromPort()。接收时,BIOS从KCS的I/O端口读取数据,读完后,会检测KCS寄存器中OBF状态寄存器,如果BMC没有写数据,就会计数减1,延时5ms,然后重试;当BMC一直不写数据时,计数到0,就认为BMC有故障,返回Device Error;