IPMI接口和BMC控制器
一、IPMI和BMC简介
IPMI(Intelligent Platform Management Interface)智能平台管理接口的核心是BMC(Baseboard Management Controller)基板管理控制器。BMC并不依赖于服务器的处理器、BIOS或操作系统,只要有烧写好固件即可工作,通常是一个安装在服务器主板上的独立板卡。IPMI良好的自治特性更克服了以往基于操作系统的管理方式所受的限制,例如操作系统不响应或未加载的情况下其仍然可以进行开关机、信息提取等操作。
通常,使用ipmitool工具通过向BMC发送命令来完成IPMI的功能。命令使用IPMI规范中规定的指令,BMC接收并在系统事件日志中记录事件消息,维护描述系统中传感器情况的传感器数据记录。
更多内容可以参考:
https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface
二、ipmitool简介
简单来说在linux下,ipmitool可以通过命令行的方式,基于ipmi协议(规范)向目标服务器BMC发送命令,来实现用户需要实现的操作,包括:开机、关机、重启、监控远程屏幕、设置临时启动项等。
三、ipmitool的下载安装:
Ubuntu:# apt install ipmitool
CentOS:# yum install ipmitool
Windows下也有相应的软件可以实现ipmi管理功能,不具细说。
四、常用命令
Linux下安装好ipmitool后,可以通过ipmitool -h查看使用方法,或通过man ipmitool的方式查看。
另外,ipmitool命令执行后功能是否能实现还依赖于目标BMC的固件,由于再实践中只对部分机型的BMC进行过尝试,所以并不确保以下命令是否适用于所有机型。
常用的命令如下:
0.查看本机BMC ip地址:
ipmitool lan print 1
1.上电:
ipmitool -I lanplus -H
ipmitool -I lanplus -H
2.下电:
ipmitool -I lanplus -H
ipmitool -I lanplus -H
3.硬重启:
ipmitool -I lanplus -H
ipmitool -I lanplus -H
4.查看电源状态:
ipmitool -I lanplus -H
ipmitool -I lanplus -H
5.查看主板状态:
ipmitool -I lanplus -H
6.设置下一次启动的默认启动项:
ipmitool -I lanplus -H<IP> -U
none : Do not change boot device order ##不更改引导设备顺序
pxe : Force PXE boot ##遍历网卡
disk : Force boot from default Hard-drive ##从磁盘启动
safe : Force boot from default Hard-drive, request Safe Mode
##强制启动从默认硬盘驱动器,要求安全模式
diag : Force boot from Diagnostic Partition ##从诊断分区启动
cdrom : Force boot from CD/DVD ##从cdrom启动
bios : Force boot into BIOS Setup ##引导到BIOS设置
floppy: Force boot from Floppy/primary removable media ##从软盘/主可移动介质上引导
7.系统文本控制台的远程访问:
ipmitool -I lanplus -H<IP> -U
说明:SOL(Serial Over LAN)通过 IPMI 固件截取数据,然后通过局域网重新发送定向到远程串行端口,实现远程访问 Windows 的紧急事件管理控制台 (EMS) 特殊管理控制台 (SAC),或访问 LINUX 串行控制台。需要注意的是,一个IPMI接口同时只允许开启一个sol。当sol被占用时,可以通过以下命令强行关闭:
ipmitool -I lanplus -H<IP> -U
也可以通过以下命令查看sol信息:
ipmitool -I lanplus -H<IP> -U
五、通过ssh登录BMC执行命令
由于实践过得机型比较少,并不确保以下操作对所有机型和固件版本都适用。
1.用ssh方式登录BMC
sshpass -p '
2.实现vmm挂载
ipmcset -t vmm -d connect -v nfs://
将iso文件通过vmm的方式模拟成cdrom挂载,这样当选择从cdrom启动后即可直接安装挂载的iso。
可以ssh登录后执行以上命令,也可以直接在本地终端通过ssh的方式执行:
sshpass -p '
3.解除虚拟光驱(vmm)的挂载
ipmcset -t vmm -d disconnect
或在本地终端执行:
sshpass -p '