【BMC】简介

【BMC】简介BMC 简介

什么是BMC

在介绍BMC之前需要了解一个概念,即平台管理(platform management)。平台管理表示的是一系列的监视和控制功能,操作的对象是系统硬件。比如通过监视系统的温度,电压,风扇、电源等等,并做相应的调节工作,以保证系统处于健康的状态。当然如果系统真的不正常了,也可以通过复位的方式来重新启动系统。同时平台管理还负责记录各种硬件的信息和日志记录,用于提示用户和后续问题的定位。

下图是平台管理涉及到的功能概述:

【BMC】简介

以上的这些功能可以集成到一个控制器上来实现,这个控制器被称为基板管理控制器(Baseboard Manager Controller,简称BMC)。需要说明的是,BMC是一个独立的系统,它不依赖与系统上的其它硬件(比如CPU、内存等),也不依赖与BIOS、OS等(但是BMC可以与BIOS和OS交互,这样可以起到更好的平台管理作用,OS下有系统管理软件可以与BMC协同工作以达到更好的管理效果)。一般我们的电脑不会带BMC,因为用处不大,一些温度、电源等的管理,CPU(或者EC,这就是另外一个话题了)来控制就够了。但是对于系统要求高的设备,比如服务器,就会用到BMC。当然因为BMC是一个独立的系统,对于某些嵌入式设备,可能不需要其它处理器,光一个BMC就能完成工作。说到底BMC本身也是一个带外处理器(一般都是ARM处理器)的小系统,单独用来处理某些工作也完全是可以的。不过这里既然叫做BMC,那么总的来说重点还是在平台管理,所以本文主要说的是服务器中的BMC。

BMC在系统中的位置大致如下图所示:

【BMC】简介

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是IPMI中的一个核心部分,属于IPMI硬件架构。下图灰色部分就是IPMI涉及的范围:

【BMC】简介

可以看到BMC在硬件的最底层,而上层白色部分是系统中的管理软件。由于本文是介绍BMC的,所以这里只介绍BMC相关的IPMI硬件模块。

IPMI硬件模块

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

IPMB全称Intelligent Platform Management Bus,是一种基于I2C的串行总线,它用于BMC与”卫星“控制器的通信,其上传递的是IPMI命令。对于相对简单的系统来说,BMC已经能够满足要求,但是当系统比较复杂,由多个子系统构成时,那么通过IPMB和“卫星”控制器,就能够更好地管理复杂系统。

下面的图描述了与IPMI有关的各个硬件模块:

【BMC】简介

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

MOTHERBOARD

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

【BMC】简介

通常,在服务器中,这一部分是主角,它包含了CPU,PCH等主要的部件。这里我们可以看到它连接除了数个组件:网卡,串口和IPMI总线,其实还有一个部分在图中最上面中间的PCI总线。

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

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

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

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

IPMB

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

【BMC】简介

这些设备跟BMC类似,也是用来进行管理芯片。它们是对BMC的补充,从而扩展BMC的功能。

Non-volatile Storage

我们知道BMC其实是一个独立的芯片,那么它肯定也需要运行系统。通过BMC里面运行的是一个类Unix系统,而该系统就存放再Non-volatile Storage中,通常就是SPI Flash里面。

【BMC】简介

跟一般的存储介质没有本质的区别。除了系统本身之后,还包含一系列BMC会存放的信息。比如从服务器上面获取到的串口信息;系统本身的报警信息;FRU信息等。

Sensors & Control Circuitry

这一部分虽然图中只占很小的一部分,但却是BMC最基本的功能:获取信息和控制环境。

【BMC】简介

BMC会通过I2C/PECI等总线去获取设备的温度,然后根据预先设定的策略去调整温度。调整的方式两种,一种就是调整风扇,属于主动降温;另一种是调整供电,比如CPU的P状态,或者关闭多余的硬盘等,属于被动降温。

FRU

FRU的全称是Field Replaceable Unit。

【BMC】简介

从图中也可以看出,类似内存条,CPU等就属于FRU,它们在服务器中通常是可以更换的。BMC会检测这些设备并保存相关的信息。当这些设备的在位情况发生变化时,BMC会发生相关的告警。

IPMI软件模块

IPMI软件模块包含一个完整的操作系统以及运行其上的IPMI应用。

目前已经有开源的OpenBMC,可以参考https://blog.csdn.net/jiangwei0512/article/details/。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210480.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午7:35
下一篇 2026年3月19日 上午7:35


相关推荐

  • 智谱 GLM-4.7-Flash 模型发布并开源,可免费调用

    智谱 GLM-4.7-Flash 模型发布并开源,可免费调用

    2026年3月12日
    4
  • MacBook如何配置环境变量

    MacBook如何配置环境变量1 终端输入 vi bash profile2 若出现 ATTENTION 提示 输入 e Editanyway 3 该文件中显示了现有的 path 输入 i 以进入 INSERT 模式 4 按照如下格式添加新的环境变量 5 esc 退出 INSERT 模式 键入 wq 保存并退出 6 终端输入 source bash profile 让环境变量生效 7 输入 echo PATH 查看是否配置成功

    2026年3月19日
    1
  • python猴子摘桃问题_python解决简单实际问题

    python猴子摘桃问题_python解决简单实际问题如何实现猴子摘香蕉问题,只需要几点即可1.猴子与箱子的位置关系2.箱子与香蕉的位置关系3.猴子有无摘到香蕉猴子摘到香蕉的前提条件1.猴子与箱子在一起2.箱子与香蕉在一起3.猴子在箱子上面4.猴子没有摘到香蕉猴子可能存在的几种位置状态1.箱子和猴子不在一起2.猴子跟箱子在一起且不跟香蕉在一起3.猴子不在箱子上并且猴子跟箱子在一起4.猴子在箱子上并且箱子跟香蕉在一起以及猴子没有摘取香蕉5.猴子在箱子上但箱子不跟香蕉在一起6.猴子取到香蕉根据上述开始

    2026年4月14日
    5
  • 激光测距的原理与应用[通俗易懂]

    激光测距的原理与应用[通俗易懂]激光,英文名称为LightAmplificationbyStimulatedEmissionofRadiation(简称LASER),意思为原子受激辐射的光,故称激光,激光的产生原理,是原子中的电子吸收能量后从低能级跃迁到高能级,再从高能级回落到低能级的时候,所释放的能量以光子的形式放出,被引诱(激发)出来的光子束(激光)。激光与普通光源相比,具有单色性、高亮度、方向性等优势,被广泛应用于工业生产和科研实验等各个领域,激光测距便是其中应用较为广泛的一项技术。1.激光测距技术的特点激光测距

    2022年6月2日
    39
  • 内存屏障 – MemoryBarrier[通俗易懂]

    内存屏障 – MemoryBarrier[通俗易懂]处理器的乱序和并发执行目前的高级处理器,为了提高内部逻辑元件的利用率以提高运行速度,通常会采用多指令发射、乱序执行等各种措施。现在普遍使用的一些超标量处理器通常能够在一个指令周期内并发执行多条指令。处理器从L1I-Cache预取了一批指令后,就会分析找出那些互相没有关联可以并发执行的指令,然后送到几个独立的执行单元进行并发执行。比如下面这样的代码(假定编译器不做优化):  z

    2022年7月12日
    22
  • 「AI新世代」OpenClaw安全问题凸显,周鸿祎直言“不能因噎废食”

    「AI新世代」OpenClaw安全问题凸显,周鸿祎直言“不能因噎废食”

    2026年3月14日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号