1、IPMI(Intelligent Platform Management Interface): 即智能平台管理接口是使硬件管理具備“智能化”的新一代通用接口標准。用戶可以利用 IPMI 監視服務器的物理特征,如溫度、電壓、電扇工作狀態、電源供應以及機箱入侵等。ipmi最大的優勢在於它是獨立於CPU BIOS和OS的,所以用戶無論在開機還是關機的狀態下,只要接通電源就可以實現對服務器的監控。ipmi是一種規范的標准,由美國英特爾、惠普(Hewlett-Packard)、NEC、美國戴爾電腦和SuperMicro等公司制定。新的版本是IPMI2.0(http://www.intel.com/design/servers/ipmi/)。其中最重要的物理部件就是BMC(Baseboard Management Controller),一種嵌入式管理微控制器,它相當於整個平台管理的“大腦”,通過它ipmi可以監控各個傳感器的數據並記錄各種事件的日志。
新版本的IPMI可以通過串口、Modem以及Lan等遠程環境管理服務器系統(包括遠程開關機),同時在系統發生錯誤時能自動發出警告。要對服務器進行IPMI管理,需要被監控的系統具有支持IPMI的硬件設備。如果服務器具有底板管理控制器 (Baseboard Management Controller ,BMC),並且支持IPMI規范,則通過BMC與主機板上的不同傳感器通信來監視系統是否有嚴重事件,並在某些參數超出其預置閾值時發出警報和日志事件。BMC具有以下功能:
(1)通過系統的串行端口進行訪問。
(2)故障日志記錄和SNMP警報發送。
(3)訪問系統事件日志 (System Event Log ,SEL) 和傳感器狀況。
(4)控制包括開機和關機。
(5)獨立於系統電源或工作狀態的支持。
(6)用於系統設置、基於文本公用程序和操作系統控制台的文本控制台重定向。
(7)使用LAN訪問Red Hat Enterprise Linux串行控制台界面。
2、使用ipmi的先決條件: 想要實現對服務器的ipmi管理,必須在硬件、OS、管理工具等幾個方面都滿足。
(1)服務器硬件本身提供對ipmi的支持。
(2)目前IBM、HP、Dell和NEC等大多數廠商的服務器都支持IPMI,但並不是所有服務器都支持,所以應該先通過產品手冊或在BIOS中確定服務器是否支持ipmi,也就是說服務器在主板上要具有BMC等嵌入式的管理微控制器。
(3)操作系統提供相應的ipmi驅動。通過操作系統監控服務器自身的ipmi信息時需要系統內核提供相應的支持,linux系統通過內核對OpenIPMI(ipmi驅動)的支持來提供對ipmi的系統接口。
3、用IPMI管理工具對服務器進行管理: IPMI可以通過本地和遠程兩種方式來獲取被監控服務器的監測信息,兩種方式都需要相關的硬件,但是軟件的安裝和軟件命令使用稍微有所不同。常用的管理工具是ipmitool,在http://ipmitool.sourceforge.net/。Linux下需要先安裝OpenIPMI驅動並啟動它,在http://sourceforge.net/projects/openipmi/。SourceForge上的ipmitool只支持Linux/Unix系列的OS,不過它有很多針對Windows的移植版本,比如Sun公司的一個版本。在http://www.sun.com/download/上點擊Downloads A-Z,找到字母I的分類,可下載支持Windows平台的ipmitool,當前版本為1.8.10.2,集成的ipmi驅動有ism, ms, lan, lanplus, rmcp+lan等,其中ms表示Microsoft的ipmi驅動。注意驅動必須安裝在服務器的OS中,管理工具可以安裝服務器上(本地管理),或者遠程的客戶端上(遠程管理)。
Linux上啟動OpenIPMI驅動模塊常用/etc/init.d/ipmi start。啟動ipmi驅動后,通過cat /proc/devices | grep ipmidev獲得設備號,比如得到的設備號是253,用mknod -m 600 /dev/ipmi0 c 253 0建立文件索引點。然后就可以在本地服務器上運行各種ipmi工具獲取相應的服務器信息了。
4、使用ipmitool本地獲取信息。
ipmitool本地監控使用命令: ipmitool –I open command,其中-I open表示使用OpenIPMI接口,Windows下則常用-I ms。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信道。
ipmitool –I open sensor list命令可以獲取傳感器中的各種監測值和該值的監測閾值,包括(CPU溫度,電壓,風扇轉速,電源調制模塊溫度,電源電壓等信息)
ipmitool –I open sensor get “CPU0Temp”可以獲取ID為CPU0Temp監測值,CPU0Temp是sensor的ID,服務器不同,ID表示也不同。
ipmitool –I open sensor thresh <id> <threshold> <setting>設置ID值等於id的監測項的各種限制值。
ipmitool –I open chassis status查看底盤狀態,其中包括了底盤電源信息,底盤工作狀態等
ipmitool –I open chassis restart_cause查看上次系統重啟的原因
ipmitool –I open chassis policy list 查看支持的底盤電源相關策略。
ipmitool –I open chassis power on啟動底盤,用此命令可以遠程開機
ipmitool –I open chassis power off關閉底盤,用此命令可以遠程開機
ipmitool –I open chassis power reset實現硬重啟,用此命令可以遠程開機
ipmi還可以設置系統啟動boot的設備,具體見ipmitool幫助文檔。
ipmitool –I open mc reset 使BMC重新硬啟動
ipmitool –I open mc info 查看BMC硬件信息
ipmitool –I open mc getenables 列出BMC所有允許的選項
ipmitool –I open mc setenables <option>=[on|off],設置bmc相應的允許/禁止選項。
ipmitool-I open event 1 發送一個溫度過高的消息到System Event Log中,可以發送的Event有:
(1) Temperature: Upper Critical: Going High
(2) Voltage Threshold: Lower Critical: Going Low
(3) Memory: Correctable ECC Error Detected
ipmitool-I open event命令可以用測試配置的IPMI中的snmp功能是否成功。
ipmitool -I open lan print 1 打印現咱channel 1的信息 。
ipmitool -I open lan set 1 ipaddr 10.10.113.95設置channel 1 的地址為10.10.113.95
ipmitool -I open lan set 1 snmp public設置channel 1 上snmp的community為public。
ipmitool -I open lan set 1 access on設置channel 1允許訪問。
ipmitool -I open pef info打印Platform Event Filtering (pef)信息
ipmitool -I open pef status查看Platform Event Filtering (pef)狀態
ipmitool -I open pef policy查看Platform Event Filtering (pef)策略設置
ipmitool -I open sdr list fru 讀取fru信息並顯示。
備注:PEF由BMC廠商的FIRMWARE設置,ipmitool(V1.8.8)不能進行設置。
5、使用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+協議(在IPMIV2.0中描述)來通信,RMCP+允許使用改經的認證方式和數據完整性檢查。Open端口用於本地監控系統使用的;lan/lanplus通過網絡進行遠程監控。
遠程獲取服務器監控信息時,需要加上遠程服務器的地址。使用以下的命令格式:
ipmitool -H 10.6.77.249 -U root -P changeme -I lan command。
其中-H表示后面跟的是服務器的地址,-U表示后面跟着用戶名,-P表示后面跟着用戶密碼,command與本地獲取信息相同。