IPMI

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
IPMI(Intelligent Platform Management Interface)

智能平台管理接口 (IPMI) 是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。IPMI 信息通过基板管理控制器 (BMC)(位于 IPMI 规格的硬件组件上)进行交流。使用低级硬件智能管理而不使用操作系统进行管理,具有两个主要优点: 首先,此配置允许进行带外服务器管理;其次,操作系统不必负担传输系统状态数据的任务。IPMI的核心是一个专用芯片/控制器(叫做服务器处理器或基板管理控制器(BMC)),其并不依赖于服务器的处理器、BIOS或操作系统来工作,可谓非常地独立,是一个单独在系统内运行的无代理管理子系统,

IPMI功能:

监控服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等;

可以通过串口、Modem以及Lan等远程环境管理服务器系统,如远程开关机;

IPMITOOL



ipmitool 是一种可用在 linux 系统下的命令行方式的 ipmi 平台管理工具,它支持 ipmi 1.5 规范(最新的规范为 ipmi 2.0),通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。使用:



ipmitool –I open sensor list #命令可以获取传感器中的各种监测值和该值的监测阈值,包括(CPU温度,电压,风扇转速,电源调制模块温度,电源电压等信息。
ipmitool –I open sensor thresh #设置ID值等于id的监测项的各种限制值。
ipmitool –I open chassis status #查看底盘状态,其中包括了底盘电源信息,底盘工作状态等
ipmitool –I open chassis restart_cause #查看上次系统重启的原因
#远程电源管理

ipmitool -I lanplus -H $oob_ip -U root -P 密码 power off (硬关机,直接切断电源)
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power soft (软关机,即如同轻按一下开机按钮)
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power on (硬开机)
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power reset (硬重启)
ipmitool -I lanplus -H $oob_ip -U root -P 密码 power status (获取当前电源状态)
ipmitool -I lanplus -H $oob_ip -U root -P 密码 chassis power cycle
(注意power cycle 和power reset的区别在于前者从掉电到上电有1秒钟的间隔,而后者是很快上电)
#远程引导(当次生效)

ipmitool -I lan -H 服务器地址 -U root -P passwd chassis bootdev pxe (网络引导)
ipmitool -I lan -H 服务器地址 -U root -P passwd chassis bootdev disk (硬盘引导)
ipmitool -I lan -H 服务器地址 -U root -P passwd chassis bootdev cdrom (光驱引导)
#读取系统状态类

ipmitool sensor list  #显示系统所有传感器列表
ipmitool fru list   #显示系统所有现场可替代器件的列表
ipmitool sdr list   #显示系统所有SDRRepository设备列表 
ipmitool pef list #显示系统平台时间过滤的列表
#系统日志类

ipmitool sel elist   #显示所有系统事件日志
ipmitool sel clear   #删除所有系统时间日志
ipmitool sel delete ID #删除第ID条SEL
ipmitool sel time get  #显示当前BMC的时间
ipmitool sel time set XXX #设置当前BMC的时间
#启动设置类

ipmitool chassis bootdev bios #重启后停在BIOS 菜单
ipmitool chassis bootdev pxe #重启后从PXE启动
#系统相关的命令

ipmitool mc info #显示BMC版本信息
ipmitool bmc reset cold #BMC 热启动
ipmitool bmc reset warmBMC #冷启动
#网络接口相关命令

ipmitool lan print 1 #显示channel1的网络配置信息
ipmitool lan set 1ipaddr 10.32.2.2 #设置channel1的IP地址
ipmitool lan set 1 netmask 255.255.0.0 #设置channel1的netmask
ipmitool lan set 4 defgw ipaddr255.255.0.254 #设置channel4的网关
ipmitool lan set 2 defgw macaddr <macaddr> #设置channel2的网关mac address
ipmitool lan set 2 ipsrc dhcp #设置channel2的ip 源在DHCP
ipmitool lan set 3 ipsrc static #设置channel2的ip是静态获得的
#通道相关命令

ipmitool channel info #显示系统默认channel
ipmitool channel authcap channel-number privilege  #修改通道的优先级别
ipmitool channel getaccess channel-number user-id #读取用户在通道上的权限
ipmitool channel setacccess channel-number user-id callin=on ipmi=on link=onprivilege=5 #设置用户在通道上的权限
#看门狗相关命令

ipmitool mc watchdog get #读取当前看门狗的设置
ipmitool watchdog off #关掉看门狗
ipmitool watchdog reset  #在最近设置的计数器的基础上重启看门狗
#用户管理相关命令

ipmitool user list chan-id #显示某通道上的所有用户
ipmitool set password <user id>[<password>] #修改某用户的密码
ipmitool disable <user id>  #禁止掉某用户
ipmitool enable <user id>  #使能某用户
ipmitool priv <user id> <privilegelevel> [<channel number>] #修改某用户在某通道上的权限
ipmitool test <user id> <16|20>[<password]> #测试用户

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
在 Linux 中,您可以使用 IPMI 工具来重置 IPMI 设置并更改用户名、密码以及设置 IP 为动态获取。以下是使用常见的 ipmitool 命令行工具执行此操作的步骤:

