本發(fā)明涉及服務(wù)器管理技術(shù)領(lǐng)域,特別涉及一種增加自定義命令支持實(shí)現(xiàn)傳感器信息采集的方法。
背景技術(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(Intelligent Platform Management Interface)協(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ā)明提出了一種增加自定義命令支持實(shí)現(xiàn)傳感器信息采集的方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明為了彌補(bǔ)現(xiàn)有技術(shù)的缺陷,提供了一種簡單高效的增加自定義命令支持實(shí)現(xiàn)傳感器信息采集的方法。
本發(fā)明是通過如下技術(shù)方案實(shí)現(xiàn)的:
一種增加自定義命令支持實(shí)現(xiàn)傳感器信息采集的方法,其特征在于:在SMC的IPMI協(xié)議棧中增加一個(gè)傳感器采集線程,并在各個(gè)計(jì)算單元的BMC的IPMI協(xié)議棧中增加對自定義命令的支持;所述傳感器采集線程不與Message Handler直接通信,所述自定義命令的函數(shù)可通過BMC的Message Handler提供的命令映射表被索引并調(diào)用,進(jìn)而使SMC的IPMI協(xié)議棧兼具IPMI Server與IPMI Client的功能,使SMC適用于具有多個(gè)計(jì)算單元的服務(wù)器的傳感器的信息采集。
由所述傳感器采集線程發(fā)起的獲取BMC的傳感器信息的自定義命令的回復(fù)消息是一個(gè)IPMI響應(yīng)消息,但是SMC的Message Handler將其視為一個(gè)IPMI請求消息而不是IPMI響應(yīng)消息,從而可以被處理IPMI請求的函數(shù)所處理;在處理IPMI請求的函數(shù)中通過判斷網(wǎng)絡(luò)功能碼NetFn來識別所述自定義命令的IPMI響應(yīng)消息,并進(jìn)行相應(yīng)的處理以提供外部訪問;而BMC則使用標(biāo)準(zhǔn)IPMI協(xié)議規(guī)定的自定義命令的實(shí)現(xiàn)方法對自定義命令予以支持。
通過所述傳感器采集線程發(fā)送、獲取各個(gè)計(jì)算單元傳感器數(shù)據(jù)的自定義命令,所述自定義命令使用系統(tǒng)中未使用的網(wǎng)絡(luò)功能碼NetFn以區(qū)別于其他命令集,同時(shí)在Message Handler處理IPMI請求的函數(shù)中增加BMC的回復(fù)消息中網(wǎng)絡(luò)功能碼NetFn的判斷;如果網(wǎng)絡(luò)功能碼NetFn的值指示為自定義命令所特有的網(wǎng)絡(luò)功能碼NetFn,則截獲此回復(fù)消息并解析其中的傳感器數(shù)據(jù),以格式化的形式存儲(chǔ)到共享緩沖區(qū)中供外部訪問。
本發(fā)明增加自定義命令支持實(shí)現(xiàn)傳感器信息采集的方法,包括以下步驟:
(1)在SMC的IPMI協(xié)議棧中增加一個(gè)傳感器采集線程;
(2)傳感器采集線程發(fā)送、獲取某個(gè)計(jì)算單元傳感器數(shù)據(jù)的自定義命令,所述自定義命令使用系統(tǒng)中未使用的網(wǎng)絡(luò)功能碼NetFn以區(qū)別于其他命令集;
(3)計(jì)算單元的BMC的Message Handler通過命令映射表的方法索引并調(diào)用在IPMI協(xié)議棧中增加的自定義命令的函數(shù)實(shí)現(xiàn),獲取BMC的傳感器信息后以IPMI響應(yīng)的形式回復(fù)SMC;
(4)在SMC的Message Handler處理IPMI請求的函數(shù)中增加對BMC回復(fù)消息中網(wǎng)絡(luò)功能碼NetFn的判斷,如果網(wǎng)絡(luò)功能碼NetFn的值指示為自定義命令所特有的網(wǎng)絡(luò)功能碼NetFn,則截獲此回復(fù)消息并解析其中的傳感器數(shù)據(jù),以格式化的形式存儲(chǔ)到共享緩沖區(qū)中供外部訪問;
(5)遍歷各個(gè)計(jì)算單元的BMC獲取全部計(jì)算單元的傳感器信息。
本發(fā)明的有益效果是:該增加自定義命令支持實(shí)現(xiàn)傳感器信息采集的方法,以IPMI協(xié)議棧的實(shí)現(xiàn)為基礎(chǔ),在SMC的IPMI協(xié)議棧中增加一個(gè)傳感器采集線程,并在各個(gè)計(jì)算單元的BMC的IPMI協(xié)議棧中增加對自定義命令的支持,只進(jìn)行較少的改動(dòng)即可使SMC的IPMI協(xié)議棧兼具IPMI Server與IPMI Client的功能,適用于具有多個(gè)計(jì)算單元的服務(wù)器的傳感器信息采集。
附圖說明
附圖1為本發(fā)明增加自定義命令支持實(shí)現(xiàn)傳感器信息采集的方法示意圖。
具體實(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管理界面對外提供訪問接口。
該增加自定義命令支持實(shí)現(xiàn)傳感器信息采集的方法,在SMC的IPMI協(xié)議棧中增加一個(gè)傳感器采集線程,并在各個(gè)計(jì)算單元的BMC的IPMI協(xié)議棧中增加對自定義命令的支持;所述傳感器采集線程不與Message Handler直接通信,所述自定義命令的函數(shù)可通過BMC的Message Handler提供的命令映射表被索引并調(diào)用,進(jìn)而使SMC的IPMI協(xié)議棧兼具IPMI Server與IPMI Client的功能,使SMC適用于具有多個(gè)計(jì)算單元的服務(wù)器的傳感器的信息采集。
由所述傳感器采集線程發(fā)起的獲取BMC的傳感器信息的自定義命令的回復(fù)消息是一個(gè)IPMI響應(yīng)消息,但是SMC的Message Handler將其視為一個(gè)IPMI請求消息而不是IPMI響應(yīng)消息,從而可以被處理IPMI請求的函數(shù)所處理;在處理IPMI請求的函數(shù)中通過判斷網(wǎng)絡(luò)功能碼NetFn來識別所述自定義命令的IPMI響應(yīng)消息,并進(jìn)行相應(yīng)的處理以提供外部訪問;而BMC則使用標(biāo)準(zhǔn)IPMI協(xié)議規(guī)定的自定義命令的實(shí)現(xiàn)方法對自定義命令予以支持。
通過所述傳感器采集線程發(fā)送、獲取各個(gè)計(jì)算單元傳感器數(shù)據(jù)的自定義命令,所述自定義命令使用系統(tǒng)中未使用的網(wǎng)絡(luò)功能碼NetFn以區(qū)別于其他命令集,同時(shí)在Message Handler處理IPMI請求的函數(shù)中增加BMC的回復(fù)消息中網(wǎng)絡(luò)功能碼NetFn的判斷;如果網(wǎng)絡(luò)功能碼NetFn的值指示為自定義命令所特有的網(wǎng)絡(luò)功能碼NetFn,則截獲此回復(fù)消息并解析其中的傳感器數(shù)據(jù),以格式化的形式存儲(chǔ)到共享緩沖區(qū)中供外部訪問。
該增加自定義命令支持實(shí)現(xiàn)傳感器信息采集的方法,包括以下步驟:
(1)在SMC的IPMI協(xié)議棧中增加一個(gè)傳感器采集線程;
(2)傳感器采集線程發(fā)送、獲取某個(gè)計(jì)算單元傳感器數(shù)據(jù)的自定義命令,所述自定義命令使用系統(tǒng)中未使用的網(wǎng)絡(luò)功能碼NetFn以區(qū)別于其他命令集;
(3)計(jì)算單元的BMC的Message Handler通過命令映射表的方法索引并調(diào)用在IPMI協(xié)議棧中增加的自定義命令的函數(shù)實(shí)現(xiàn),獲取BMC的傳感器信息后以IPMI響應(yīng)的形式回復(fù)SMC;
(4)在SMC的Message Handler處理IPMI請求的函數(shù)中增加對BMC回復(fù)消息中網(wǎng)絡(luò)功能碼NetFn的判斷,如果網(wǎng)絡(luò)功能碼NetFn的值指示為自定義命令所特有的網(wǎng)絡(luò)功能碼NetFn,則截獲此回復(fù)消息并解析其中的傳感器數(shù)據(jù),以格式化的形式存儲(chǔ)到共享緩沖區(qū)中供外部訪問;
(5)遍歷各個(gè)計(jì)算單元的BMC獲取全部計(jì)算單元的傳感器信息。
SMC除具備標(biāo)準(zhǔn)IPMI協(xié)議棧的全部功能外,還能運(yùn)行本發(fā)明提出的IPMI協(xié)議棧中增加的傳感器采集線程和經(jīng)過定制的Web服務(wù)器。SMC的傳感器采集線程發(fā)送、獲取BMC全部傳感器信息的自定義命令,經(jīng)過上述方法的處理過程,BMC執(zhí)行自定義命令返回的信息最終被SMC的Message Handler處理IPMI請求的函數(shù)所處理,將其中的傳感器數(shù)據(jù)以格式化的形式存儲(chǔ)到共享緩沖區(qū)中,經(jīng)過定制的Web服務(wù)器提供對共享緩沖區(qū)中數(shù)據(jù)的訪問接口,通過Web管理界面可顯示SMC和獲取到的各個(gè)計(jì)算單元的傳感器信息。