[转帖]了解服务器之IPMI与BMC

了解,服务器,ipmi,bmc · 浏览次数 : 0

小编点评

**服务器服务器的功能概述** 服务器服务器是提供给企业等角色用来支撑形形色色业务的专用设备。与我们日常学习办公使用的台式机和笔记本不同,服务器的应用场景主要是提供给企业等角色用来支持形形色色业务。 **服务器的主要部件** * **BMC (Board Management Controller)**: BMC 是服务器的核心设备,负责管理硬件资源,包括 CPU、内存、硬盘、网络等。 * **操作系统 (OS)**: OS 是在 BMC 上运行的软件,负责提供用户界面、服务运行等功能。 * **存储设备**: 存储服务器数据,包括操作系统、应用程序、日志等。 * **网络接口**: 提供服务器与外部网络的连接。 * **输入输出 (I/O) 设备**: 与外部设备进行通信,例如键盘、鼠标、打印机等。 **服务器启动顺序** 1. BMC 启动。 2. BMC 发送启动命令给操作系统。 3. 操作系统启动。 4. 操作系统启动 BMC。 5. BMC 启动操作系统。 6. 启动网络接口。 7. 启动输入输出设备。

正文

https://blog.yelvlab.cn/archives/586/

 

服务器

服务器从功能上来讲,跟我们日常学习办公使用的台式机和笔记本没有本质区别,主要也是由最为关键的三大件: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。

BMC逻辑关系

BMC逻辑关系

 

 

服务器远程管理

 

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;

与[转帖]了解服务器之IPMI与BMC相似的内容:

[转帖]了解服务器之IPMI与BMC

https://blog.yelvlab.cn/archives/586/ 服务器 服务器从功能上来讲,跟我们日常学习办公使用的台式机和笔记本没有本质区别,主要也是由最为关键的三大件:CPU、内存、硬盘组成,但是服务器的应用场景主要是提供给企业等角色用来支撑形形色色业务,不仅仅是用来安装浏览器访问网

[转帖]从v8到v9,Arm服务器发展之路

https://zhuanlan.zhihu.com/p/615344155 01 ARM:3A大作 将 CPU 的设计与制造相分离的代工模式,给 AMD 提供了高度的灵活性。第二、三代 EPYC 处理器可以相对自由的选择不同的制程来匹配芯片设计的具体需求,客观上起到了帮助 AMD“以小博大”,从英

[转帖]Java调优系列之工具篇之btrace、gperftools

https://github.com/landon30/Bulls/wiki/java-profiling-tools landon 网络游戏资深服务器架构师 2018-06-14 线上遇到了问题? 服务上线出问题,想增加打印日志怎么办? 线上怀疑某个接口慢,想打印接口耗时怎么办? 线上某个接口报错

[转帖]庐山真面目之十三微服务架构中如何在Docker上使用Redis缓存

https://www.cnblogs.com/PatrickLiu/p/14518160.html 一、介绍 1、开始说明 在微服务器架构中,有一个组件是不能少的,那就是缓存组件。其实来说,缓存组件,这个叫法不是完全正确,因为除了缓存功能,它还能完成其他很多功能。我就不隐瞒了,今天我们要探讨的就是

[转帖]linux服务之tuned

https://www.cnblogs.com/createyuan/p/5701650.html RHEL/CentOS 在 6.3 版本以后引入了一套新的系统调优工具 tuned/tuned-adm,其中 tuned 是服务端程序,用来监控和收集系统各个组件的数据,并依据数据提供的信息动态调整系

[转帖]庐山真面目之十五微服务架构的动态分离的设计实现

https://www.cnblogs.com/PatrickLiu/p/16688731.html 一、开场白 我是一名程序员,是基于 NET 框架的跨平台开发的程序员。现在的业务系统,不论大小都开始实现了微服务,不管合不合适,最起码说起来挺牛气的。我做一位程序员,当然也不能落后了。微服务是为了满

[转帖]总结:nginx502:Tomcat调优之acceptCount

问题背景:UI页面点击会偶尔返回error,检查调用日志,发现nginx报502报错,因此本文即排查502报错原因。 如下红框可知,访问本机个备机的服务502了,用时3秒左右(可见并不是超时) 先给出原因:是因为tomcat8默认的acceptCount是100,请求量大的时候,会将一些来不及处理的

[转帖]大话云原生之灰度发布篇 - 从步行到坐缆车的自动化服务升级

https://xie.infoq.cn/article/9b22d0ca95e7d48748bb0a5fd 看过很多关于云原生的文章,要么云山雾罩,要么曲高和寡。 所以笔者就有了写《大话云原生》系列文章的想法,期望用最通俗、简单的语言、方便记忆的场景来说明:云原生生态系统内的组成及应用关系。 一、

[转帖]Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务

https://www.cnblogs.com/PatrickLiu/p/8360057.html 一、引言 今天本来没有打算写这篇文章,但是,今天测试Redis的时候发现了两个问题,第一个问题是:Redis Desktop Manager无法连接虚拟机上Linux系统上的Redis服务,第二个问题

[转帖]Redis之安全措施

指令安全 Redis的一些指令会对Redis服务的稳定性及安全性各方面造成影响,例如keys指令在数据量大的情况下会导致Redis卡顿,flushdb和flushall会导致Redis的数据被清空。 Redis在配置文件中提供了 rename-command 指令用于将一些危险的指令修改成其他指令,