1. 打开终端或 SSH 连接到运行 IPMI 的 Linux 服务器。
2. 确保已安装 ipmitool。如果未安装,请使用适合您的 Linux 发行版的包管理器进行安装。例如,在 Ubuntu 上,可以使用以下命令安装:

```shell
sudo apt-get install ipmitool
```

3. 使用以下命令检查 IPMI 的当前网络设置:

```shell
sudo ipmitool lan print
```

4. 找到与静态 IP 地址相关的字段,以及用户名和密码的字段。

5. 使用以下命令将 IPMI 设置为动态获取 IP 地址的方式(使用 DHCP):

```shell
sudo ipmitool lan set 1 ipsrc dhcp
```

请注意,将上述命令中的 "1" 替换为您的通道号。

6. 使用以下命令更改 IPMI 的用户名和密码:

```shell
sudo ipmitool user set name 2 root
sudo ipmitool user set password 2 1234
```

请注意,将上述命令中的 "2" 替换为您要更改的用户名的 ID。如果不知道 ID,可以使用以下命令查看用户列表:

```shell
sudo ipmitool user list
```

7. 完成后,使用以下命令重新启动 IPMI 以使更改生效:

```shell
sudo ipmitool mc reset cold
```

请注意,这将断开与 IPMI 的连接并导致一些时间的中断。

完成这些步骤后,IPMI 设置将被重置,用户名将更改为 "root",密码将更改为 "1234",并且 IP 将以动态方式获取。

使用以下命令将 IPMI 设置为静态 IP 地址(使用您的具体 IP、网关和子网掩码):
sudo ipmitool lan set 1 ipsrc static
sudo ipmitool lan set 1 ipaddr <静态IP地址>
sudo ipmitool lan set 1 netmask <子网掩码>
sudo ipmitool lan set 1 defgw ipaddr <网关地址>
替换单词 <静态IP地址>、<子网掩码> 和 <网关地址> 为您希望设置的对应值。

执行完上述命令后,IPMI 的用户名和密码将被更改,IP 地址将被设置为静态。

请注意,这些命令可能需要管理员或 Root 权限才能执行。为了安全起见,确保将密码设置为强密码,并妥善保管登录凭据。

Painet系统默认已安装ipmitool工具,启动即可使用

1
systemctl start ipmievd

IPMI常用参数参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
usage: ipmitool [options...] <command>
-h This help
-V Show version information
-v Verbose (can use multiple times)
-c Display output in comma separated format
-d N 指定要使用的 /dev/ipmiN 设备(默认值 = 0)
-I intf 指定要使用的接口
-H hostname LAN 接口的远程主机名
-p port 远程 RMCP 端口 [默认=623]
-U username 远程会话用户名
-f file 从文件中读取远程会话密码
-z size 更改通信通道 (OEM) 的大小
-S sdr 将本地文件用于远程 SDR 缓存
-D tty:b[:s] 指定串行设备、要使用的波特率,并且可以选择指定接口是系统接口
-4 仅使用 IPv4
-6 仅使用 IPv6
-a 提示输入远程密码
-Y 提示输入用于 IPMIv2 身份验证的 Kg 密钥
-e char 设置 SOL 转义字符
-C ciphersuite lanplus接口使用的密码套件
-k key 使用 Kg 密钥进行 IPMIv2 身份验证
-y hex_key 使用十六进制编码的 Kg 密钥进行 IPMIv2 身份验证
-L level 远程会话权限级别 [default=ADMINISTRATOR] 在 RAKP1 中附加一个“+”以使用名称/权限查找
-A authtype 强制使用认证类型 NONE、PASSWORD、MD2、MD5 或 OEM
-P password 远程会话密码
-E 从 IPMI_PASSWORD 环境变量中读取密码
-K 从 IPMI_KGKEY 环境变量中读取 kgkey
-m address 设置本地IPMB地址
-b channel 设置桥接请求的目标通道
-t address 将请求桥接到远程目标地址
-B channel 设置桥接请求的传输通道(双桥)
-T address 设置桥请求的中转地址(双桥)
-l lun 为原始命令设置目标 lun
-o oemtype OEM 设置(使用“列表”查看可用的 OEM 类型)
-O seloem 使用文件进行 OEM SEL 事件描述
-N seconds 指定 lan [default=2] / lanplus [default=1] 接口的超时时间
-R retry 设置lan/lanplus接口的重试次数[默认=4]
-I参数的选项
Interfaces:
open Linux OpenIPMI 接口 [默认]
imb 英特尔 IMB 接口
lan IPMI v1.5 LAN 接口
lanplus IPMI v2.0 RMCP+ LAN 接口
serial-terminal 串行接口,终端模式
serial-basic 串行接口,基本模式
usb IPMI USB 接口(AMI 设备的 OEM 接口)
命令:
raw 发送 RAW IPMI 请求并打印响应
i2c 发送 I2C 主机写-读命令并打印响应
spd 从远程 I2C 设备打印 SPD 信息
lan 配置 LAN 通道
chassis 获取机箱状态并设置电源状态
power 机箱电源命令的快捷方式
event 向 MC 发送预定义的事件
mc 管理控制器状态和全局启用
sdr 打印传感器数据存储库条目和读数
sensor 打印详细的传感器信息
fru 打印内置 FRU 并扫描 SDR 以获取 FRU 定位器
gendev 读/写设备与通用设备定位器 sdr 相关联
sel 打印系统事件日志 (SEL)
pef 配置平台事件过滤 (PEF)
sol 配置和连接 IPMIv2.0 Serial-over-LAN
tsol 配置并连接 Tyan IPMIv1.5 Serial-over-LAN
isol 配置 IPMIv1.5 Serial-over-LAN
user 配置管理控制器用户
channel 配置管理控制器通道
session 打印会话信息
dcmi 数据中心管理界面
nm 节点管理器界面
sunoem 用于 Sun 服务器的 OEM 命令
kontronoem 用于控创设备的 OEM 命令
picmg 运行 PICMG/ATCA 扩展 cmd
fwum 使用 Kontron OEM 固件更新管理器更新 IPMC
firewall 配置固件防火墙
delloem 戴尔系统的 delloem OEM 命令
shell 启动交互式 IPMI shell
exec 从文件中运行命令列表
set shell 和 exec 的运行时变量
hpm 使用 PICMG HPM.1 文件更新 HPM 组件
ekanalyzer 使用 FRU 文件运行 FRU-Ekeying 分析器
ime 更新英特尔管理引擎固件
vita 运行 VITA 46.11 扩展 cmd
lan6 配置 IPv6 LAN 通道

