本發(fā)明涉及服務(wù)器管理技術(shù)領(lǐng)域,特別涉及一種服務(wù)器傳感器信息采集方法。
背景技術(shù):
對于具有多個(gè)計(jì)算單元的服務(wù)器,其管理單元上的SMC(System Management Controller,系統(tǒng)管理控制器)在采集自身傳感器信息的同時(shí),還需要采集各個(gè)計(jì)算單元的BMC(Baseboard Management Controller,基板管理控制器)的傳感器信息,以對整個(gè)服務(wù)器的運(yùn)行狀況進(jìn)行監(jiān)控。SMC采用與BMC相同的IPMI協(xié)議棧的實(shí)現(xiàn)代碼,因此SMC在本質(zhì)上是與BMC一樣的,即都是一個(gè)IPMI Server,由外部IPMItool或者內(nèi)置的支持IPMI訪問接口的Web服務(wù)器充當(dāng)IPMI Client。對于BMC來說,這種設(shè)計(jì)是合理的,因?yàn)樵诰哂卸鄠€(gè)計(jì)算單元的服務(wù)器中,BMC是一個(gè)相對單純的IPMI Server。
但是對于SMC來說,除了需要支持外部IPMI訪問接口的訪問即充當(dāng)IPMI Server,還需要主動(dòng)發(fā)起對各個(gè)計(jì)算單元的BMC的訪問即充當(dāng)IPMI Client。在現(xiàn)有的解決方案中,SMC是通過撇開IPMI協(xié)議棧增加一個(gè)相對獨(dú)立的訪問各個(gè)計(jì)算單元的BMC的進(jìn)程實(shí)現(xiàn)傳感器信息采集的,不能很好地利用已有的IPMI協(xié)議棧的功能和IPMI協(xié)議提供的擴(kuò)展性,因此有必要提出一種新的實(shí)現(xiàn)服務(wù)器傳感器信息采集的方法。
基于上述問題,本發(fā)明提出了一種服務(wù)器傳感器信息采集方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明為了彌補(bǔ)現(xiàn)有技術(shù)的缺陷,提供了一種簡單高效的服務(wù)器傳感器信息采集方法。
本發(fā)明是通過如下技術(shù)方案實(shí)現(xiàn)的:
一種服務(wù)器傳感器信息采集方法,其特征在于:在SMC的IPMI協(xié)議棧的實(shí)現(xiàn)中增加一個(gè)BMC傳感器設(shè)備,同時(shí)在各計(jì)算單元的BMC的IPMI協(xié)議棧的實(shí)現(xiàn)中增加對SMC增加的BMC傳感器設(shè)備發(fā)送的獲取傳感器信息的自定義命令的支持;使SMC的IPMI協(xié)議棧兼具IPMI Server與IPMI Client的功能,從而使SMC適用于具有多個(gè)計(jì)算單元的服務(wù)器的管理。
所述BMC傳感器設(shè)備是與IPMI協(xié)議中定義的傳感器設(shè)備類似但不與Message Handler直接通信的IPM邏輯設(shè)備;基于BMC Message Bridging機(jī)制發(fā)送獲取傳感器信息的自定義命令消息報(bào)文訪問各計(jì)算單元的BMC即可。
本發(fā)明服務(wù)器傳感器信息采集方法,包括以下步驟:
(1)在SMC的IPMI協(xié)議棧的實(shí)現(xiàn)中增加一個(gè)BMC傳感器設(shè)備;
(2)所述BMC傳感器設(shè)備以消息內(nèi)部Bridging的形式發(fā)送獲取BMC全部傳感器信息的自定義命令Get BMC Sensor Readings Command的消息報(bào)文,指定其獲取信息的消息隊(duì)列為BMCSensor_Q;
(3)通過IPMI定義的BMC Message Bridging機(jī)制,來自BMC傳感器設(shè)備的消息報(bào)文被Post到IPMB接口消息隊(duì)列IPMBIfc_Q;
(4)IPMB接口主線程獲取到IPMBIfc_Q中的消息報(bào)文,判斷為Bridge請求,直接經(jīng)由實(shí)際的IPMB物理接口發(fā)送消息報(bào)文中的數(shù)據(jù)域,即IPMB請求消息,到服務(wù)器計(jì)算單元的BMC;
(5)計(jì)算單元的BMC的IPMB接收線程接收來自SMC的IPMB請求,通過Message Handler的消息路由功能最終執(zhí)行自定義命令Get BMC Sensor Readings Command對應(yīng)的實(shí)現(xiàn)代碼,該自定義命令收集由傳感器設(shè)備獲取并存儲在共享緩沖區(qū)中的數(shù)據(jù),并向SMC返回IPMB響應(yīng)消息;
(6)IPMB接收線程接收來自BMC的IPMB響應(yīng)消息并Post到IPMBIfc_Q中;
(7)IPMB接口主線程獲取IPMBIfc_Q中的消息報(bào)文并Post到消息隊(duì)列BMCSensor_Q中;
(8)BMC傳感器設(shè)備提取BMCSensor_Q接收到的消息報(bào)文中的BMC傳感器信息,并以格式化的形式存儲到一個(gè)專用的共享緩沖區(qū)中供Web服務(wù)器或者其他工具訪問;
(9)遍歷各個(gè)計(jì)算單元的BMC獲取全部計(jì)算單元的傳感器信息即可。
本發(fā)明的有益效果是:該服務(wù)器傳感器信息采集方法,以IPMI協(xié)議的BMC Message Bridging機(jī)制為基礎(chǔ),利用IPMI協(xié)議中對IPM邏輯設(shè)備和自定義命令擴(kuò)展的支持,使SMC的IPMI協(xié)議棧兼具IPMI Server與IPMI Client的功能,從而使SMC適用于具有多個(gè)計(jì)算單元的服務(wù)器的管理。
附圖說明
附圖1為本發(fā)明服務(wù)器傳感器信息采集方法示意圖。
具體實(shí)施方式
為了使本發(fā)明所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖和實(shí)施例,對本發(fā)明進(jìn)行詳細(xì)的說明。應(yīng)當(dāng)說明的是,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本實(shí)施例中,刀片服務(wù)器包括管理單元、計(jì)算單元、交換單元、電源單元和風(fēng)扇單元。管理單元上有SMC,計(jì)算單元上有BMC,SMC通過Web管理界面對外提供訪問接口。
該服務(wù)器傳感器信息采集方法,在SMC的IPMI協(xié)議棧的實(shí)現(xiàn)中增加一個(gè)BMC傳感器設(shè)備,同時(shí)在各計(jì)算單元的BMC的IPMI協(xié)議棧的實(shí)現(xiàn)中增加對SMC增加的BMC傳感器設(shè)備發(fā)送的獲取傳感器信息的自定義命令的支持;使SMC的IPMI協(xié)議棧兼具IPMI Server與IPMI Client的功能,從而使SMC適用于具有多個(gè)計(jì)算單元的服務(wù)器的管理。
所述BMC傳感器設(shè)備是與IPMI協(xié)議中定義的傳感器設(shè)備類似但不與Message Handler直接通信的IPM邏輯設(shè)備;基于BMC Message Bridging機(jī)制發(fā)送獲取傳感器信息的自定義命令消息報(bào)文訪問各計(jì)算單元的BMC即可。
該服務(wù)器傳感器信息采集方法,包括以下步驟:
(1)在SMC的IPMI協(xié)議棧的實(shí)現(xiàn)中增加一個(gè)BMC傳感器設(shè)備;
(2)所述BMC傳感器設(shè)備以消息內(nèi)部Bridging的形式發(fā)送獲取BMC全部傳感器信息的自定義命令Get BMC Sensor Readings Command的消息報(bào)文,指定其獲取信息的消息隊(duì)列為BMCSensor_Q;
(3)通過IPMI定義的BMC Message Bridging機(jī)制,來自BMC傳感器設(shè)備的消息報(bào)文被Post到IPMB接口消息隊(duì)列IPMBIfc_Q;
(4)IPMB接口主線程獲取到IPMBIfc_Q中的消息報(bào)文,判斷為Bridge請求,直接經(jīng)由實(shí)際的IPMB物理接口發(fā)送消息報(bào)文中的數(shù)據(jù)域,即IPMB請求消息,到服務(wù)器計(jì)算單元的BMC;
(5)計(jì)算單元的BMC的IPMB接收線程接收來自SMC的IPMB請求,通過Message Handler的消息路由功能最終執(zhí)行自定義命令Get BMC Sensor Readings Command對應(yīng)的實(shí)現(xiàn)代碼,該自定義命令收集由傳感器設(shè)備獲取并存儲在共享緩沖區(qū)中的數(shù)據(jù),并向SMC返回IPMB響應(yīng)消息;
(6)IPMB接收線程接收來自BMC的IPMB響應(yīng)消息并Post到IPMBIfc_Q中;
(7)IPMB接口主線程獲取IPMBIfc_Q中的消息報(bào)文并Post到消息隊(duì)列BMCSensor_Q中;
(8)BMC傳感器設(shè)備提取BMCSensor_Q接收到的消息報(bào)文中的BMC傳感器信息,并以格式化的形式存儲到一個(gè)專用的共享緩沖區(qū)中供Web服務(wù)器或者其他工具訪問;
(9)遍歷各個(gè)計(jì)算單元的BMC獲取全部計(jì)算單元的傳感器信息即可。
與現(xiàn)有技術(shù)相比,該服務(wù)器傳感器信息采集方法的主要不同之處在于:
現(xiàn)有技術(shù)中的BMC Message Bridging機(jī)制用于外部輸入的IPMI命令所觸發(fā)的消息Bridging,如外部管理終端經(jīng)SMC的LAN接口輸入IPMI命令,觸發(fā)SMC的消息Bridging轉(zhuǎn)發(fā)此命令到SMC的IPMB接口,進(jìn)而發(fā)送到某個(gè)計(jì)算單元的BMC,BMC回復(fù)響應(yīng)信息到SMC的IPMB接口,再通過SMC的消息Bridging由外部管理終端獲取。
而本發(fā)明以IPMI協(xié)議的BMC Message Bridging機(jī)制為基礎(chǔ),利用IPMI協(xié)議中對IPM邏輯設(shè)備和自定義命令擴(kuò)展的支持,使SMC的IPMI協(xié)議棧兼具IPMI Server與IPMI Client的功能,從而使SMC適用于具有多個(gè)計(jì)算單元的服務(wù)器的管理;采用SMC中的軟件邏輯設(shè)備觸發(fā)的內(nèi)部消息Bridging訪問BMC,再通過內(nèi)部消息Bridging獲取BMC返回的信息并存儲到SMC內(nèi)部的共享緩沖區(qū)。