BMC(Baseboard Management Controller,基板管理控制器)是服务器硬件的一个独立管理模块,嵌入在主板中,用于实现服务器的监控和远程管理,BMC可以独立于操作系统运行.
通过IPMI工具(Intelligent Platform Management Interface,智能平台管理接口)实现对服务器的管理、监控和诊断,甚至在操作系统崩溃的情况下也能对设备进行控制。
IPMI和BMC的结合为服务器管理提供了可靠的远程控制方案,通过IPMI工具可以轻松实现BMC用户密码的重置、网络参数的配置以及服务器的远程开关机等操作。这种灵活性特别适用于远程办公或数据中心环境,使服务器管理变得更高效、更简便。
IPMI工具安装
apt-get install ipmitool #Debian/Ubuntu 系统
yum install ipmitool #CentOS/RHEL 系统
实操一、使用IPMI重置BMC用户密码
IPMI工具可以帮助重置BMC用户的密码。首先,需要列出BMC中已存在的用户,然后重置目标用户的密码
步骤一、查看BMC用户列表,此命令列出所有BMC的用户
ipmitool user list 1
步骤二、重置用户密码:
ipmitool user set password <userid> <new_password>
将userid替换为目标用户的ID,new_password替换为新密码,即可完成密码重置。
实操二、使用IPMI配置BMC的静态IP
可以通过设置BMC的网络参数,为BMC配置静态IP地址,以确保其在网络中的固定地址。
传统方式都是通过bios进行设置,每次开机都要等很久
ipmitool lan set 1 ipsrc static # 设置IP为静态
ipmitool lan set 1 ipaddr <BMC_IP> # 设置BMC的IP地址
ipmitool lan set 1 netmask <子网掩码> # 设置子网掩码
ipmitool lan set 1 defgw ipaddr <网关地址> # 设置网关
ipmitool lan print 1 # 查看配置情况
实操三、IPMI实现BMC和主机控制操作
IPMI工具的核心功能之一是通过BMC实现对服务器的远程控制。以下是一些常用命令:
- 查看主机电源状态:
在实际管理过程中,可以配置一台跳板机,通过如下命令对机器批量进行开机等运维操作
ipmitool -I lanplus -H <BMC_IP> -U <username> -P <password> power on
-H
:BMC管理IP地址-U
:BMC用户名-P
:BMC密码
常见操作
# 查看电源状态
ipmitool power status
# 执行开机操作
ipmitool power on
# 执行关机操作
ipmitool power off
# 硬重启
ipmitool power reset
# 软重启:
ipmitool power soft(类似轻按电源按钮)
- 重启BMC
冷重启会重新初始化BMC
ipmitool mc reset cold
此命令重启BMC控制器,但不会影响主机操作系统
热重启会重新加载BMC服务,但不会重新初始化硬件,相当于软重启
ipmitool mc reset warm
冷重启:适用于BMC无法响应、卡死、或需要重新初始化的情况。
热重启:适用于轻微故障、配置修改后或服务刷新时使用,影响较小。
实操四、ipmitool查看服务器基本信息
# 查看BMC硬件信息,BMC的固件版本、制造商等基本信息
ipmitool mc info
# 查看系统信息,显示服务器整体状态,包括电源状态、主板温度、电池状态等
ipmitool chassis status
# 查看所有传感器的状态,硬件传感器的数据,如CPU温度、风扇转速、电压等。
传感器状态中出现Non-Recoverable、Critical或Warning标识,代表有警告或故障
ipmitool sensor
实操五、ipmitool实现问题定位
使用ipmitool可以查看服务器的系统事件日志(System Event Log, SEL),这些日志记录了服务器硬件层的各种事件,例如硬件故障、重启记录、电源状态等。以下是使用ipmitool查看服务器事件的常用命令。
查看系统重启原因
ipmitool chassis restart_cause
查看系统事件日志
ipmitool sel list
此命令列出服务器的系统事件日志,显示日志中的每一条事件记录,通常包括事件时间戳、事件类型、描述等信息。
常用命令
# 查看系统事件日志
ipmitool sel list
# 查看系统事件日志详情
# 统计系统事件日志数量
ipmitool sel info
# 导出系统事件日志
ipmitool sel save /path/to/sel_log.txt
# 清除系统事件日志
ipmitool sel clear
# 查看系统事件日志事件
ipmitool sel time get