转:https://www.cnblogs.com/zhangxinglong/p/13292092.html

x86服务器BMC基板管理控制器介绍

在x86服务器,BIOS需要与各种硬件和芯片打交道,当然也包括BMC(Baseboard Management Controller)。

BIOS与BMC之间的通信,主要使用的是IPMI。有2个阶段,PEI和DXE(包括DXE后面的),用的是不同的IPMI函数(这点需要注意)。

虽然使用的是IPMI,但是会有两个通道,分别是KCS、BT。一般使用KCS通道。

请记住,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;

什么是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在系统中的位置大致如下图所示:

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相关的IPMI硬件模块。

IPMI硬件模块

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

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

对于相对简单的系统来说,BMC已经能够满足要求,但是当系统比较复杂,由多个子系统构成时,那么通过IPMB和“卫星”控制器,就能够更好地管理复杂系统。

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

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

MOTHERBOARD

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

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

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

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

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

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

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

IPMB

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

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

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

Non-volatile Storage

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

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

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

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

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

Sensors & Control Circuitry

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

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

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

FRU

FRU的全称是Field Replaceable Unit。

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

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

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

推荐大家一本书《ipmi-second-gen-interface-spec-v2-rev1-1.pdf》,其实就是IPMI2.0规范,里面详细讲解了IPMI,遇见相关问题可以看看

bmc控制卡_X86服务器BMC基板管理控制器介绍相关推荐

  1. bmc控制卡_服务器BMC技术调研

    BMC(Baseboard Management Controller)即基板管理控制器,是IPMI(Intelligent Platform Management Interface)协议即智能平台 ...

  2. bmc控制卡_BMC+IKVM远程管理模块

    六.管理功能 1.BMC+IKVM远程管理模块 浪潮NF5280M2采用了集成的BMC+IKVM远程管理模块,基于IPMI 2.0,支持KVM-over-IP.通过这块远程管理卡,管理员可以远程连接服 ...

  3. DELL服务器iDRAC批量管理工具介绍——RACADM

    一.介绍 在批量服务器配置的过程中我们会接触到各种服务器批量配置工具,例如华为的FusionServer uMate套件,Dell的Racadm iDRAC配置工具.这些工具可以通过命令行或者图形化界 ...

  4. 服务器文件夹怎么选,享文件加密软件怎么选?服务器共享文件夹管理软件介绍...

    在企业局域网中,通常会通过文件共享服务器来共享一些文件供局域网用户使用,而且很多共享文件都是企业的商业机密文件,在向局域网共享这些文件,便于局域网员工正常工作的同时,也增加了商业机密泄露的风险,而一旦 ...

  5. VMware 主机基板管理控制器的状态

    上周我收到一些警告一些惠普ProLiant DL380 G7的,警告信息: Host Baseboard Management Controller status The HP branded VMw ...

  6. hp服务器重置bmc,服务器BMC(带外)

    服务器除了装linux,windows系统外,相应还有一个可通过网线(服务器默认带外地址--可改)连接具体厂商服务器的BMC(Baseboard Management Controller,基板管理控 ...

  7. 为什么说BMC才是国产服务器的“命门”?

    说起BMC,很多人不太了解,毕竟一般我们的电脑上不会带BMC. 但是说起服务器,大家并不陌生.而BMC正是监控和管理服务器的关键部件. BMC全称为基板管理控制器(即Baseboard Managem ...

  8. 服务器BMC知识介绍

    在介绍BMC之前需要了解一个概念,即平台管理(platform management). 平台管理表示的是一系列的监视和控制功能,操作的对象是系统硬件.比如通过监视系统的温度,电压,风扇.电源等等,并 ...

  9. 服务器BMC与IPMI基础知识

    初识BMC与IPMI 什么是BMC? BMC全名Baseboard management controller, 是一种嵌入式管理微控制器. BMC全称为基板管理控制器(Baseboard Manag ...

最新文章

  1. 【作业】组合数据类型练习,英文词频统计实例
  2. BZOJ1798: [Ahoi2009]Seq 维护序列seq
  3. 【转】QT中窗口刷新事件的学习总结
  4. C# webbrowser 忽略页面错误
  5. Appium 元素查找(一)
  6. 带你快速玩转canvas——写个折线图
  7. MongoDB学习(黑马教程)-7-数据库MongoDB的集合关联
  8. 3ds Max2015关于注册的细节
  9. 领域建模——事件风暴
  10. php 替换某个字符,php如何将指定字符串替换?
  11. Python 结构体数组初始化代码示例
  12. Dev-C++ 一直提示源文件未编译,原因及解决办法
  13. 高德地图定位,搜索,导航功能
  14. UML10种图例之包图
  15. base64 文件格式判断 图片类型判断 js
  16. Linux - 麒麟17.04 删除桌面图标(计算机,主文件夹,回收站)与 Cairo-Dock 安装配置
  17. 投资组合分析的 GE McKinsey 矩阵
  18. 基于Patachmatch的stereo matching笔记(三):《PatchmatchNet》
  19. flask html下拉列表,用Flask框架作两个关联式的下拉式选单,抓取资料库资料
  20. 216.组合总和III 17.电话号码的字母组合

热门文章

  1. python卡尔曼滤波融合_数据融合之卡尔曼滤波示例
  2. 完整解决XMMS中文显示乱码
  3. ue4 怎么传递变量到另一个蓝图_【UE4】UI注意事项
  4. 支付宝小程序唤起独立签约
  5. 服务器导出表为dmp文件,Oracle导入导出dmp表
  6. 4.3 keras基础实例 --- 电影评价预测 --- 文本向量化 ---- K-hot编码
  7. 计算机网络 华东理工大学 第2章测试
  8. 《数据结构》实验报告六:图的表示与遍历
  9. 主流的操作系统(带你快速了解)
  10. 题解 P2026 【求一次函数解析式】