一種clump自動熱插拔的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及系統(tǒng)軟件Linux內(nèi)核技術(shù)領(lǐng)域,特別涉及一種Clump自動熱插拔的方法。
【背景技術(shù)】
[0002]隨著計算機技術(shù)和虛擬化技術(shù)的發(fā)展,為了更加高效地使用資源實現(xiàn)了資源的彈性配置。作為資源的管理者我們除了利用虛擬化技術(shù)實現(xiàn)資源的彈性配置外,我們還可以通過硬件資源的添加和刪除來動態(tài)管理我們的資源。為了更好地實現(xiàn)硬件資源的動態(tài)管理,內(nèi)核開始支持RAS新特性,這一特性的出現(xiàn)使得硬件資源的動態(tài)配置可以在系統(tǒng)運行的時候把影響進一步降低。
[0003]基于此,本發(fā)明設(shè)計了一種clump自動熱插拔的方法。該方法不僅可以在最短的時間內(nèi)實現(xiàn)資源的彈性配置,還可以實現(xiàn)運行著關(guān)鍵業(yè)務(wù)主機的宕機風險大大降低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明為了彌補現(xiàn)有技術(shù)的缺陷,提供了一種簡單高效的clump自動熱插拔的方法。
[0005]本發(fā)明是通過如下技術(shù)方案實現(xiàn)的:
一種c I ump自動熱插拔的方法,其特征在于:通過加載內(nèi)核模塊的方式觸發(fā)no de的物理熱加操作,通過shel I腳本實現(xiàn)對BMC管理系統(tǒng)發(fā)送熱插或者熱拔命令的檢測以及clump的熱插拔功能,通過ipmi工具進行BMC、B10S和OS之間的信息同步。
[0006 ]本發(fā)明c I ump自動熱插拔的方法,包括以下步驟:
(1)準備好內(nèi)核、BIOS、she 11腳本以及內(nèi)核模塊;
(2)搭建ipmitool環(huán)境;
(3)搭建shell腳本運行環(huán)境;
(4)登錄BMC管理系統(tǒng)觸發(fā)熱加或者熱拔操作;
(5)根據(jù)OS從BMC獲得的參數(shù)執(zhí)行相應(yīng)的操作。
[0007]所述步驟(I)中,首先到L i n u X內(nèi)核官網(wǎng)下載一個對RA S支持較好的內(nèi)核,打上patch并正確配置編譯選項使其更好地支持內(nèi)核的RAS特性,編譯安裝內(nèi)核把內(nèi)核鏡像文件準備好;然后把支持RAS特性的B1S程序燒錄到B1S中,啟動服務(wù)器,并對B1S進行設(shè)置,使其支持CPU和內(nèi)存的熱插拔;最后把實現(xiàn)不停檢測BMC請求的shell腳本check-bmc.sh和實現(xiàn)c lump自動化熱加的she 11腳本auto-online.sh以及實現(xiàn)clump自動化熱拔的she 11腳本auto-off line, sh準備好,放到/opt/hotplug-scripts/目錄下;把實現(xiàn)觸發(fā)node物理熱加的模塊編譯好也放到/opt/hotplug-scripts/目錄下。
[0008]所述步驟(2)中,為了能運行ipmi命令,需要加載ipmi_msghandler、impi_si和ipmi_devintf模塊,同時,為了在系統(tǒng)啟動后就可以運行ipmi命令,把加載模塊代碼放到/etc/rc.d/rc.local文件中。
[0009]所述步驟(3)中,為了實現(xiàn)檢查BMC請求的shell腳本,以類似于守護進程的方式不停地檢查,she 11腳本以nohup和后臺運行的方式執(zhí)行,并把執(zhí)行腳本放到/etc/rc.d/rc.local文件中,實現(xiàn)服務(wù)器啟動后就能不停地檢查BMC的請求。
[00?0]所述步驟(4)中,登錄進BMC管理系統(tǒng),選擇系統(tǒng)維護功能模塊下的clump上下線功能,當前clumpl節(jié)點處于off line狀態(tài),其off line按鈕不可用,點擊clumpl對應(yīng)的online按鈕,觸發(fā)c lump I的上線操作。
[00??] 所述步驟(5)中,自動檢測BMC請求腳本根據(jù)ipmi 0x2e 0x06命令返回的結(jié)果0101 01 00,得知BMC申請進行過clmupl的online操作,然后調(diào)用/opt/hotplug-scripts目錄下的自動上線腳本auto-online.sh 01,為了防止auto-online.sh腳本受關(guān)閉shel I窗口的影響,在運行auto-online, sh的時候需要以nohup的形式運行;
在auto-online, sh腳本中,首先根據(jù)參數(shù)找到該clump下包含的所有node,然后對所有node調(diào)用加載模塊操作觸發(fā)node的物理熱加,然后對node下的所有CPU和memory進行邏輯熱加操作;
在執(zhí)行node的物理熱加前OS運行ipmi 0x2e 0x05 01 01 01 01,把substatus標記位置為01,表明B1S flow正在運行中,B1S flow完成后,B1S會把substatus標記位置為00表明B1S flow執(zhí)行完成,在B1S flow執(zhí)行完成后才可以執(zhí)行下面的操作;B1S和OS之間的同步主要是為了防止亂序執(zhí)行,防止物理熱加過程還沒完成就執(zhí)行邏輯熱加流程;
執(zhí)行完所有上線操作后,運行ipmi 0x2e 0x05 00 01 01 00通知BMC OS上線操作完成,BMC獲得該消息后會更新c Iumpl的狀態(tài)為online ,online按鈕不可用,off line按鈕可用。
[0012]為了讓熱加上的clumpl將來能夠順利熱拔,在邏輯熱加的時候需要按照內(nèi)存塊從大至1J小的川頁序執(zhí)對丁echo online—movable > /sys /devices /system /memory /memoryXX /status操作,把物理熱加到normal zone的內(nèi)存轉(zhuǎn)移到movable zone中。在開機啟動項中也需要添加movable_node.conf ig文件中需要conf ig_mvable_node=y,上述操作才會生效。
[0013]本發(fā)明的有益效果是:該clump自動熱插拔的方法,當系統(tǒng)運行過程中故障管理系統(tǒng)提示某個clump節(jié)點上的內(nèi)存或者CPU存在潛在故障風險時,可以在故障發(fā)生前一鍵式完成某一clump節(jié)點的熱拔,并給FPGA斷電后,將clump節(jié)點拔下來,換上新的clump節(jié)點,再一鍵式完成新clump節(jié)點的熱插操作,這樣就能很好地預防運行著關(guān)鍵業(yè)務(wù)的主機發(fā)生宕機的風險。
【附圖說明】
[0014]附圖1為本發(fā)明clump自動熱插拔的方法示意圖。
【具體實施方式】
[0015]為了使本發(fā)明所要解決的技術(shù)問題、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行詳細的說明。應(yīng)當說明的是,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0016]該clump自動熱插拔的方法,通過加載內(nèi)核模塊的方式觸發(fā)node的物理熱加操作,通過shell腳本實現(xiàn)對BMC管理系統(tǒng)發(fā)送熱插或者熱拔命令的檢測以及clump的熱插拔功能,通過ipmi工具進行BMC、B1S和OS之間的信息同步。
[0017]本發(fā)明clump自動熱插拔的方法,包括以下步驟:
(1)準備好內(nèi)核、BIOS、she 11腳本以及內(nèi)核模塊;
(2)搭建ipmitool環(huán)境;
(3)搭建shell腳本運行環(huán)境;
(4)登錄BMC管理系統(tǒng)觸發(fā)熱加或者熱拔操作;
(5)根據(jù)OS從BMC獲得的參數(shù)執(zhí)行相應(yīng)的操作。
[0018]所述步驟(I)中,首先到Linux內(nèi)核官網(wǎng)下載一個對RAS支持較好的內(nèi)核,打上patch并正確配置編譯選項使其更好地支持內(nèi)核的RAS特性,編譯安裝內(nèi)核把內(nèi)核鏡像文件準備好;然后把支持RAS特性的B1S程序燒錄到B1S中,啟動服務(wù)器,并對B1S進行設(shè)置,使其支持CPU和內(nèi)存的熱插拔;最后把實現(xiàn)不停檢測BMC請求的shell腳本check-bmc.sh和實現(xiàn)c lump自動化熱加的she 11腳本auto-online.sh以及實現(xiàn)clump自動化熱拔的she 11腳本auto-off line, sh準備好,放到/opt/hotplug-scripts/目錄下;把實現(xiàn)觸發(fā)node物理熱加的模塊編譯好也放到/opt/hotplug-scripts/目錄下。
[0019]所述步驟(2)中,為了能運行ipmi命令,需要加載ipmi_msghandler、impi_si和ipmi_devintf模塊,同時,為了在系統(tǒng)啟動后就可以運行ipmi命令,把加載模塊代碼放到/etc/rc.d/rc.local文件中。
[0020]所述步驟(3)中,為了實現(xiàn)檢查BMC請求的shell腳本,以類似于守護進程的方式不停地檢查,she