去年冬天公司机房的市电切换出了故障,整层楼直接停了电。我当时人在外地,客户电话一个接一个打进来,说官网打不开了、订单系统也连不上。手边没有机房钥匙,人也赶不过去。折腾了两个多小时,最后是靠服务器主板上那块平时压根没人搭理的带外管理卡IPMI把两台机器远程点亮的。那天晚上我才真正想明白:IPMI 这东西平时一点存在感都没有,但它决定了你出大事那天,是「跑半小时的车」还是「跑两小时的路」。
服务器断电、人不在机房就彻底没辙了?UltimateShell(远程服务器管理工具箱)(远程服务器管理工具,v3.58.33 官方版)可以把多台服务器的连接信息集中收在一个工具箱里,常用会话、命令模板、多窗口切换都留着,救火的时候不用在电脑里翻十几个终端窗口乱找,省下来的全是抢修时间。
下面就把这次机房断电的完整处置过程、我理解的 IPMI 原理,以及到底哪些机器值得配带外口,一次说清楚。
一、IPMI 和 BMC 到底是一回事吗
IPMI(Intelligent Platform Management Interface,智能平台管理接口)是一套硬件级管理标准;BMC(Baseboard Management Controller,基板管理控制器)是跑着这套固件的那颗独立芯片或者小板卡。商家嘴里说的「带外管理卡」「IPMI 卡」「BMC 卡」,基本指的是同一个东西:服务器主板上一块独立于操作系统存在的管理控制器。
关键在于它独立于操作系统。系统装在硬盘上,跑在 CPU 和内存里;BMC 则有自己的处理器、自己的网卡、自己的供电回路和一颗小电池。也就是说,哪怕操作系统彻底崩了、系统盘挂了、连市电都断了,只要 BMC 这条供电还在、管理口还通着电,它就还是活的。
所以 IPMI 能干的事,本质上是「绕过操作系统直接指挥硬件」:远程开关机、远程看 BIOS 和开机自检画面、远程挂载 ISO 重装系统、读取温度风扇电源这些硬件传感器、还有虚拟介质。软件层面它提供的是 KVM over IP,可以像操作自己笔记本一样看到开机画面并且敲键盘,不用跑 VNC 也不用装任何客户端。
二、那次断电,具体发生了什么
先说当晚的坑,这套流程后来被我复盘成了一份 checklist。
第一个坑,是一开始默认「断电等于服务器挂了」。市电断了但机房的 UPS 撑住了大概二十分钟,之后 UPS 也切到电池组上,再往后彻底没电。等我反应过来联系机房重启时,UPS 已经放空,机器属于硬关机状态不是操作系统正常关机,而是瞬间掉电。这种情况下系统盘上没写完的日志、没落盘的数据全丢,只能走带外的强制开机,起来之后再手动做文件系统检查。
第二个坑,是根本不知道带外口的 IP 在哪。带外管理走的是独立网段,和业务网完全隔离,租机的时候客服只会把它塞在工单附件或者另发一封邮件里,很多人从头到尾不会点开看。那晚我做的第一件事,就是在工单和邮件里翻 IPMI 的账号密码、带外口的 IP 和网关地址。
第三个坑,是带外口连不上。带外网段在机房内部一般做了 ACL,只有指定跳板机或者 VPN 网段才能访问。我是临时申请了跳板机权限才进去的,中间又折腾了二十分钟。
三、远程开机的完整流程
步骤其实很固定,我按顺序走了四步,这里原样记录下来:
第一步,确认带外口还通电。看 BMC 管理口旁边的指示灯是否是活的,灯亮说明芯片还有电。灯不亮的话,多半是 BMC 电池或者背板供电出了问题,那机器只能等人工到场。
第二步,跟 BMC 握手。用 ipmitool 或者直接浏览器访问带外 IP,BMC 一般同时提供 IPMI over IP 和 Web 控制台两条路。我先执行一条 mc info 命令,确认能拿到 BMC 版本和固件信息再往下走。
第三步,远程开机。命令是 ipmitool -I lanplus -H 带外IP -U 账号 chassis power on。硬关机的机器这里有个坑:BIOS 里的断电恢复策略,有些机型默认是「保持上次状态」,有些默认是「保持关闭」,你按下开关机器也不会自己亮,得先进 BIOS 改成通电自动开机或者跟随上次状态。
第四步,系统起来之后善后。把数据盘挂载上,检查文件系统完整性,确认业务进程拉起来。我那两台机器里有一台因为硬关机,MySQL 启动时直接报 InnoDB 页损坏,只能靠备份恢复,光这一台就又折腾了四十分钟。
整晚下来,从接到第一个客户电话到两台机器重新对外服务,一共两个多小时。这两个小时里我唯一能做的就是拿手机开热点、用笔记本连跳板机干活。如果那天断电发生在白天、我人就在现场,可能二十分钟就搞定了。这就是带外管理真正的价值:它买的是时间,也买的是选择权。
四、哪些机器值得专门配一条带外口
按我自己的经验排个序:
第一类,放在别人机房的物理托管机。IDC 托管最怕的就是人不在现场,带外口是唯一的兜底手段,花几十块钱加一张卡换一份从容,很划算。
第二类,跑数据库和文件服务的机器。数据在本地,硬关机风险最高,一旦需要重装系统或者挂载救援盘,远程开关机的价值直接翻倍。
第三类,自己组装的服务器、或者矿机改造上架的机器。家用主板基本不带 BMC 控制器,得单独买一张带外管理卡,不过现在这种卡价格已经很透明了。
第四类,云主机。云上大部分物理机没有独立带外口,云厂商用虚拟化层做了等效功能关机、重置、救援模式、VNC 控制台,底层思路和 IPMI 是一样的,只是被包装成了更简单的按钮。
五、五个容易被忽略的细节
1)带外口一定要限制来源 IP。只允许跳板机或者固定办公出口访问。BMC 这类设备历史上出过不少弱口令和命令执行漏洞,带外口直接裸奔在公网上,基本等于把机器送人。
2)改掉出厂账号密码。BMC 的默认账号密码是公开资料里一查就有的,我做的第一件事就是改密码,同时把 Web 控制台从公网映射里摘掉,只走跳板机。
3)BIOS 里的开机策略一定要提前设。设置成通电自动开机或者跟随上次状态,否则远程按电源根本不起作用,这个坑我是踩过才记住的。
4)带外网段要和业务网隔开。如果租来的机器带外口和业务口共用一个地址,网卡驱动一旦异常,带外也跟着挂,等于白花钱。
5)把账号和演练做在平时。IPMI 的账号密码、BMC 固件版本、管理口 IP 全部写进密码管理器,每半年实操一次远程开机。真到断电那天翻资料找密码,比断电本身还让人崩溃。
六、我的配置建议
如果你手上有物理机要托管或者跑重要服务,我会这么配:一条独立的带外网段,带外口和业务网络逻辑或物理隔离;带外口只放行跳板机 IP;改掉默认账号密码并限制 Web 控制台来源;BIOS 里设置 AC Restore 为通电自动开机;再补一条外部监控,监控带外口本身是否可 ping带外口挂了往往意味着 BMC 供电或固件出了问题,这比业务监控更早给出预警。
最后提醒一句,IPMI 不是万能药。它解决的是「机器还活着但人不在现场」这件事,不解决磁盘损坏,不解决硬件跑路,也不解决机房整层被拆。所以日常的备份、监控、异地容灾该做还得做,带外管理只是最后那根救命稻草。
如果你手上也管着一批远程服务器,建议先把工具和凭证准备好,别等出事那天才想起还有这条路可以走。


喜欢
顶
难过
囧
围观
无聊