ipmi shell

ipmitool -I open shell

ipmitool常用方法

ipmitool -H (ipmi卡的IP地址) -I lanplus -U (ipmi卡的登录用户名) -P (ipmi卡的登陆密码) [命令]

IPMITool更改登陆密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#查看用户表
ipmitool user list 1

#示例:
[root@e75933f5 ~]# ipmitool user list 1
ID Name Callin Link Auth IPMI Msg Channel Priv Limit
1 true true true NO ACCESS
2 root true true true ADMINISTRATOR
3 true true true NO ACCESS
4 true true true NO ACCESS
5 true true true NO ACCESS
6 true true true NO ACCESS
7 true true true NO ACCESS
8 true true true NO ACCESS
9 true true true NO ACCESS
10 true true true NO ACCESS
11 true true true NO ACCESS
12 true true true NO ACCESS
13 true true true NO ACCESS
14 true true true NO ACCESS
15 true true true NO ACCESS
16 true true true NO ACCESS
17 true true true NO ACCESS

#可以看到root用户的ID是2
#更换ID 2 的密码
ipmitool user set password 2 "Huawei12#$"

#示例:
[root@e75933f5 ~]# ipmitool user set password 2 "Huawei12#$"
Set User Password command successful (user 2)

IPMITool设置风扇转速

ipmitool有通过串口、USB;通过IP、RMCP等多种远程操控方式,如果像是DELL、HUAWEI这种机架式服务器的话,在/dev/目录下面可以看到/dev/ipmi0这个块设备,就可以直接通过他来向ipmi发送命令

1
2
3
#查看风扇转速
ipmitool sensor | grep "Fan\|FAN"

华为

1
2
3
4
5
6
7
8
9
10
11
#以下为SSH iBMC内置命令
查询当前风扇工作模式
iBMC:/->ipmcget -d faninfo
Current mode: auto

模式为手动模式,100000000秒钟后转换成自动模式
ipmcset -d fanmode -v 1 100000000

修改手动模式下风扇的转速为30%
Ipmcset -d fanlevel -v 40

DELL

1
2
3
4
5
6
7
8
9
# 关闭自动风扇控制
ipmitool raw 0x30 0x30 0x01 0x00

#调节风扇转速,手动调节之前需要先关闭自动风扇控制
#其中最后一位为转速百分比的16进制,例如0x14代表20%,0x32为50%,0x64为100%(最低速度就是20%)
ipmitool raw 0x30 0x30 0x02 0xff 0x14

#重新打开自动风扇控制
ipmitool raw 0x30 0x30 0x01 0x01

超微

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ipmitool raw 0x30 0x70 0x66 0x01 0x0x y

x:选择哪个风扇
0 - CPU Zone
1 - Peripheral Zone

y:选择速度

把上面的命令改成对应的x和y的值

range - 0x00 - 0x64
0x64 - 100%
0x48 - 75%
0x32 - 50%
0x24 - 37.5%
0x16 - 25%
0x00 - 0%


实例:
ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x16
ipmitool raw 0x30 0x70 0x66 0x01 0x01 0x16