使用 ipmitool 实现 Linux 系统下对服务器的BMC管理
??IPMI是智能型平臺管理接口(Intelligent Platform Management Interface)的縮寫,是管理基于 Intel結構的企業系統中所使用的外圍設備采用的一種工業標準,該標準由英特爾、惠普、NEC、美國戴爾電腦和SuperMicro等公司制定。用戶可以利用IPMI監視服務器的物理健康特征,如溫度、電壓、風扇工作狀態、電源狀態等。
? ? ? ?IPMI工作原理:
? ? ? ?IPMI的核心是一個專用芯片/控制器(叫做服務器處理器或基板管理控制器(BMC)),其并不依賴于服務器的處理器、BIOS或操作系統來工作,可謂非常地獨立,是一個單獨在系統內運行的無代理管理子系統,只要有BMC與IPMI固件其便可開始工作,而BMC通常是一個安裝在服務器主板上的獨立的板卡,現在也有服務器主板提供對IPMI支持的。IPMI良好的自治特性便克服了以往基于操作系統的管理方式所受的限制,例如操作系統不響應或未加載的情況下其仍然可以進行開關機、信息提取等操作。
在工作時,所有的IPMI功能都是向BMC發送命令來完成的,命令使用IPMI規范中規定的指令,BMC接收并在系統事件日志中記錄事件消息,維護描述系統中傳感器情況的傳感器數據記錄。在需要遠程訪問系統時,IPMI新的LAN上串行(SOL)特性很有用。SOL改變IPMI會話過程中本地串口傳送方向,從而提供對緊急管理服務、Windows專用管理控制臺或Linux串行控制臺的遠程訪問。BMC通過在LAN上改變傳送給 串行端口的信息的方向來做到這點,提供了一種與廠商無關的 遠程查詢啟動、操作系統加載器或緊急管理控制臺來診斷和維修故障的標準方式。
當需要對系統 文本控制臺進行遠程訪問時,Serial Over LAN (SOL) 功能將非常有用。SOL 通過 IPMI 會話重定向本地串行接口,允許遠程訪問 Windows 的緊急事件管理控制臺 (EMS) 特殊管理控制臺 (SAC),或訪問 LINUX 串行控制臺。這個過程的步驟是 IPMI 固件截取數據,然后通過局域網重新發送定向到串行端口的信息。 這就提供了遠程查看 BOOT、OS 加載器或緊急事件管理控制臺以診斷并修復服務器相關問題的標準方法,而無需考慮供應商。它允許在引導階段配置各種組件。
? ? ? ?BMC具有以下功能:
1.通過系統的串行端口進行訪問
2. 故障日志記錄和 SNMP 警報發送
3.訪問系統事件日志 (System Event Log ,SEL) 和傳感器狀況 4
.控制包括開機和關機
5.獨立于系統電源或工作狀態的支持
6.用于系統設置、基于文本公用程序和操作系統控制臺的文本控制臺重定向
使用 ipmi 的必要條件——必須在硬件、OS、管理工具等幾個方面都滿足:
? ? ? ???1.服務器硬件本身提供對 ipmi 的支持 (硬件)
? ? ? ? ?目前惠普、戴爾和 NEC 等大多數廠商的服務器都支持 IPMI 2.0,但并不是所有服務器都支持,所以應該先通過產品手冊或在 BIOS 中確定服務器是否支持 ipmi,也就是說服務器在主板上要具有 BMC 等嵌入式的管理微控制器。
? ? ? ? ?這里拿DELL R710為例:
? ? ? ? ?1) 啟動服務器 使用ctrl+e 進去ipmi server mangement configuration
? ? ? ? ?2)設置IPMI Over LAN 為On
3)進入IPMI Parameters 設置服務器ip/子網掩碼 (也可以進去系統通過Ipmitool管理軟件設置)
\\\
? 4)進入LAN User Confuguration 設置用戶名 密碼 (同樣也可以進去系統通過Ipmitool管理軟件設置)
2.操作系統提供相應的 ipmi 驅動 ?(OS)
? ? ? ? ?通過操作系統監控服務器自身的 ipmi 信息時需要系統內核提供相應的支持,linux 系統通過內核對 OpenIPMI(ipmi 驅動)的支持來提供對 ipmi 的系統接口。在使用驅動之前,請先啟動該驅動:
? ? ? ? ? service ipmi start
? ? ? ? ? 或者啟動模塊:
? ? ? ? ? modprobe ipmi_msghandler
? ? ? ? ? modprobe ipmi_devintf
? ? ? ? ? modprobe ipmi_si
? ? ? ? ? modprobe ipmi_poweroff
? ? ? ? ? modprobe ipmi_watchdog
? ? ? ? ? 3.ipmi 管理工具 (管理工具)
? ? ? ? ? Linux 下的命令行方式的 ipmi 平臺管理工具 ipmitool。
? ? ? ? ? ipmitool 命令需要通過相應的interface來訪問BMC,在本地獲取信息時候采用的是-I open,即為OpenIPMI接口,IPMItool命令包含的接口有open、lan、lanplus。其中open是指的是OpenIPMI與 BMC通信,Lan是通過Ethernet LAN網用IPV4的udp協議與BMC通信。UDP的數據段包含了IPMI request/resoponse消息,消息具有一個IPMI session 頭和RMCP 頭。
? ? ? ? ? IPMI使用Remote Management Control Protocol (RMCP) 版本1支持操作系統關閉(pre-OS和OS-absent),RMCP把把數據發送到UDP的623端口。象lan接口一樣,lanplus同樣使用 Ethernet LAN 的UDP協議與BMC通信,但是lanplus使用RMCP+協議(在IPMIV20中描述)來同新,RMCP+允許使用改經的認證方式和數據完整性檢查。Open端口用于本地監控系統使用的;Lan/lanplus通過網絡進行遠程監控。
? ? ? ? ?利用ipmitool實現對Linux服務器的ipmi管理有2種方式:
? ? ? ? ? 1)通過OS監控本地服務,實現對本地服務器的管理。
? ? ? ? ? ?架構:應用軟件ipmitool <----------->OS提供支持ipmi系統接口<------------>硬件主板上有bmc芯片
? ? ? ? ? 通過ipmitool命令獲取獲取傳感器中的各種監測值和該值的監測閾值,包括(CPU溫度,電壓,風扇轉速,電源調制模塊溫度,電源電壓等信息)
? ? ? ? ? ipmitool本地監控使用命令:ipmitool -I open command,其中-I open表示使用OpenIPMI接口,command有以下項:
a) ? raw:發送一個原始的IPMI請求,并且打印回復信息。
b) ? lan:配置網絡(lan)信道(channel)
c) ? chassis :查看底盤的狀態和配置電源
d) ? event:向BMC發送一個已定義的事件(event),可用于測試配置的SNMP是否成功
e) ? mc: ?查看MC(Management Contollor)狀態和各種允許的項
f) ? sdr:打印傳感器倉庫中的任何監控項和從傳感器讀取到的值。
g) ? sensor:打印周詳的傳感器信息。
h) ? Fru:打印內建的Field Replaceable Unit (FRU)信息
i) ? sel: 打印 System Event Log (SEL) ? ? ?
j) ? pef: 配置 Platform Event Filtering (PEF),事件過濾平臺用于在監控系統發現有event時候,用PEF中的策略進行事件過濾,然后看是否需要報警。
k) ? sol/isol:用于配置通過串口的Lan進行監控
l) ? user:配置BMC中用戶的信息 。
m) ?channel:配置Management Controller信道。
root@linux:~# ipmitool -I open sensor list
Temp ? ? ? ? ? ? | na ? ? ? ? | degrees C ?| na ? ?| na ? ? ? ?| na ? ? ? ?| na ? ? ? ?| 85.000 ? ?| 90.000 ? ?| na ? ? ? ?
Temp ? ? ? ? ? ? | na ? ? ? ? | degrees C ?| na ? ?| na ? ? ? ?| na ? ? ? ?| na ? ? ? ?| 85.000 ? ?| 90.000 ? ?| na ? ? ? ?
Temp ? ? ? ? ? ? | na ? ? ? ? | degrees C ?| na ? ?| 64.000 ? ?| na ? ? ? ?| -128.000 ?| -128.000 ?| na ? ? ? ?| na ? ? ? ?
Temp ? ? ? ? ? ? | na ? ? ? ? | degrees C ?| na ? ?| -128.000 ?| na ? ? ? ?| -96.000 ? | -27.000 ? | na ? ? ? ?| na ? ? ? ?
Ambient Temp ? ? | 19.000 ? ? | degrees C ?| ok ? ?| na ? ? ? ?| 3.000 ? ? | 8.000 ? ? | 42.000 ? ?| 47.000 ? ?| na ? ? ? ?
Planar Temp ? ? ?| na ? ? ? ? | degrees C ?| na ? ?| na ? ? ? ?| 3.000 ? ? | 8.000 ? ? | 92.000 ? ?| 97.000 ? ?| na
? ? ? ? ? 2)通過網絡監控遠程服務器。
? ? ? ? ? ? 被監控服務器需要硬件和操作系統接口驅動的支持,可以無需安裝應用軟件。監控客戶端需要應用軟件如ipmitool工具,可以無需硬件和操作系統接口驅動的支持。
? ? ? ? ? ? ipmi的遠程監控是通過向與BMC相連的網絡接口發送udp數據包實現的,udp數據包的定位是通過把ip地址寫BMC芯片來實現,而這需要本地的Ipmi系統接口來完成連接。Ipmitool可以通過LAN遠程監控系統,同時BMC中保存有一序列用戶名和密碼,通過LAN進行遠端訪問需要用戶名和密碼。
? ? ? ? ? ? 被監控服務器使用ipmitool更改ip,查看ip ? ? ?
root@linux:~# ipmitool lan set 1 ipaddr ?172.16.6.222
Setting LAN IP Address to 172.16.6.222
root@linux:~# ipmitool lan print 1
Set in Progress ? ? ? ? : Set Complete
Auth Type Support ? ? ? : NONE MD2 MD5 PASSWORD?
Auth Type Enable ? ? ? ?: Callback : MD2 MD5?
? ? ? ? ? ? ? ? ? ? ? ? : User ? ? : MD2 MD5?
? ? ? ? ? ? ? ? ? ? ? ? : Operator : MD2 MD5?
? ? ? ? ? ? ? ? ? ? ? ? : Admin ? ?: MD2 MD5?
? ? ? ? ? ? ? ? ? ? ? ? : OEM ? ? ?:?
IP Address Source ? ? ? : Static Address
IP Address ? ? ? ? ? ? ?: 172.16.6.222
Subnet Mask ? ? ? ? ? ? : 255.255.255.0
MAC Address ? ? ? ? ? ? : a4:ba:db:4d:3f:2d
SNMP Community String ? : public
IP Header ? ? ? ? ? ? ? : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10
Default Gateway IP ? ? ?: 0.0.0.0
Default Gateway MAC ? ? : 00:00:00:00:00:00
Backup Gateway IP ? ? ? : 0.0.0.0
Backup Gateway MAC ? ? ?: 00:00:00:00:00:00
802.1q VLAN ID ? ? ? ? ?: Disabled
802.1q VLAN Priority ? ?: 0
RMCP+ Cipher Suites ? ? : 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
Cipher Suite Priv Max ? : aaaaaaaaaaaaaaa
? ? ? ? ? ? ? ? ? ? ? ? : ? ? X=Cipher Suite Unused
? ? ? ? ? ? ? ? ? ? ? ? : ? ? c=CALLBACK
? ? ? ? ? ? ? ? ? ? ? ? : ? ? u=USER
? ? ? ? ? ? ? ? ? ? ? ? : ? ? o=OPERATOR
? ? ? ? ? ? ? ? ? ? ? ? : ? ? a=ADMIN
? ? ? ? ? ? ? ? ? ? ? ? : ? ? O=OEM
? ? ? ? ? ? ? ?監控客戶端Ipmi ip地址也必須和被監控服務端在同一網段,
root@ubuntu:~# ipmitool lan print 1
Set in Progress ? ? ? ? : Set Complete
Auth Type Support ? ? ? : NONE MD2 MD5 PASSWORD?
Auth Type Enable ? ? ? ?: Callback : MD2 MD5?
? ? ? ? ? ? ? ? ? ? ? ? : User ? ? : MD2 MD5?
? ? ? ? ? ? ? ? ? ? ? ? : Operator : MD2 MD5?
? ? ? ? ? ? ? ? ? ? ? ? : Admin ? ?: MD2 MD5?
? ? ? ? ? ? ? ? ? ? ? ? : OEM ? ? ?:?
IP Address Source ? ? ? : Static Address
IP Address ? ? ? ? ? ? ?: 172.16.6.175
Subnet Mask ? ? ? ? ? ? : 255.255.255.0
MAC Address ? ? ? ? ? ? : a4:ba:db:1b:81:48
SNMP Community String ? : public
IP Header ? ? ? ? ? ? ? : TTL=0x40 Flags=0x40 Precedence=0x00 TOS=0x10
Default Gateway IP ? ? ?: 0.0.0.0
Default Gateway MAC ? ? : 00:00:00:00:00:00
Backup Gateway IP ? ? ? : 0.0.0.0
Backup Gateway MAC ? ? ?: 00:00:00:00:00:00
802.1q VLAN ID ? ? ? ? ?: Disabled
802.1q VLAN Priority ? ?: 0
RMCP+ Cipher Suites ? ? : 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
Cipher Suite Priv Max ? : aaaaaaaaaaaaaaa
? ? ? ? ? ? ? ? ? ? ? ? : ? ? X=Cipher Suite Unused
? ? ? ? ? ? ? ? ? ? ? ? : ? ? c=CALLBACK
? ? ? ? ? ? ? ? ? ? ? ? : ? ? u=USER
? ? ? ? ? ? ? ? ? ? ? ? : ? ? o=OPERATOR
? ? ? ? ? ? ? ? ? ? ? ? : ? ? a=ADMIN
? ? ? ? ? ? ? ? ? ? ? ? : ? ? O=OEM
root@ubuntu:~# ifconfig eth0:1 172.16.6.252 netmask 255.255.255.0
root@ubuntu:~# ifconfig?
eth0 ? ? ?Link encap:Ethernet ?HWaddr a4:ba:db:1b:81:40 ?
? ? ? ? ? inet addr:10.1.6.175 ?Bcast:10.1.6.255 ?Mask:255.255.255.0
? ? ? ? ? inet6 addr: fe80::a6ba:dbff:fe1b:8140/64 Scope:Link
? ? ? ? ? UP BROADCAST RUNNING MULTICAST ?MTU:1500 ?Metric:1
? ? ? ? ? RX packets:107931 errors:0 dropped:18357 overruns:0 frame:0
? ? ? ? ? TX packets:12671 errors:0 dropped:0 overruns:0 carrier:0
? ? ? ? ? collisions:0 txqueuelen:1000?
? ? ? ? ? RX bytes:13418631 (13.4 MB) ?TX bytes:1551309 (1.5 MB)
?
eth0:1 ? ?Link encap:Ethernet ?HWaddr a4:ba:db:1b:81:40 ?
? ? ? ? ? inet addr:172.16.6.252 ?Bcast:172.16.6.255 ?Mask:255.255.255.0
? ? ? ? ? UP BROADCAST RUNNING MULTICAST ?MTU:1500 ?Metric:1
?
lo ? ? ? ?Link encap:Local Loopback ?
? ? ? ? ? inet addr:127.0.0.1 ?Mask:255.0.0.0
? ? ? ? ? inet6 addr: ::1/128 Scope:Host
? ? ? ? ? UP LOOPBACK RUNNING ?MTU:16436 ?Metric:1
? ? ? ? ? RX packets:2 errors:0 dropped:0 overruns:0 frame:0
? ? ? ? ? TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
? ? ? ? ? collisions:0 txqueuelen:0?
? ? ? ? ? RX bytes:178 (178.0 B) ?TX bytes:178 (178.0 B)
?
root@ubuntu:~# ping 172.16.6.222
PING 172.16.6.222 (172.16.6.222) 56(84) bytes of data.
64 bytes from 172.16.6.222: icmp_req=1 ttl=64 time=0.458 ms
64 bytes from 172.16.6.222: icmp_req=2 ttl=64 time=0.514 ms
? ? ? ? ? ? ? 能夠Ping通被監控服務器地址 則可以遠程管理該主機。
6
root@ubuntu:~# ipmitool -I lanplus -H 172.16.6.222 -U root -P password sol activate
[SOL Session operational. ?Use ~? for help]
?
?LTS debian ttyS1
?
debian login:
? ? ? ? ? ? ?看到以上界面,說明客戶端已經可以登錄或查看被監控服務器。
以下是ipmitool在生產環境下常用命令:
查看ipmi信息 #ipmitool mc info
人員 ? ? ? ? ? ? #ipmitool user list 1
查看綁定IP ?#ipmitool ?lan print 1
更改IP ? #ipmitool lan set 1 ipaddr ?x.x.x.x
更改密碼 #ipmitool user list 1
? ? ? ? ? ? ? #ipmitool user set password 2 "123456"
ipmitool的SQL遠程控制服務器 ?#ipmitool -I lanplus -H x.x.x.x ?-U ?root -P ?password sol (de)activate
強制重啟(關閉或開啟)被監控服務器 ? ? #ipmitool -I lanplus -H x.x.x.x -U root -P password chassis power reset (off on)
列出日志 ?ipmitool sel list
快捷鍵 ? ? ?shift + ~ +. ?是退出ipmi
?
轉載于:https://blog.51cto.com/3258715/1735711
總結
以上是生活随笔為你收集整理的使用 ipmitool 实现 Linux 系统下对服务器的BMC管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 区块链底层网络调研
- 下一篇: 三星手机安装linux系统下载,技术|在