BMC简介

什么是BMC


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

平台管理表示的是一系列的监视和控制功能,操作的对象是系统硬件。比如通过监视系统的温度,电压,风扇、电源等等,并做相应的调节工作,以保证系统处于健康的状态。

当然如果系统真的不正常了,也可以通过复位的方式来重新启动系统。

同时平台管理还负责记录各种硬件的信息和日志记录,用于提示用户和后续问题的定位。

以上的这些功能可以集成到一个控制器上来实现,这个控制器被称为基板管理控制器(Baseboard Manager Controller,简称BMC)。

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

一般我们的电脑不会带BMC,因为用处不大,一些温度、电源等的管理,CPU来控制就够了。

但是对于系统要求高的设备,比如服务器,就会用到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是其中最重要的一个部分,此外还有一些”卫星“控制器通过IPMB与BMC相连,这些”卫星“控制器一般控制特定的设备。

IPMB全称Intelligent Platform Management Bus,是一种基于I2C的串行总线,它用于BMC与”卫星“控制器的通信,其上传递的是IPMI命令。下面的图描述了与IPMI有关的各个模块:

在这里插入图片描述

 

智能平台管理接口 (IPMI) 是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。IPMI 信息通过基板管理控制器 (BMC)(位于 IPMI 规格的硬件组件上)进行交流。使用低级硬件智能管理而不使用操作系统进行管理,具有两个主要优点: 首先,此配置允许进行带外服务器管理;其次,操作系统不必负担传输系统状态数据的任务。用户可以利用IPMI监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。

IPMI的核心是一个专用芯片/控制器(叫做服务器处理器或基板管理控制器(BMC)),其并不依赖于服务器的处理器、BIOS或操作系统来工作,可谓非常地独立,是一个单独在系统内运行的无代理管理子系统,只要有BMC与IPMI固件其便可开始工作,而BMC通常是一个安装在服务器主板上的独立的板卡。IPMI良好的自治特性便克服了以往基于操作系统的管理方式所受的限制,例如操作系统不响应或未加载的情况下其仍然可以进行开关机、信息提取等操作。

在工作时,所有的IPMI功能都是向BMC发送命令来完成的,BMC接收并在系统事件日志中记录事件消息,维护描述系统中传感器情况的传感器数据记录。

一般来说,BMC具有以下功能:

1.通过系统的串行端口进行访问

故障日志记录和 SNMP 警报发送
3.访问系统事件日志 (System Event Log ,SEL) 和传感器状况

4.控制包括开机和关机

5.独立于系统电源或工作状态的支持

6.用于系统设置、基于文本公用程序和操作系统控制台的文本控制台重定向

而通过IPMI ,用户可以主动监测组件的状况,以确保不超出预置阈值,例如服务器温度。这样,通过避免不定期的断电,协助维护了 IT 资源的运行时间。 IPMI的预告故障能力也有助于 IT 周期的管理。通过检查系统事件日志 (SEL),可以更轻松的预先判定故障组件。

只要将服务器接入网络并且没有断开服务器的电源,不管服务器的处于何种状态(开机、关机、重启),都可以允许用户通过网络进行远程管理。
 

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带外管理有一定的了解

  • 6
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BMC(Bounded Model Checking)是一种用于软件验证的形式化技术,可以自动地对给定的软件模型进行验证。它通过将软件模型转化为有限状态机,并生成一个状态转换图来表示这个软件模型。然后,BMC会使用约束求解器来搜索状态转换图中的路径,以找到满足特定性质的路径。这些性质可以是关于软件的正确性、安全性以及其他属性的断言。 Docker是一种开源的容器化平台,可以将应用程序及其依赖项打包成一个独立、可移植的容器。这种容器化的方式使得应用程序在不同的环境中可以快速部署和运行,极大地提高了开发和运维的效率。 将BMC和Docker结合使用,可以将软件验证的过程更加高效和可靠。在传统的软件验证中,使用BMC需要在本地或者服务器上配置特定的环境,而且可能会面临依赖项、版本兼容性等问题。但是,通过将BMC工具和被验证的软件模型打包成Docker容器,可以将验证环境与软件模型一起打包,并在不同的环境中进行部署和运行。 使用BMC Docker可以带来以下好处: 1. 环境一致性:由于使用了Docker容器,可以确保在不同的环境中运行BMC时的环境一致性,避免了由环境差异导致的验证结果不准确问题。 2. 可移植性:使用Docker容器打包BMC工具和软件模型,可以实现在不同的平台和操作系统上进行验证。 3. 提高效率:通过将BMC工具和软件模型打包成容器,可以在需要验证的时候快速部署,并且可以并行地对多个模型进行验证,提高了验证的效率。 4. 便于共享和复用:将BMC工具和软件模型打包成Docker容器后,可以方便地共享和复用,提高了软件验证的可重复性。 综上所述,BMC Docker的使用可以提高软件验证的效率和可靠性,为软件开发人员提供更好的验证手段,同时也推动了软件验证技术的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值