本發(fā)明涉及服務(wù)器的現(xiàn)場(chǎng)可更換單元信息,尤其涉及該現(xiàn)場(chǎng)可更換單元信息的快速讀取方法。
背景技術(shù):
當(dāng)前,計(jì)算機(jī)或服務(wù)器系統(tǒng)中的配件來(lái)自相同或不同的廠商。為了節(jié)省成本,他們一般將計(jì)算機(jī)分成多個(gè)FRU(FieldReplaceUnit,現(xiàn)場(chǎng)可更換單元),大到電源供應(yīng)器,小到風(fēng)扇,當(dāng)這些配件出現(xiàn)故障時(shí),直接更換而不用維修。例如,F(xiàn)RU可以是配件上的partnumber、productnumber或者serialnumber。由于FRU信息的重要性,在很多設(shè)計(jì)方案中,讀取FRU信息是非常關(guān)鍵的環(huán)節(jié)。以云計(jì)算項(xiàng)目為例,通常采用具有多個(gè)節(jié)點(diǎn)(Node)和偵測(cè)單元(如智能電源偵測(cè)單元,SmartPowerDetectUnit)的機(jī)柜(Rack)系統(tǒng),利用該偵測(cè)單元與多個(gè)節(jié)點(diǎn)實(shí)現(xiàn)通信,以獲得多個(gè)節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)上的FRU信息,只有接收該節(jié)點(diǎn)的FRU信息才能知曉該節(jié)點(diǎn)是什么類(lèi)型、什么功能的硬件。當(dāng)前,采用的一種讀取方法是一次性完整地讀取一個(gè)節(jié)點(diǎn)的FRU信息,這樣雖然在軟件編程上比較方便,但SPDU與節(jié)點(diǎn)之間的通信時(shí)長(zhǎng)將大大增加。另一讀取方式是采用hook接口,每次與單個(gè)節(jié)點(diǎn)只能通信一定的次數(shù),可是,完整讀取FRU信息所需的通信次數(shù)并非預(yù)知,需要在讀取過(guò)程中通過(guò)計(jì)算才能得到。如果一邊讀取一邊得到讀取次數(shù),則讀取整個(gè)FRU將需要分成很多次,每次也只能得到有限的FRU信息,這將大大地延緩FRU信息的讀取時(shí)間。有鑒于此,如何設(shè)計(jì)一種快速讀取FRU信息的方法,既可快速得到每個(gè)節(jié)點(diǎn)的完整FRU信息,又能夠保證每個(gè)節(jié)點(diǎn)FRU信息的實(shí)時(shí)性,是業(yè)內(nèi)相關(guān)技術(shù)人員亟待解決的一項(xiàng)課題。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中讀取現(xiàn)場(chǎng)可更換單元信息時(shí)所存在的上述缺陷,本發(fā)明提供了一種用于快速讀取現(xiàn)場(chǎng)可更換單元信息的方法。依據(jù)本發(fā)明的一個(gè)方面,提供了一種快速讀取現(xiàn)場(chǎng)可更換單元信息的方法,其中,該方法包括:a提供一偵測(cè)單元,該偵測(cè)單元連接至所述多個(gè)節(jié)點(diǎn);b預(yù)先定義一鏈表,并預(yù)設(shè)所述偵測(cè)單元與所述多個(gè)節(jié)點(diǎn)中的一節(jié)點(diǎn)通信的次數(shù)N,其中,N為自然數(shù);c將所述偵測(cè)單元與所述節(jié)點(diǎn)之間N次通信所需的通信參數(shù)加入所述鏈表中,并執(zhí)行所述偵測(cè)單元與所述節(jié)點(diǎn)之間的N次通信,以獲取該節(jié)點(diǎn)的部分現(xiàn)場(chǎng)可更換單元信息;d根據(jù)所獲取的部分現(xiàn)場(chǎng)可更換單元信息,計(jì)算獲取該節(jié)點(diǎn)的全部現(xiàn)場(chǎng)可更換單元信息所需的通信次數(shù)M,其中,M為自然數(shù)并且M>N;以及e將所述偵測(cè)單元與所述節(jié)點(diǎn)之間剩余的(M-N)次通信所需的通信參數(shù)加入所述鏈表中,并執(zhí)行所述偵測(cè)單元與所述節(jié)點(diǎn)之間的(M-N)次通信,以獲取所述節(jié)點(diǎn)的其余現(xiàn)場(chǎng)可更換單元信息,從而得到所述節(jié)點(diǎn)的全部現(xiàn)場(chǎng)可更換單元信息。優(yōu)選地,步驟d還包括:在所述偵測(cè)單元與所述節(jié)點(diǎn)之間第i次通信后,根據(jù)所獲取的部分現(xiàn)場(chǎng)可更換單元信息來(lái)判斷是否能夠獲取所述節(jié)點(diǎn)的全部現(xiàn)場(chǎng)可更換單元信息所需的通信次數(shù)M,其中,i<N;以及當(dāng)無(wú)法得到通信次數(shù)M時(shí),繼續(xù)執(zhí)行所述偵測(cè)單元與所述節(jié)點(diǎn)之間的第(i+1)次通信,直至獲取所述節(jié)點(diǎn)的全部現(xiàn)場(chǎng)可更換單元信息所需的通信次數(shù)M。優(yōu)選地,步驟d還包括:根據(jù)所獲取的部分現(xiàn)場(chǎng)可更換單元信息,讀取所述部分現(xiàn)場(chǎng)可更換單元信息的頭文件信息,并根據(jù)所述頭文件信息來(lái)獲取與所述部分現(xiàn)場(chǎng)可更換單元信息相對(duì)應(yīng)的區(qū)域相關(guān)信息;以及在得到所述區(qū)域相關(guān)信息后,選擇偏移地址最大的區(qū)域,并讀取該區(qū)域的分區(qū)頭文件信息,進(jìn)而根據(jù)所述分區(qū)頭文件信息確定獲取所述節(jié)點(diǎn)的全部現(xiàn)場(chǎng)可更換單元信息所需的通信次數(shù)M。更優(yōu)選地,所述分區(qū)頭文件信息包括該區(qū)域的字節(jié)長(zhǎng)度。優(yōu)選地,該鏈表為執(zhí)行方式為先進(jìn)先出的鏈表。更優(yōu)選地,所述偵測(cè)單元與所述節(jié)點(diǎn)之間進(jìn)行通信所需的通信參數(shù)具有多個(gè)不同的優(yōu)先級(jí),并且優(yōu)先級(jí)高的通信參數(shù)先于優(yōu)先級(jí)低的通信參數(shù)加入所述鏈表中。優(yōu)選地,當(dāng)所述鏈表中不包含所述偵測(cè)單元與所述節(jié)點(diǎn)之間通信所需的通信參數(shù)時(shí),選擇所述多個(gè)節(jié)點(diǎn)中的另一節(jié)點(diǎn),從而使所述偵測(cè)單元透過(guò)一線路切換裝置連接至所述另一節(jié)點(diǎn),并執(zhí)行所述偵測(cè)單元與所述另一節(jié)點(diǎn)之間的通信,以獲得所述另一節(jié)點(diǎn)的現(xiàn)場(chǎng)可更換單元信息。優(yōu)選地,所述現(xiàn)場(chǎng)可更換單元信息以I2C方式傳送至所述偵測(cè)單元。優(yōu)選地,所述節(jié)點(diǎn)為網(wǎng)絡(luò)切換裝置(LANSwitch)、集束磁盤(pán)(JustaBunchofDisks,JBOD)或主板(Motherboard)。采用本發(fā)明的快速讀取現(xiàn)場(chǎng)可更換單元信息的方法,通過(guò)預(yù)設(shè)所述偵測(cè)單元與一節(jié)點(diǎn)通信的通信次數(shù),并執(zhí)行所述偵測(cè)單元與所述節(jié)點(diǎn)之間預(yù)設(shè)次數(shù)的通信來(lái)得到部分現(xiàn)場(chǎng)可更換單元信息,進(jìn)而根據(jù)該部分現(xiàn)場(chǎng)可更換單元信息來(lái)計(jì)算獲取全部現(xiàn)場(chǎng)可更換單元信息。因此,該方法提高了多個(gè)節(jié)點(diǎn)中每一節(jié)點(diǎn)的FRU信息的讀取速度,并且能夠保證節(jié)點(diǎn)FRU信息的實(shí)時(shí)性,進(jìn)而可快速地基于FRU信息來(lái)識(shí)別節(jié)點(diǎn)屬性。附圖說(shuō)明讀者在參照附圖閱讀了本發(fā)明的具體實(shí)施方式以后,將會(huì)更清楚地了解本發(fā)明的各個(gè)方面。其中,圖1示出依據(jù)本發(fā)明的一個(gè)方面的快速讀取FRU信息的方法流程圖。具體實(shí)施方式為了使本申請(qǐng)所揭示的技術(shù)內(nèi)容更加詳盡與完備,可參照附圖以及本發(fā)明的下述各種具體實(shí)施例,附圖中相同的標(biāo)記代表相同或相似的組件。然而,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,下文中所提供的實(shí)施例并非用來(lái)限制本發(fā)明所涵蓋的范圍。此外,附圖僅僅用于示意性地加以說(shuō)明,并未依照其原尺寸進(jìn)行繪制。下面參照附圖,對(duì)本發(fā)明各個(gè)方面的具體實(shí)施方式作進(jìn)一步的詳細(xì)描述。如前所述,現(xiàn)有技術(shù)在讀取FRU信息時(shí),采用hook接口方式,每次與單個(gè)節(jié)點(diǎn)只能通信一定的次數(shù)。然而,完整讀取FRU信息所需的通信次數(shù)并非預(yù)知,進(jìn)而使讀取整個(gè)FRU將需要分成很多次,每次也只能得到有限的FRU信息,這將大大地延緩FRU信息的讀取時(shí)長(zhǎng),影響后續(xù)節(jié)點(diǎn)的FRU信息讀取進(jìn)程,嚴(yán)重時(shí)還會(huì)造成FRU信息不實(shí)時(shí)。例如,這些節(jié)點(diǎn)可以是網(wǎng)絡(luò)切換裝置(LANSwitch)、集束磁盤(pán)(JustaBunchofDisks,JBOD)或主板(Motherboard)。圖1示出依據(jù)本發(fā)明的一個(gè)方面的快速讀取FRU信息的方法流程圖。在該讀取方法中,首先執(zhí)行步驟S101,提供一偵測(cè)單元,例如智能電源偵測(cè)單元(SPDU,SmartPowerDetectUnit),該偵測(cè)單元經(jīng)由一線路切換裝置連接至多個(gè)節(jié)點(diǎn)。然后執(zhí)行步驟S103,預(yù)先定義一鏈表,并且預(yù)設(shè)所述偵測(cè)單元與所述多個(gè)節(jié)點(diǎn)中一節(jié)點(diǎn)通信的次數(shù)N,其中N為自然數(shù)。需要指出的是,預(yù)定義鏈表和預(yù)設(shè)通信次數(shù)N并不必特別規(guī)定先后次序,并且所述偵測(cè)單元與所述節(jié)點(diǎn)通信的預(yù)設(shè)次數(shù)N可根據(jù)實(shí)際需要進(jìn)行靈活調(diào)整。接著執(zhí)行步驟S105,將所述偵測(cè)單元與所述節(jié)點(diǎn)之間N次通信所需的通信參數(shù)加入上述預(yù)先定義的鏈表中,并執(zhí)行所述偵測(cè)單元與所述節(jié)點(diǎn)之間的N次通信,從而獲得該節(jié)點(diǎn)的部分現(xiàn)場(chǎng)可更換單元信息。在步驟S107中,根據(jù)所獲取的部分現(xiàn)場(chǎng)可更換單元信息,計(jì)算獲取該節(jié)點(diǎn)的全部現(xiàn)場(chǎng)可更換單元信息所需的通信次數(shù)M,其中,M為自然數(shù)并且M>N。最后執(zhí)行步驟S109,將所述偵測(cè)單元與所述節(jié)點(diǎn)之間剩余的(M-N)次通信所需的通信參數(shù)加入所述鏈表中,并執(zhí)行所述偵測(cè)單元與節(jié)點(diǎn)之間的(M-N)次通信,以獲取所述節(jié)點(diǎn)的其余現(xiàn)場(chǎng)可更換單元信息,從而得到所述節(jié)點(diǎn)的全部現(xiàn)場(chǎng)可更換單元信息。較佳地,該節(jié)點(diǎn)的FRU信息以I2C方式傳送至所述偵測(cè)單元。在一具體實(shí)施例中,在偵測(cè)單元與一節(jié)點(diǎn)之間第i次通信后,根據(jù)所獲取的部分FRU信息來(lái)判斷是否能夠獲取所述節(jié)點(diǎn)的全部FRU信息所需的通信次數(shù)M,其中,i<N;以及當(dāng)無(wú)法得到通信次數(shù)M時(shí),繼續(xù)執(zhí)行所述偵測(cè)單元與該節(jié)點(diǎn)之間的第(i+1)次通信,直至獲取該節(jié)點(diǎn)的全部FRU信息所需的通信次數(shù)M。較佳地,根據(jù)所獲取的部分FRU信息,讀取該部分FRU信息中的頭文件信息,并根據(jù)該頭文件信息來(lái)獲取與該部分FRU信息相對(duì)應(yīng)的區(qū)域相關(guān)信息。例如,該區(qū)域相關(guān)信息包括,該FRU信息具有多少個(gè)區(qū)域,每一區(qū)域的長(zhǎng)度為多少,每個(gè)區(qū)域的偏移地址等等。在得到該區(qū)域相關(guān)信息后,選擇偏移地址最大的區(qū)域,并讀取該區(qū)域的分區(qū)頭文件信息,進(jìn)而根據(jù)該分區(qū)頭文件信息來(lái)確定獲取該節(jié)點(diǎn)的全部FRU信息所需的通信次數(shù)M。例如,該分區(qū)頭文件信息包括該區(qū)域的字節(jié)長(zhǎng)度。在另一具體實(shí)施例中,該鏈表為執(zhí)行方式為先進(jìn)先出的鏈表,即,先輸入所述鏈表的數(shù)據(jù)率先從所述鏈表中輸出。更優(yōu)選地,偵測(cè)單元與該節(jié)點(diǎn)之間進(jìn)行通信所需的通信參數(shù)具有多個(gè)不同的優(yōu)先級(jí),并且優(yōu)先級(jí)高的通信參數(shù)先于優(yōu)先級(jí)低的通信參數(shù)加入所述鏈表中。此外,當(dāng)所述鏈表中不包含偵測(cè)單元與該節(jié)點(diǎn)之間通信所需的通信參數(shù)時(shí),選擇多個(gè)節(jié)點(diǎn)中的另一節(jié)點(diǎn),從而使偵測(cè)單元透過(guò)一線路切換裝置連接至另一節(jié)點(diǎn),并執(zhí)行偵測(cè)單元與另一節(jié)點(diǎn)之間的通信,以獲得所述另一節(jié)點(diǎn)的現(xiàn)場(chǎng)可更換單元信息。由于獲得該另一節(jié)點(diǎn)的全部FRU信息的實(shí)現(xiàn)流程與上述偵測(cè)單元與該節(jié)點(diǎn)通信以得到其全部FRU信息的實(shí)現(xiàn)流程相同或相似,為描述簡(jiǎn)便起見(jiàn),在此不再贅述。采用本發(fā)明的快速讀取現(xiàn)場(chǎng)可更換單元信息的方法,通過(guò)預(yù)設(shè)所述偵測(cè)單元與一節(jié)點(diǎn)通信的通信次數(shù),并執(zhí)行所述偵測(cè)單元與所述節(jié)點(diǎn)之間預(yù)設(shè)次數(shù)的通信來(lái)得到部分現(xiàn)場(chǎng)可更換單元信息,進(jìn)而根據(jù)該部分現(xiàn)場(chǎng)可更換單元信息來(lái)計(jì)算獲取全部現(xiàn)場(chǎng)可更換單元信息。因此,該方法提高了多個(gè)節(jié)點(diǎn)中每一節(jié)點(diǎn)的FRU信息的讀取速度,并且能夠保證節(jié)點(diǎn)FRU信息的實(shí)時(shí)性,進(jìn)而可快速地基于FRU信息來(lái)識(shí)別節(jié)點(diǎn)屬性。上文中,參照附圖描述了本發(fā)明的具體實(shí)施方式。但是,本領(lǐng)域中的普通技術(shù)人員能夠理解,在不偏離本發(fā)明的精神和范圍的情況下,還可以對(duì)本發(fā)明的具體實(shí)施方式作各種變更和替換。這些變更和替換都落在本發(fā)明權(quán)利要求書(shū)所限定的范圍內(nèi)。