BMC:是企业服务器主板上的一个独立微控制器。它拥有自己的处理器、内存和网络接口,完全独立于服务器的主CPU和操作系统。它的主要作用是提供带外管理(Out-of-Band Management)——即使服务器处于关机状态、操作系统崩溃或没有安装操作系统,只要服务器插上了电源线,管理员就可以通过网络连接到BMC来监控、控制和修复这台服务器。
OpenBMC
OpenBMC一个开源的Linux发行版,专门设计用于运行在基板管理控制器(BMC)上
常用操作
Factory reset:恢复出厂设置
KVM:远程桌面
Video Log:记录服务器崩溃或特定事件前后的屏幕录像或截图
Firmware:用于管理和升级服务器硬件的固件
Reboot BMC:仅重启 BMC 芯片本身,这不会影响正在运行的服务器主机或其操作系统
SOL console:提供对服务器串行端口的远程文本级别访问
Server power operations:服务器电源操作
Virtual media: 允许你将本地电脑上的ISO镜像文件(如Windows或Linux的安装镜像)通过网络”挂载”到这台远程服务器上。服务器会将其识别为一个插入的USB光驱。这是远程重装操作系统最常用的方法
Backup and Recovery:用于导出和保存当前的BMC配置和设置,以便在系统发生故障或更换主板后,能够快速将配置恢复到正常状态
BMC IPMI 常用指令
想要在BMC终端命令行使用指令可以用以下两种方式
1.切换到超级管理员
cat /etc/passwd # 查找UID为0的超级用户 su - superuser # 切换2. 直接使用指令(每次都敲很麻烦)
ipmitool -I lanplus -H <IP地址> -U <用户名> -P <密码> <命令>远程电源控制类
ipmitool power status # 查看电源状态 ipmitool power on # 开机 ipmitool power off # 关机 ipmitool power reset # 重启 ipmitool power cycle # 也是重启,但是从掉电到上电有1秒的间隔,一般用于严重司机的情况读取系统状态类
ipmitool sensor list # 显示系统所有传感器列表 ipmitool sdr list # 读取传感器的实时数据 ipmitool fru list # 显示系统所有现场可替代器件的列表系统日志类
ipmitool sel elist # 显示所有系统事件日志 ipmitool sel clear # 删除所有系统事件日志 ipmitool sel delete <ID> # 根据ID删除日志 ipmitool sel time get # 显示当前BMC的时间 ipmitool sel time set xxx # 设置当前BMC的时间启动设置类
ipmitool chassis bootdev bios # 重启后停在BIOS 菜单 ipmitool chassis bootdev pxe # 设置下一次启动为网络(PXE)模式,常用于自动部署系统正常服务器启动时,是从本地硬盘启动,主板直接读取硬盘里已经安装好的系统内核与文件加载到内存中运行。 但如果通过 PXE 启动,则是绕过硬盘,网卡直接向中央装机服务器(PXE Server)请求网络引导文件和临时内核。加载到内存运行后,再自动从服务器上拉取系统安装包文件,完成操作系统的网络下发和本地重新安装
系统相关命令
ipmitool bmc info # 显示BMC版本信息 ipmitool bmc reset cold # BMC冷启动 ipmitool bmc reset warm # BMC热启动用户管理类
ipmitool user list <ChannelNo> # 查看指定通道的用户 ipmitool user set name <id> <username> # 增加用户 ipmitppl user set password <id> <password> # 设置密码 ipmitool user set priv <id> <privilege level> <ChannelNo> # 修改用户权限 ipmitool user enable/disable <id> # 启用或禁用用户IP网络设置
ipmitool lan print <ChannelNo> # 查看网络信息 ipmitool lan set <ChannelNo> ipsrc <static/dhcp> # 修改ip为静态还是dhcp模式 ipmitool lan set <ChannelNo> ipaddr <IPAddress> # 修改ip地址 ipmitool lan set <ChannelNo> netmask <NetMask> # 修改子网掩码 ipmitool lan set <ChannelNo> defgw ipaddr <默认网关> # 修改默认网关SOL功能
ipmitool sol set volatile-bit-rate <9.6/19.2/38.4/57.6/115.2> # 设置SOL串口波特率 ipmitool -H (BMC的管理IP地址) -I lanplus -U (BMC登录用户名) -P (BMC 登录用户名的密码) sol activate # 打开SOL ipmitool -H (BMC的管理IP地址) -I lanplus -U (BMC登录用户名) -P (BMC 登录用户名的密码) sol deactivate # 关闭SOL设置BMC的iptables防火墙
# 设置某一段ip可以访问bmc ipmitool raw 0x32 0x76 0x01 0x01 ip1 ip2 ipmitool raw 0x32 0x76 0x09 # 设置某一个ip可以访问bmc ipmitool raw 0x32 0x76 0x00 0x01 ip ipmitool raw 0x32 0x76 0x09 # 取消设置 ipmitool raw 0x32 0x76 0x08 # 获取防火墙设置 ipmitool raw 0x32 0x76 0x01 0x00 # 阻止/开启某个端口 ipmitool raw 0x32 0x76 0x02 0x00/0x01 0x00 <portno> # 取消某个端口的设置 ipmitool raw 0x32 0x76 0x06 0x00/0x01 0x00 <portno>