本文关键词:
服务器,BMC接口,IPMI,RESTful API
一.BMC接口主要组成部分:
- IPMI驱动:负责管理BMC和系统之间的通信
- IPMI协议栈:负责处理IPMI协议相关的请求和响应
- BMC应用程序:实现BMC的功能,如监控和管理服务器
- RESTful API:提供标准的RESTful接口,供第三方应用程序调用
以下是一些常见服务器的远程管理口:
华为服务器IPMI接口---MGMT
惠普服务器IPMI接口---ILO
DELL服务器的IPMI接口---iDRAC
浪潮服务器的IPMI接口---IPMI
二、接口实现
BMC接口可以通过IPMI和RESTful API两种方式实现:
1. IPMI接口:
IPMI(Intelligent Platform Management Interface)是一种用于管理和监控服务器硬件的标准接口。IPMI接口提供了一组命令和响应,可以通过网络远程访问服务器。IPMI接口可以通过命令行工具、图形界面或API进行访问。
2. RESTful API接口
RESTful API是一种基于HTTP协议的标准接口,可以通过HTTP请求和响应进行访问。RESTful API接口提供了一组资源和操作,可以通过网络远程访问服务器。RESTful API接口可以使用任何支持HTTP协议的客户端进行访问,如浏览器、命令行工具或编程语言。以下是使用Python访问RESTful API接口获取服务器信息的示例代码:
import requests
bmc_ip = "your_bmc_ip"
username = "your_username"
password = "your_password"
url = f"https://{bmc_ip}/redfish/v1/Systems/System.Embedded.1"
response = requests.get(url, auth=(username, password), verify=False)
if response.status_code == 200:
data = response.json()
print("Server Name: ", data["Name"])
print("Manufacturer: ", data["Manufacturer"])
print("Model: ", data["Model"])
print("Serial Number: ", data["SerialNumber"])
else:
print("Error accessing BMC API")
三、常见的接口类型
BMC接口提供了多种类型的接口,可以用于不同的管理和监控任务。
1. 传感器接口
传感器接口可以用于获取服务器的温度、电压、风扇转速等硬件信息,可以用于监控服务器的状态和预测故障。
# ipmitool -H (BMC的管理IP地址) -I lanplus -U (BMC登录用户名) -P (BMC 登录用户名的密码) sensor list
一般来讲,第三列的值中有degree的,我们统计的是温度信息。
- 第一列: 传感器的名称,比如CPU1 Temp,
- 第二列: 该元件的当前温度值,注意有时候会是na,即取不到。
- 第四列: 温度的状态信息,ok表示温度正常,有时候该状态值为nr,为non-recovery,不可恢复的意思
2. 电源控制接口
电源控制接口可以用于远程管理服务器的电源,可以进行开机、关机和重启等操作。
- 远程查看开关机状态:
# ipmitool -H (BMC的管理IP地址) -I lanplus -U (BMC登录用户名) -P (BMC 登录用户名的密码) power status
- 远程开机:
# ipmitool -H (BMC的管理IP地址) -I lanplus -U (BMC登录用户名) -P (BMC 登录用户名的密码) power on
- 远程关机:
# ipmitool -H (BMC的管理IP地址) -I lanplus -U (BMC登录用户名) -P (BMC 登录用户名的密码) power off
- 远程重启:
# ipmitool -H (BMC的管理IP地址) -I lanplus -U (BMC登录用户名) -P (BMC 登录用户名的密码) power reset
3. 资源管理接口
资源管理接口可以用于管理服务器上的硬件资源,如CPU、内存、磁盘、网卡等。可以进行资源分配、监控和管理等操作。
- 通过RESTful API创建raid
POST https://device_ip/redfish/v1/Systems/1/Storages/RAIDStorage0/Volumes
请求头:
X-Auth-Token: 6599174c38c36838737d9749179e1ee1
请求消息体:
{
“Oem”:{
“Huawei”:{
“Drives”:[1,2],
“VolumeRaidLevel”:”RAID0”
}
}
}
4. 日志接口
日志接口可以用于获取服务器的系统日志和事件日志,可以用于故障排查和系统调试。
- 查看 BMC 事件日志
#ipmitool –H (BMC的管理IP地址) –I lanplus –U (BMC登录用户名) –P (BMC 登录用户名的密码) sel list - 显示所有系统事件日志
# ipmitool –H (BMC的管理IP地址) –I lanplus –U (BMC登录用户名) –P (BMC 登录用户名的密码) sel elist
- 查看上次重启的原因
# ipmitool –H (BMC的管理IP地址) –I lanplus –U (BMC登录用户名) –P (BMC 登录用户名的密码) chassis restart_cause
四、 BMC接口的使用案例
bmc+pxe+kickstart 实现服务器从raid创建到系统安装的自动化
- 设置服务器bios配置,开启网口pxe选项,设置bios启动模式uefi 或者Legacy模式,模式的选择需要pxe做相应的设置。
- 搭建pxe环境,详细配置可参考:https://www.cnblogs.com/l-hh/p/11368796.html
- 通过RESTful API 创建服务器raid
- 通过ipmitool设置pxe启动,并重启服务器电源,进入自动装机。
总结:
服务器BMC提供了许多功能,使得管理员能够更加方便地对服务器进行管理和监控。但是,管理员需要注意保护BMC的安全性,并定期检查BMC固件更新。