BMC ipmitool 對linux伺服器進行IPMI管理
IPMI是智慧型平臺管理介面(Intelligent Platform Management Interface)的縮寫,是管理基於 Intel結構的企業系統中所使用的外圍裝置採用的一種工業標準,該標準由英特爾、惠普、NEC、美國戴爾電腦和SuperMicro等公司制定。使用者可以利用IPMI監視伺服器的物理健康特徵,如溫度、電壓、風扇工作狀態、電源狀態等。
IPMI工作原理:
IPMI的核心是一個專用晶片/控制器(叫做伺服器處理器或基板管理控制器(BMC)),其並不依賴於伺服器的處理器、BIOS或作業系統來工作,可謂非常地獨立,是一個單獨在系統內執行的無代理管理子系統,只要有BMC與IPMI韌體其便可開始工作,而BMC通常是一個安裝在伺服器主機板上的獨立的板卡,現在也有伺服器主機板提供對IPMI支援的。IPMI良好的自治特性便克服了以往基於作業系統的管理方式所受的限制,例如作業系統不響應或未載入的情況下其仍然可以進行開關機、資訊提取等操作。
當需要對系統 文字控制檯進行遠端訪問時,Serial Over LAN (SOL) 功能將非常有用。SOL 通過 IPMI 會話重定向本地序列介面,允許遠端訪問 Windows 的緊急事件管理控制檯 (EMS) 特殊管理控制檯 (SAC),或訪問
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通道。
[email protected]:~# 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通被監控伺服器地址 則可以遠端管理該主機。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