当前位置: 首页 > news >正文

ipmi对于统一硬件管理的意义

ipmi-智能平台管理接口是一个标准,它的实现核心是一个芯片,叫做BMC,它独立于计算机常规部件比如cpu,内存等等然而却真真的存在于主板或者刀片上。基于BMC使用ipmi,你可以不依赖操作系统对机器进行监控或者管理,甚至远程管理,管理的范畴甚至可以是电源操作,比如开机,关机,重启等,比运行于操作系统的SNMP软件要灵活很多,之所以管理的范畴如此之宽就在于BMC芯片的独立性,它独自存在于板卡上,独立供电,只要接通电源它就被供电,甚至可以使用单独的电池给与供电,这样的话,致命的停电(设想ups已损坏)之类的问题都可以被监控到。当机器还没有开启的时候,也就是cpu还没有开始运行的时候,此时假设电源已经接上了,还没有按下开机键,这个时候,BMC芯片已经开始运行了,它可以从网络接收“命令”,然后帮助管理员打开机器,这样管理员就可以在一个地方同时控制N多机器了而不必再往返于各个机房,管理员也可以通过ipmi远程查看任何机器的cpu温度之类的信息,然后根据信息反馈采取相应的动作或者什么也不做。
ipmi的设计思想其实并不是起始于服务器范畴,笔记本电脑的电源管理使用了类似的思想,那就是EC,也是一个一直在运行的嵌入式设备(EC是一个单片机,比BMC要简单得多),EC的精妙之处也在于它独立于cpu和操作系统而运行,因此可以进行定制化的电源管理操作,比如在关机的情况下充电指示灯的显示和颜色控制。传统的计算机都是按下电源cpu即开始工作,cpu停止工作的那一刻,电源即切断,其生命周期仅在于电源按键的一张一合之间,而普通电器无异,这样的机器,人工的退出必然在电源开启之后,电源开启之前必然需要人去做“第一推动”,这很不方便,特别是对于管理员来讲,如今,EC和IPMI的设计思想解决了这个问题。另一方面,操作系统内置的监控机制无法对操作系统本身的问题进行毫无偏见的监控,毕竟当局者不清,比如基于SNMP的监控程序就无法对硬件故障之类的问题进行实时监控而只能使用类似heartbeat的机制进行,如果使用ipmi,这就方便多了,毕竟BMC是以旁观者的身份站在一旁来看主板上的硬件设备和总线情况的,因此ipmi更适合硬件的管理和监控而snmp则更适合于软件,对于ipmi而言,软件的运行情况必须通过操作系统提供的接口进行监控,否则BMC是看不到的。
ipmi在linux的实现中包含三个部分,首先是硬件设备驱动,第二是操作硬件设备的字符设备,第三是一个消息处理模块,最后还包含一个watchdog。所有这些并不是使用ipmi必须的,这些仅仅是提供了一种可能性,那就是你可以在操作系统上配置ipmi芯片,这会很方便,如果你的操作系统没有这些驱动,那么就必须在bios中对ipmi芯片进行配置了。通过SMBus将BMC和网卡芯片相连接,在关机的情况下网卡依然通着电,它依然可以接收数据,接收到的数据就可以进入BMC,然后BMC根据数据指令进行操作,比如开机之类的,可以说BMC芯片中实现了一个微小的tcp/ip协议栈,正是这个协议栈最终从网线上取出了数据命令,然后执行开机动作的。这样看来,有了ipmi之后,机器只要买回来,在机房布好之后,人的介入就可以最大限度减少了,管理员可以集中控制N台机器,机器不再单独作为一台机器存在,而是和其他的机器一起组成了一个个的网络,这些网络可以组成我们的互联网,一台机器延伸到了一个网络的一分子,同样一个网络分子智能处理生命周期也从电源按键的一开一合之间延展到了机器买回来到机器被砸烂之间。

相关文章:

  • 微信JS-SDK应用DEMO
  • Javascript 页面刷新
  • unix编程艺术中的17点编程原则--设计开发者的至高准则
  • Intel系列CPU的流水线技术的发展
  • 实验二 作业调度模拟程序
  • Spring源码学习(二)------ AOP
  • 2,3,4,11章
  • 职场官话
  • 团队项目冲刺第五天
  • 用borland together反向工程生成sequence图的方法
  • C字符数组的处理
  • p2p终结者破解版下载 4.15 2011最新版
  • mysql简单操作(实时更新)
  • 更新-清理sga组件
  • [BZOJ1178][Apio2009]CONVENTION会议中心
  • 2017-08-04 前端日报
  • Consul Config 使用Git做版本控制的实现
  • Effective Java 笔记(一)
  • Java 多线程编程之:notify 和 wait 用法
  • 工作中总结前端开发流程--vue项目
  • 前端工程化(Gulp、Webpack)-webpack
  • 入手阿里云新服务器的部署NODE
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 自制字幕遮挡器
  • C# - 为值类型重定义相等性
  • MPAndroidChart 教程:Y轴 YAxis
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ###项目技术发展史
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (39)STM32——FLASH闪存
  • (4.10~4.16)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (五)网络优化与超参数选择--九五小庞
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)原始图像数据和PDF中的图像数据
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .bashrc在哪里,alias妙用
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 的程序集加载上下文
  • .net 调用php,php 调用.net com组件 --
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .NET连接MongoDB数据库实例教程
  • @property @synthesize @dynamic 及相关属性作用探究
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [Android实例] 保持屏幕长亮的两种方法 [转]
  • [APIO2012] 派遣 dispatching
  • [CF494C]Helping People
  • [Delphi]一个功能完备的国密SM4类(TSM4)[20230329更新]