一種控制節(jié)點、刷新外插卡驅(qū)動的系統(tǒng)和方法
【專利摘要】本發(fā)明提供了一種控制節(jié)點、刷新外插卡驅(qū)動的系統(tǒng)和方法,該控制節(jié)點,通過確定單元確定各種外插卡驅(qū)動文件;通過檢測單元登錄外設(shè)的目標節(jié)點,檢測外設(shè)的目標節(jié)點中操作系統(tǒng)類型及外插卡類型和版本;通過傳輸單元接收確定單元發(fā)送的各種外插卡驅(qū)動,根據(jù)檢測單元檢測的每一個外設(shè)的目標節(jié)點中各種操作系統(tǒng)類型及外插卡類型和版本,為每一個外設(shè)的目標節(jié)點中的每一個外插卡確定目標驅(qū)動文件,將目標驅(qū)動文件發(fā)送給對應(yīng)的目標節(jié)點;驅(qū)動刷新單元利用外設(shè)的至少一個目標節(jié)點接收到的目標驅(qū)動文件,刷新外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動,本發(fā)明提供的方案能夠有效地提高外插卡驅(qū)動更新效率。
【專利說明】
一種控制節(jié)點、刷新外插卡驅(qū)動的系統(tǒng)和方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種控制節(jié)點、刷新外插卡驅(qū)動的系統(tǒng)和方法。
【背景技術(shù)】
[0002]隨著人們對計算機及網(wǎng)絡(luò)的使用需求越來越大,為了合理應(yīng)用機房的空間,服務(wù)器機柜(通常安裝有20至80個服務(wù)器)應(yīng)運而生。在對服務(wù)器機柜進行日常維護過程中,常常需要對這20至80個服務(wù)器中各種外插卡(網(wǎng)卡、RAID卡、HBA卡等)的驅(qū)動進行升級刷新。
[0003]目前,各種外插卡驅(qū)動升級刷新的方式主要是,手動將各個驅(qū)動拷貝到服務(wù)器中,并通過手動方式進行驅(qū)動安裝更新,而對于系統(tǒng)內(nèi)核修改的服務(wù)器來說,則需要專業(yè)技術(shù)人員先手動編譯驅(qū)動,再安裝更新編譯后的驅(qū)動,如果更新一個驅(qū)動需要大約10至15分鐘,對機柜中每個服務(wù)器中外插卡的驅(qū)動逐個進行刷新,將浪費較長的時間,造成機柜中服務(wù)器的外插卡驅(qū)動更新效率較低。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供了一種控制節(jié)點、刷新外插卡驅(qū)動的系統(tǒng)和方法,有效地提高了外插卡驅(qū)動更新效率。
[0005]—種控制節(jié)點,與外設(shè)的至少一個目標節(jié)點相連,包括:確定單元、檢測單元、傳輸單元及驅(qū)動刷新單元,其中,
[0006]所述確定單元,用于確定各種外插卡驅(qū)動文件,并將所述各種外插卡驅(qū)動文件發(fā)送給所述傳輸單元;
[0007]所述檢測單元,用于登錄所述外設(shè)的至少一個目標節(jié)點,檢測所述外設(shè)的至少一個目標節(jié)點中操作系統(tǒng)類型及外插卡類型和版本;
[0008]所述傳輸單元,用于接收所述確定單元發(fā)送的各種外插卡驅(qū)動,根據(jù)所述檢測單元檢測的每一個外設(shè)的目標節(jié)點中各種操作系統(tǒng)類型及外插卡類型和版本,為每一個外設(shè)的目標節(jié)點中的每一個外插卡確定目標驅(qū)動文件,將所述目標驅(qū)動文件發(fā)送給對應(yīng)的目標節(jié)點,并觸發(fā)驅(qū)動刷新單元;
[0009]所述驅(qū)動刷新單元,用于在接收到所述傳輸單元的觸發(fā)時,利用所述外設(shè)的至少一個目標節(jié)點接收到的目標驅(qū)動文件,刷新所述外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動。
[0010]優(yōu)選地,上述控制節(jié)點,進一步包括:編譯單元,其中,
[0011]所述編譯單元,用于根據(jù)所述檢測單元檢測出的外設(shè)的至少一個目標節(jié)點中操作系統(tǒng)類型,生成對應(yīng)的編譯信息;
[0012]所述傳輸單元,進一步用于將所述編譯單元生成的編譯信息發(fā)送給對應(yīng)的外設(shè)的目標節(jié)點;
[0013]所述驅(qū)動刷新單元,進一步用于根據(jù)所述傳輸單元傳輸?shù)木幾g信息,修改對應(yīng)的目標節(jié)點接收到的目標驅(qū)動文件,利用修改后的目標驅(qū)動文件刷新所述外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動。
[0014]優(yōu)選地,上述控制節(jié)點,進一步包括:配置單元,其中,
[0015]所述配置單元,用于為所述外設(shè)的至少一個目標節(jié)點中每一個目標節(jié)點配置對應(yīng)的IP,并將每一個目標節(jié)點配置對應(yīng)的IP發(fā)送給所述檢測單元;
[0016]所述檢測單元,進一步用于接收所述配置單元發(fā)送的每一個目標節(jié)點對應(yīng)的IP,并通過在下述登錄腳本中自動輸入目標IP,登錄到該目標IP對應(yīng)的目標節(jié)點;
[0017]登錄腳本:
[0018]#!/bin/bash
[0019]funct1n 1gonO
[0020]{ssh$i}
[0021]for i in{l,N}
[0022]do
[0023]ech0"-----------$1--------"
[0024]logon$i"$l"&
[0025]done
[0026]其中,logon()表征登錄的主體程序表征第i個目標節(jié)點的IP;N表征目標節(jié)點總數(shù);〃$1〃表征順序執(zhí)行下一步程序;&表征轉(zhuǎn)入后臺循環(huán)執(zhí)行腳本。
[0027]優(yōu)選地,所述檢測單元,進一步用于通過下述檢測命令,點亮每一個外設(shè)的目標節(jié)點中BMC的標識LED,確定與每一個外設(shè)的目標節(jié)點之間通信暢通;
[0028]檢測命令:
[0029]for i in{ I ,N}
[0030]do ssh cu$i ipmitool chassis identify
[0031]其中,N表征目標節(jié)點總數(shù);表征第i個目標節(jié)點的IP。
[0032]優(yōu)選地,所述傳輸單元,用于利用下述傳輸腳本,將目標驅(qū)動文件和編譯信息傳輸給對應(yīng)的外設(shè)目標節(jié)點;
[0033]傳輸腳本:
[0034]#!/bin/bash
[0035]funct1n scopyO
[0036]{scp$l$2$3}
[0037]scopy afulnx rom 192.168.1.$1:/root/Drive/
[0038]done
[0039]其中,scopyO程序主體為遠程拷貝scp;$l表征目標驅(qū)動文件;$2表征編譯信息;$3表征目標驅(qū)動文件在目標節(jié)點的存儲目錄。
[0040]優(yōu)選地,上述控制節(jié)點,進一步包括:
[0041 ]驗證單元,用于利用下述抓取腳本抓取外設(shè)的至少一個目標節(jié)點中各個外插卡驅(qū)動版本信息,并為所述版本信息生成驅(qū)動版本文檔,驗證所述版本文檔中的版本信息與所述驅(qū)動更新單元接收到的目標驅(qū)動文件的版本信息一致;
[0042]抓取腳本:
[0043]for i in{l,N}
[0044]do echo“cu$i”>>check.txt
[0045]將當(dāng)前目標節(jié)點的名稱寫入check, txt文檔
[0046]ssh 192.168.1.$i dmesg|grep aac>>check.txt
[0047]在dmesg中抓取各種外插卡驅(qū)動版本號信息,寫入check.txt
[0048]Done。
[0049]—種刷新外插卡驅(qū)動的系統(tǒng),包括:上述任一所述的控制節(jié)點和至少一個目標節(jié)點,其中,
[0050]所述至少一個目標節(jié)點中,每一個目標節(jié)點,用于接收所述控制節(jié)點發(fā)送的外插卡驅(qū)動文件,并在所述控制節(jié)點的控制下,利用所述外插卡驅(qū)動文件刷新對應(yīng)的外插卡驅(qū)動。
[0051 ] —種利用上述任意一種控制節(jié)點實現(xiàn)的刷新外插卡驅(qū)動的方法,確定控制節(jié)點,并建立所述控制節(jié)點與至少一個目標節(jié)點之間的連接,還包括:
[0052]利用控制節(jié)點確定各種外插卡驅(qū)動文件;
[0053]登錄所述外設(shè)的至少一個目標節(jié)點,檢測所述外設(shè)的至少一個目標節(jié)點中操作系統(tǒng)類型及外插卡類型和版本;
[0054]根據(jù)每一個外設(shè)的目標節(jié)點中各種操作系統(tǒng)類型及外插卡類型和版本,為每一個外設(shè)的目標節(jié)點中的每一個外插卡確定目標驅(qū)動文件;
[0055]將所述目標驅(qū)動文件發(fā)送給對應(yīng)的目標節(jié)點;
[0056]利用所述外設(shè)的至少一個目標節(jié)點接收到的目標驅(qū)動文件,刷新所述外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動。
[0057]優(yōu)選地,上述方法進一步包括:根據(jù)外設(shè)的至少一個目標節(jié)點中操作系統(tǒng)類型,生成對應(yīng)的編譯信息;
[0058]所述將所述目標驅(qū)動發(fā)送給對應(yīng)的目標節(jié)點,包括:利用下述傳輸腳本,將目標驅(qū)動文件和編譯信息傳輸給對應(yīng)的外設(shè)目標節(jié)點;
[0059]傳輸腳本:
[0060]#!/bin/bash
[0061]funct1n scopyO
[0062]{scp$l$2$3}
[0063]scopy afulnx rom 192.168.1.$1:/root/Drive/
[0064]done
[0065]其中,scopyO程序主體為遠程拷貝scp;$l表征目標驅(qū)動文件;$2表征編譯信息;$3表征目標驅(qū)動文件在目標節(jié)點的存儲目錄;
[0066]所述刷新所述外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動,包括:根據(jù)所述編譯信息,修改對應(yīng)的目標節(jié)點接收到的目標驅(qū)動文件,利用修改后的目標驅(qū)動文件刷新所述外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動。
[0067]優(yōu)選地,上述方法進一步包括:
[0068]為所述至少一個目標節(jié)點中每一個目標節(jié)點配置對應(yīng)的IP;
[0069]所述登錄所述外設(shè)的至少一個目標節(jié)點,包括:通過在下述登錄腳本中自動輸入目標IP,登錄到該目標IP對應(yīng)的目標節(jié)點;
[0070]登錄腳本:
[0071]#!/bin/bash
[0072]funct1n 1gonO
[0073]{ssh$i}
[0074]for i in{ I ,N}
[0075]do
[0076]ech0"-----------$1--------"
[0077]logon$i"$l"&
[0078]done
[0079]其中,logon()表征登錄的主體程序表征第i個目標節(jié)點的IP;N表征目標節(jié)點總數(shù);〃$1〃表征順序執(zhí)行下一步程序;&表征轉(zhuǎn)入后臺循環(huán)執(zhí)行腳本。
[0080]優(yōu)選地,上述方法進一步包括:
[0081]通過下述檢測命令,點亮每一個外設(shè)的目標節(jié)點中BMC的標識LED,確定與每一個外設(shè)的目標節(jié)點之間通信暢通;
[0082]檢測命令:
[0083]for i in{l,N}
[0084]do ssh cu$i ipmitool chassis identify
[0085]其中,N表征目標節(jié)點總數(shù);表征第i個目標節(jié)點的IP。
[0086]優(yōu)選地,上述方法進一步包括:
[0087]利用下述抓取腳本抓取外設(shè)的至少一個目標節(jié)點中各個外插卡驅(qū)動版本信息,并為所述版本信息生成驅(qū)動版本文檔,驗證所述版本文檔中的版本信息與目標驅(qū)動文件的版本信息一致;
[0088]抓取腳本:
[0089]for i in{ I ,N}
[0090]do echo“cu$i”>>check.txt
[OO91 ] 將當(dāng)前目標節(jié)點的名稱寫入check.txt文檔
[0092]ssh 192.168.1.$i dmesg|grep aac>>check.txt
[0093]在dmesg中抓取各種外插卡驅(qū)動版本號信息,寫入check.txt
[0094]Done。
[0095]本發(fā)明實施例提供了一種控制節(jié)點、刷新外插卡驅(qū)動的系統(tǒng)和方法,該控制節(jié)點與外設(shè)的至少一個目標節(jié)點相連,通過確定單元確定各種外插卡驅(qū)動文件,并將各種外插卡驅(qū)動文件發(fā)送給所述傳輸單元;通過該單元整合了各種外插卡驅(qū)動文件以滿足不同目標節(jié)點和不同外插卡的需求,通過檢測單元登錄外設(shè)的至少一個目標節(jié)點,即該控制節(jié)點能夠登錄到各個目標節(jié)點,那么,通過傳輸單元為每一個外設(shè)的目標節(jié)點中的每一個外插卡確定目標驅(qū)動文件,將目標驅(qū)動發(fā)送給對應(yīng)的目標節(jié)點,通過驅(qū)動刷新單元利用目標驅(qū)動文件,刷新外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動,這整個過程中,控制節(jié)點能夠同時登錄到多個目標節(jié)點,實現(xiàn)同時為多個外插卡更新驅(qū)動,有效地提高了外插卡驅(qū)動更新效率。
【附圖說明】
[0096]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0097]圖1是本發(fā)明一個實施例提供的一種控制節(jié)點的結(jié)構(gòu)示意圖;
[0098]圖2是本發(fā)明另一個實施例提供的一種控制節(jié)點的結(jié)構(gòu)示意圖;
[0099]圖3是本發(fā)明又一個實施例提供的一種控制節(jié)點的結(jié)構(gòu)示意圖;
[0100]圖4是本發(fā)明又一個實施例提供的一種控制節(jié)點的結(jié)構(gòu)示意圖;
[0101]圖5是本發(fā)明一個實施例提供的刷新外插卡驅(qū)動的系統(tǒng)的結(jié)構(gòu)示意圖;
[0102]圖6是本發(fā)明一個實施例提供的一種刷新外插卡驅(qū)動的方法的流程圖;
[0103]圖7是本發(fā)明另一個實施例提供的一種刷新外插卡驅(qū)動的方法的流程圖。
【具體實施方式】
[0104]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例,基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0105]如圖1所示,本發(fā)明實施例提供一種控制節(jié)點,與外設(shè)的至少一個目標節(jié)點相連,包括:確定單元101、檢測單元102、傳輸單元103及驅(qū)動刷新單元104,其中,
[0106]確定單元101,用于確定各種外插卡驅(qū)動文件,并將各種外插卡驅(qū)動文件發(fā)送給傳輸單元103;
[0107]檢測單元102,用于登錄外設(shè)的至少一個目標節(jié)點,檢測外設(shè)的至少一個目標節(jié)點中操作系統(tǒng)類型及外插卡類型和版本;
[0108]傳輸單元103,用于接收確定單元101發(fā)送的各種外插卡驅(qū)動,根據(jù)檢測單元102檢測的每一個外設(shè)的目標節(jié)點中各種操作系統(tǒng)類型及外插卡類型和版本,為每一個外設(shè)的目標節(jié)點中的每一個外插卡確定目標驅(qū)動文件,將目標驅(qū)動文件發(fā)送給對應(yīng)的目標節(jié)點,并觸發(fā)控制單元104;
[0109]驅(qū)動刷新單元104,用于在接收到傳輸單元103的觸發(fā)時,利用外設(shè)的至少一個目標節(jié)點接收到的目標驅(qū)動文件,刷新外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動。
[0110]在圖1所示的實施例中,通過確定單元確定各種外插卡驅(qū)動文件,并將各種外插卡驅(qū)動文件發(fā)送給所述傳輸單元;通過該單元整合了各種外插卡驅(qū)動文件以滿足不同目標節(jié)點和不同外插卡的需求,通過檢測單元登錄外設(shè)的至少一個目標節(jié)點,即該控制節(jié)點能夠登錄到各個目標節(jié)點,那么,通過傳輸單元為每一個外設(shè)的目標節(jié)點中的每一個外插卡確定目標驅(qū)動文件,將目標驅(qū)動發(fā)送給對應(yīng)的目標節(jié)點,通過驅(qū)動刷新單元利用目標驅(qū)動文件,刷新外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動,這整個過程中,控制節(jié)點能夠同時登錄到多個目標節(jié)點,實現(xiàn)同時為多個外插卡更新驅(qū)動,有效地提高了機柜中服務(wù)器的外插卡驅(qū)動更新效率。
[0111]如圖2所示,在本發(fā)明另一實施例中,上述控制節(jié)點,進一步包括:編譯單元201,其中,
[0112]編譯單元201,用于根據(jù)檢測單元102檢測出的外設(shè)的至少一個目標節(jié)點中操作系統(tǒng)類型,生成對應(yīng)的編譯信息;
[0113]傳輸單元103,進一步用于將編譯單元201生成的編譯信息發(fā)送給對應(yīng)的外設(shè)的目標節(jié)點;
[0114]驅(qū)動刷新單元104,進一步用于根據(jù)傳輸單元103傳輸?shù)木幾g信息,修改對應(yīng)的目標節(jié)點接收到的目標驅(qū)動文件,利用修改后的目標驅(qū)動文件刷新外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動。
[0115]如圖3所示,在本發(fā)明又一實施例中,上述控制節(jié)點,進一步包括:配置單元301,其中,
[0116]配置單元301,用于為外設(shè)的至少一個目標節(jié)點中每一個目標節(jié)點配置對應(yīng)的IP,并將每一個目標節(jié)點配置對應(yīng)的IP發(fā)送給檢測單元102;
[0117]檢測單元102,進一步用于接收配置單元301發(fā)送的每一個目標節(jié)點對應(yīng)的IP,并通過在下述登錄腳本中自動輸入目標IP,登錄到該目標IP對應(yīng)的目標節(jié)點;
[0118]登錄腳本:
[0119]#!/bin/bash
[0120]funct1n 1gonO
[0121]{ssh$i}
[0122]for i in{l,N}
[0123]do
[0124]ech0"-----------$1--------"
[0125]logon$i"$l"&
[0126]done
[0127]其中,logon()表征登錄的主體程序表征第i個目標節(jié)點的IP;N表征目標節(jié)點總數(shù);〃$1〃表征順序執(zhí)行下一步程序;&表征轉(zhuǎn)入后臺循環(huán)執(zhí)行腳本。
[0128]在本發(fā)明另一實施例中,檢測單元102,進一步用于通過下述檢測命令,點亮每一個外設(shè)的目標節(jié)點中BMC的標識LED,確定與每一個外設(shè)的目標節(jié)點之間通信暢通;
[0129]檢測命令:
[0130]for i in{l,N}
[0131]do ssh cu$i ipmitool chassis identify
[0132]其中,N表征目標節(jié)點總數(shù);表征第i個目標節(jié)點的IP。
[0133]在本發(fā)明又一實施例中,傳輸單元103,用于利用下述傳輸腳本,將目標驅(qū)動文件和編譯信息傳輸給對應(yīng)的外設(shè)目標節(jié)點;
[0134]傳輸腳本:
[0135]#!/bin/bash
[0136]funct1n scopyO
[0137]{scp$l$2$3}
[0138]scopy afulnx rom 192.168.1.$1:/root/Drive/
[0139]done
[0140]其中,scopyO程序主體為遠程拷貝scp;$l表征目標驅(qū)動文件;$2表征編譯信息;$3表征目標驅(qū)動文件在目標節(jié)點的存儲目錄。
[0141 ]如圖4所示,在本發(fā)明另一實施例中,上述控制節(jié)點,進一步包括:
[0142]驗證單元401,用于利用下述抓取腳本抓取外設(shè)的至少一個目標節(jié)點中各個外插卡驅(qū)動版本信息,并為版本信息生成驅(qū)動版本文檔,驗證版本文檔中的版本信息與驅(qū)動更新單元104接收到的目標驅(qū)動文件的版本信息一致;
[0143]抓取腳本:
[0144]for i in{ I ,N}
[0145]do echo“cu$i”>>check.txt
[OH6] 將當(dāng)前目標節(jié)點的名稱寫入check, txt文檔
[0147] ssh 192.168.1.$i dmesg|grep aac>>check.txt
[0? 48] 在dmesg中抓取各種外插卡驅(qū)動版本號信息,寫入check.txt
[0149]Done0
[0150]如圖5所示,本發(fā)明實施例提供一種刷新外插卡驅(qū)動的系統(tǒng),包括:上述任意一種控制節(jié)點501和至少一個目標節(jié)點502,其中,
[0151 ]至少一個目標節(jié)點中,每一個目標節(jié)點502,用于接收控制節(jié)點501發(fā)送的外插卡驅(qū)動文件,并在控制節(jié)點501的控制下,利用外插卡驅(qū)動文件刷新對應(yīng)的外插卡驅(qū)動。
[0152]上述裝置/系統(tǒng)內(nèi)的各單元/節(jié)點之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
[0153]如圖6所示,本發(fā)明實施例提供了一種利用上述任意一種控制節(jié)點實現(xiàn)的刷新外插卡驅(qū)動的方法,該方法可以包括以下步驟:
[0154]步驟601:確定控制節(jié)點,并建立控制節(jié)點與至少一個目標節(jié)點之間的連接;
[0155]步驟602:利用控制節(jié)點確定各種外插卡驅(qū)動文件;
[0156]步驟603:登錄外設(shè)的至少一個目標節(jié)點,檢測外設(shè)的至少一個目標節(jié)點中操作系統(tǒng)類型及外插卡類型和版本;
[0157]步驟604:根據(jù)每一個外設(shè)的目標節(jié)點中各種操作系統(tǒng)類型及外插卡類型和版本,為每一個外設(shè)的目標節(jié)點中的每一個外插卡確定目標驅(qū)動文件;
[0158]步驟605:將目標驅(qū)動文件發(fā)送給對應(yīng)的目標節(jié)點;
[0159]步驟606:利用外設(shè)的至少一個目標節(jié)點接收到的目標驅(qū)動文件,刷新外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動。
[0160]在本發(fā)明一個實施例中,為了滿足個性化定制的操作系統(tǒng)中外插卡驅(qū)動更新的需求,上述方法進一步包括:根據(jù)外設(shè)的至少一個目標節(jié)點中操作系統(tǒng)類型,生成對應(yīng)的編譯信息;步驟605的【具體實施方式】,包括:利用下述傳輸腳本,將目標驅(qū)動文件和編譯信息傳輸給對應(yīng)的外設(shè)目標節(jié)點;
[0161]傳輸腳本:
[0162]#!/bin/bash
[0163]funct1n scopyO
[0164]{scp$l$2$3}
[0165]scopy afulnx rom 192.168.1.$1:/root/Drive/
[0166]done
[0167]其中,scopyO程序主體為遠程拷貝scp;$l表征目標驅(qū)動文件;$2表征編譯信息;$3表征目標驅(qū)動文件在目標節(jié)點的存儲目錄;
[0168]步驟606的【具體實施方式】,包括:根據(jù)編譯信息,修改對應(yīng)的目標節(jié)點接收到的目標驅(qū)動文件,利用修改后的目標驅(qū)動文件刷新所述外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動。
[0169]在本發(fā)明一個實施例中,為了實現(xiàn)控制節(jié)點登錄目標節(jié)點更加便捷,上述方法進一步包括:為至少一個目標節(jié)點中每一個目標節(jié)點配置對應(yīng)的IP;步驟603的【具體實施方式】,包括:通過在下述登錄腳本中自動輸入目標IP,登錄到該目標IP對應(yīng)的目標節(jié)點;
[0170]登錄腳本:
[0171]#!/bin/bash
[0172]funct1n 1gonO
[0173]{ssh$i}
[0174]for i in{l,N}
[0175]do
[0176]echo"-----------$1--------”
[0177]logon$i"$l"&
[0178]done
[0179]其中,logon()表征登錄的主體程序表征第i個目標節(jié)點的IP;N表征目標節(jié)點總數(shù);〃$1〃表征順序執(zhí)行下一步程序;&表征轉(zhuǎn)入后臺循環(huán)執(zhí)行腳本。
[0180]在本發(fā)明一個實施例中,為了保障控制節(jié)點與目標節(jié)點之間的連通,上述方法進一步包括:通過下述檢測命令,點亮每一個外設(shè)的目標節(jié)點中BMC的標識LED,確定與每一個外設(shè)的目標節(jié)點之間通信暢通;
[0181]檢測命令:
[0182]for i in{l,N}
[0183]do ssh cu$i ipmitool chassis identify
[0184]其中,N表征目標節(jié)點總數(shù);表征第i個目標節(jié)點的IP。
[0185]在本發(fā)明一個實施例中,為了保障外插卡驅(qū)動更新成功,上述方法進一步包括:利用下述抓取腳本抓取外設(shè)的至少一個目標節(jié)點中各個外插卡驅(qū)動版本信息,并為版本信息生成驅(qū)動版本文檔,驗證版本文檔中的版本信息與驅(qū)動更新單元接收到的目標驅(qū)動文件的版本信息一致;
[0186]抓取腳本:
[0187]for i in{l,N}
[0188]do echo“cu$i”>>check.txt
[0189]將當(dāng)前目標節(jié)點的名稱寫入check.txt文檔
[0190]ssh 192.168.1.$i dmesg|grep aac>>check.txt
[0191 ]在dmesg中抓取各種外插卡驅(qū)動版本號信息,寫入check, txt
[0192] Done。
[0193]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面以為一個機柜中40個服務(wù)器(目標節(jié)點)中的外插卡更新驅(qū)動為例,展開說明刷新外插卡驅(qū)動的方法,如圖7所示,該方法可以包括以下步驟:
[0194]步驟701:確定控制節(jié)點,并為機柜中的40個目標節(jié)點中每一個目標節(jié)點配置對應(yīng)的IP;
[0195]在該步驟中,可以將機柜中的40個目標節(jié)點,按照物理位置從下到上順序設(shè)置各個目標節(jié)點名稱并配置對應(yīng)的1?地址,例如(^1/192.168.1.1;(:112/192.168.1.2;……;cu40/192.168.1.40。
[0196]步驟702:建立控制節(jié)點與機柜中40個目標節(jié)點之間的連接;
[0197]為了保障控制節(jié)點與機柜中40個目標節(jié)點連通,在該步驟中,通過下述檢測命令,點亮每一個目標節(jié)點中BMC的標識LED,當(dāng)目標節(jié)點中BMC的標識LED點亮,則可以確定控制節(jié)點與每一個目標節(jié)點之間通信暢通;
[0198]檢測命令:
[0199]for i in{I,40}
[0200]do ssh cu$i ipmitool chassis identify
[0201]其中,N表征目標節(jié)點總數(shù);表征第i個目標節(jié)點的IP。
[0202 ]步驟703:利用控制節(jié)點確定各種外插卡驅(qū)動文件;
[0203]由于目標節(jié)點中外插卡的類型以及目標節(jié)點中操作系統(tǒng)類型有所差異,其需要的驅(qū)動文件也有所不同,該步驟主要是為了整合各種外插卡驅(qū)動文件,從而滿足不同目標節(jié)點,不同外插卡的需求。
[0204]步驟704:控制節(jié)點通過自動輸入目標IP,登錄到該目標IP對應(yīng)的目標節(jié)點;
[0205]在該步驟中,實現(xiàn)自動登錄的登錄腳本:
[0206]#!/bin/bash
[0207]funct1n 1gonO
[0208]{ssh$i}
[0209]for i in{ 1,40}
[0210]do
[0211]ech0"-----------$1--------"
[0212]logon$i"$l"&
[0213]done
[0214]其中,logon()表征登錄的主體程序表征第i個目標節(jié)點的IP;N表征目標節(jié)點總數(shù);〃$1〃表征順序執(zhí)行下一步程序;&表征轉(zhuǎn)入后臺循環(huán)執(zhí)行腳本。
[0215]通過循環(huán)執(zhí)行上述登錄腳本依次登錄到cul/192.1 6 8.1.1 ; c u 2 /192.168.1.2;……;cu40/192.168.1.40對應(yīng)的目標節(jié)點。
[0216]步驟705:檢測每一個目標節(jié)點中操作系統(tǒng)類型及外插卡類型和版本;
[0217]在該步驟中,檢測操作系統(tǒng)類型及外插卡類型和版本主要是為了在后續(xù)更新驅(qū)動過程中,能夠準確的為外插卡更新驅(qū)動。
[0218]步驟706:根據(jù)目標節(jié)點中操作系統(tǒng)類型,生成對應(yīng)的編譯信息;
[0219]該步驟主要是針對特定的操作系統(tǒng)來說,官方標準版本驅(qū)動并不適用于特定的操作系統(tǒng),該步驟生成的編譯信息是根據(jù)目標節(jié)點的操作系統(tǒng)類型生成,保障驅(qū)動能夠更新成功。
[0220]步驟707:根據(jù)每一個目標節(jié)點中各種操作系統(tǒng)類型及外插卡類型和版本,為每一個目標節(jié)點中的每一個外插卡確定目標驅(qū)動文件;
[0221 ]步驟708:將目標驅(qū)動文件和編譯信息傳輸給對應(yīng)的目標節(jié)點;
[0222]在該步驟中,可以利用下述傳輸腳本,將目標驅(qū)動文件和編譯信息傳輸給對應(yīng)的外設(shè)目標節(jié)點;
[0223]傳輸腳本:
[0224]#!/bin/bash
[0225]funct1n scopyO
[0226]{scp$l$2$3}
[0227]scopy afulnx rom 192.168.1.$1:/root/Drive/
[0228]done
[0229]其中,scopyO程序主體為遠程拷貝scp;$l表征目標驅(qū)動文件;$2表征編譯信息;$3表征目標驅(qū)動文件在目標節(jié)點的存儲目錄。
[0230]步驟709:根據(jù)編譯信息,修改對應(yīng)的目標節(jié)點接收到的目標驅(qū)動文件;
[0231 ]步驟710:利用修改后的目標驅(qū)動文件刷新外設(shè)的目標節(jié)點中的每一個外插卡驅(qū)動;
[0232]步驟711:抓取每一個目標節(jié)點中各個外插卡驅(qū)動版本信息,為版本信息生成驅(qū)動版本文檔;
[0233]在該步驟中,抓取每一個目標節(jié)點中各個外插卡驅(qū)動版本信息可以通過下述抓取腳本實現(xiàn)。
[0234]抓取腳本:
[0235]for i in{ 1,40}
[0236]do echo“cu$i,,>>check.txt
[0237]將當(dāng)前目標節(jié)點的名稱寫入check, txt文檔
[0238]ssh 192.168.1.$i dmesg|grep aac>>check.txt
[0239]在dmesg中抓取各種外插卡驅(qū)動版本號信息,寫入check.txt
[0240]Done0
[0241 ] 在該腳本中,check, txt為驅(qū)動版本文檔,將目標節(jié)點的名稱寫入check, txt文檔的過程為按照目標節(jié)點名稱順序?qū)懭隿heck, txt文檔中。在下述步驟判斷驅(qū)動是否更新成功,可以通過在check, txt中直觀的檢查所有目標節(jié)點的各種外插卡驅(qū)動版本號。
[0242]步驟712:判斷版本文檔中的版本信息與目標驅(qū)動文件的版本信息是否一致,如果是,則執(zhí)行步驟713;否則,執(zhí)行步驟714;
[0243]步驟713:確定目標節(jié)點中外插卡驅(qū)動更新成功,并結(jié)束當(dāng)前流程;
[0244]步驟714:確定未更新成功的外插卡,并重新進行更新。
[0245]根據(jù)上述方案,本發(fā)明的各實施例,至少具有如下有益效果:
[0246]1.通過確定單元確定各種外插卡驅(qū)動文件,并將各種外插卡驅(qū)動文件發(fā)送給所述傳輸單元;通過該單元整合了各種外插卡驅(qū)動文件以滿足不同目標節(jié)點和不同外插卡的需求,通過檢測單元登錄外設(shè)的至少一個目標節(jié)點,即該控制節(jié)點能夠登錄到各個目標節(jié)點,那么,通過傳輸單元為每一個外設(shè)的目標節(jié)點中的每一個外插卡確定目標驅(qū)動文件,將目標驅(qū)動發(fā)送給對應(yīng)的目標節(jié)點,通過驅(qū)動刷新單元利用目標驅(qū)動文件,刷新外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動,這整個過程中,控制節(jié)點能夠同時登錄到多個目標節(jié)點,實現(xiàn)同時為多個外插卡更新驅(qū)動,有效地提高了外插卡驅(qū)動更新效率。
[0247]2.本發(fā)明實施例通過控制節(jié)點遠程登錄到目標節(jié)點,傳輸驅(qū)動文件給目標節(jié)點,并通過驅(qū)動文件刷新目標節(jié)點中外插卡的驅(qū)動,整個過程無需人工的參與,控制節(jié)點實現(xiàn)了驅(qū)動更新的自動化。
[0248]3.通過編譯單元根據(jù)外設(shè)的至少一個目標節(jié)點中操作系統(tǒng)類型,生成對應(yīng)的編譯信息;通過驅(qū)動刷新單元根據(jù)編譯信息,修改對應(yīng)的目標節(jié)點接收到的目標驅(qū)動文件,利用修改后的目標驅(qū)動文件刷新外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動,通過生成的編譯信息能夠為特殊定制的操作系統(tǒng)更新外插卡驅(qū)動,有效地擴展了控制節(jié)點的應(yīng)用范圍。
[0249]4.通過抓取目標節(jié)點中各個外插卡驅(qū)動版本信息,并為版本信息生成驅(qū)動版本文檔,驗證版本文檔中的版本信息與目標驅(qū)動文件的版本信息一致,通過該過程保障了驅(qū)動更新的準確性。
[0250]5.通過為每一個目標節(jié)點配置對應(yīng)的IP,并通過在登錄腳本中自動輸入目標IP,登錄到該目標IP對應(yīng)的目標節(jié)點,能夠使控制節(jié)點自動登錄目標節(jié)點,進一步提高了驅(qū)動更新的自動化。
[0251]需要說明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個〃.....”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同因素。
[0252]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)中。
[0253]最后需要說明的是:以上所述僅為本發(fā)明的較佳實施例,僅用于說明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。
【主權(quán)項】
1.一種控制節(jié)點,其特征在于,與外設(shè)的至少一個目標節(jié)點相連,包括:確定單元、檢測單元、傳輸單元及驅(qū)動刷新單元,其中, 所述確定單元,用于確定各種外插卡驅(qū)動文件,并將所述各種外插卡驅(qū)動文件發(fā)送給所述傳輸單元; 所述檢測單元,用于登錄所述外設(shè)的至少一個目標節(jié)點,檢測所述外設(shè)的至少一個目標節(jié)點中操作系統(tǒng)類型及外插卡類型和版本; 所述傳輸單元,用于接收所述確定單元發(fā)送的各種外插卡驅(qū)動,根據(jù)所述檢測單元檢測的每一個外設(shè)的目標節(jié)點中各種操作系統(tǒng)類型及外插卡類型和版本,為每一個外設(shè)的目標節(jié)點中的每一個外插卡確定目標驅(qū)動文件,將所述目標驅(qū)動文件發(fā)送給對應(yīng)的目標節(jié)點,并觸發(fā)驅(qū)動刷新單元; 所述驅(qū)動刷新單元,用于在接收到所述傳輸單元的觸發(fā)時,利用所述外設(shè)的至少一個目標節(jié)點接收到的目標驅(qū)動文件,刷新所述外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動。2.根據(jù)權(quán)利要求1所述的控制節(jié)點,其特征在于,進一步包括:編譯單元,其中, 所述編譯單元,用于根據(jù)所述檢測單元檢測出的外設(shè)的至少一個目標節(jié)點中操作系統(tǒng)類型,生成對應(yīng)的編譯信息; 所述傳輸單元,進一步用于將所述編譯單元生成的編譯信息發(fā)送給對應(yīng)的外設(shè)的目標節(jié)點; 所述驅(qū)動刷新單元,進一步用于根據(jù)所述傳輸單元傳輸?shù)木幾g信息,修改對應(yīng)的目標節(jié)點接收到的目標驅(qū)動文件,利用修改后的目標驅(qū)動文件刷新所述外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動。3.根據(jù)權(quán)利要求1所述的控制節(jié)點,其特征在于,進一步包括:配置單元,其中, 所述配置單元,用于為所述外設(shè)的至少一個目標節(jié)點中每一個目標節(jié)點配置對應(yīng)的IP,并將每一個目標節(jié)點配置對應(yīng)的IP發(fā)送給所述檢測單元; 所述檢測單元,進一步用于接收所述配置單元發(fā)送的每一個目標節(jié)點對應(yīng)的IP,并通過在下述登錄腳本中自動輸入目標IP,登錄到該目標IP對應(yīng)的目標節(jié)點; 登錄腳本: #!/bin/bash funct1n 1gonO {ssh $i} for i in{l,N} do echo"-----------$1--------” logon$i"$l"& done 其中,logon()表征登錄的主體程序表征第i個目標節(jié)點的IP;N表征目標節(jié)點總數(shù);"$1"表征順序執(zhí)行下一步程序;&表征轉(zhuǎn)入后臺循環(huán)執(zhí)行腳本。4.根據(jù)權(quán)利要求3所述的控制節(jié)點,其特征在于,所述檢測單元,進一步用于: 通過下述檢測命令,點亮每一個外設(shè)的目標節(jié)點中BMC的標識LED,確定與每一個外設(shè)的目標節(jié)點之間通信暢通; 檢測命令: for i in{l,N} do ssh cu$i ipmitool chassis identify 其中,N表征目標節(jié)點總數(shù);表征第i個目標節(jié)點的IP。5.根據(jù)權(quán)利要求2所述的控制節(jié)點,其特征在于, 所述傳輸單元,用于利用下述傳輸腳本,將目標驅(qū)動文件和編譯信息傳輸給對應(yīng)的外設(shè)目標節(jié)點; 傳輸腳本: #!/bin/bash funct1n scopyO {scp$l$2$3} scopy afulnx rom 192.168.1.$1:/root/Drive/ done 其中,SCOpy()程序主體為遠程拷貝scp;$l表征目標驅(qū)動文件;$2表征編譯信息;$3表征目標驅(qū)動文件在目標節(jié)點的存儲目錄。6.根據(jù)權(quán)利要求1至4任一所述的控制節(jié)點,其特征在于,進一步包括: 驗證單元,用于利用下述抓取腳本抓取外設(shè)的至少一個目標節(jié)點中各個外插卡驅(qū)動版本信息,并為所述版本信息生成驅(qū)動版本文檔,驗證所述版本文檔中的版本信息與所述驅(qū)動更新單元接收到的目標驅(qū)動文件的版本信息一致; 抓取腳本: for i in{l,N}do echo Ucu$i,>>>check.txt 將當(dāng)前目標節(jié)點的名稱寫入check, txt文檔 ssh 192.168.1.$i dmesg|grep aac>>check.txt 在dmesg中抓取各種外插卡驅(qū)動版本號信息,寫入check.txt Done07.—種刷新外插卡驅(qū)動的系統(tǒng),其特征在于,包括:權(quán)利要求1至6任一所述的控制節(jié)點和至少一個目標節(jié)點,其中, 所述至少一個目標節(jié)點中,每一個目標節(jié)點,用于接收所述控制節(jié)點發(fā)送的外插卡驅(qū)動文件,并在所述控制節(jié)點的控制下,利用所述外插卡驅(qū)動文件刷新對應(yīng)的外插卡驅(qū)動。8.—種利用權(quán)力要求I至6任一所述的控制節(jié)點實現(xiàn)的刷新外插卡驅(qū)動的方法,其特征在于,確定控制節(jié)點,并建立所述控制節(jié)點與至少一個目標節(jié)點之間的連接,還包括: 利用控制節(jié)點確定各種外插卡驅(qū)動文件; 登錄所述外設(shè)的至少一個目標節(jié)點,檢測所述外設(shè)的至少一個目標節(jié)點中操作系統(tǒng)類型及外插卡類型和版本; 根據(jù)每一個外設(shè)的目標節(jié)點中各種操作系統(tǒng)類型及外插卡類型和版本,為每一個外設(shè)的目標節(jié)點中的每一個外插卡確定目標驅(qū)動文件; 將所述目標驅(qū)動文件發(fā)送給對應(yīng)的目標節(jié)點; 利用所述外設(shè)的至少一個目標節(jié)點接收到的目標驅(qū)動文件,刷新所述外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動。9.根據(jù)權(quán)利要求8所述的方法,其特征在于, 進一步包括:根據(jù)外設(shè)的至少一個目標節(jié)點中操作系統(tǒng)類型,生成對應(yīng)的編譯信息;所述將所述目標驅(qū)動發(fā)送給對應(yīng)的目標節(jié)點,包括:利用下述傳輸腳本,將目標驅(qū)動文件和編譯信息傳輸給對應(yīng)的外設(shè)目標節(jié)點; 傳輸腳本: #!/bin/bash funct1n scopyO {scp$l$2$3} scopy afulnx rom 192.168.1.$1:/root/Drive/ done 其中,scopyO程序主體為遠程拷貝scp;$l表征目標驅(qū)動文件;$2表征編譯信息;$3表征目標驅(qū)動文件在目標節(jié)點的存儲目錄; 所述刷新所述外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動,包括:根據(jù)所述編譯信息,修改對應(yīng)的目標節(jié)點接收到的目標驅(qū)動文件,利用修改后的目標驅(qū)動文件刷新所述外設(shè)的至少一個目標節(jié)點中的每一個外插卡驅(qū)動; 和/或, 進一步包括: 為所述至少一個目標節(jié)點中每一個目標節(jié)點配置對應(yīng)的IP; 所述登錄所述外設(shè)的至少一個目標節(jié)點,包括:通過在下述登錄腳本中自動輸入目標IP,登錄到該目標IP對應(yīng)的目標節(jié)點; 登錄腳本: #!/bin/bash funct1n 1gonO {ssh $i} for i in{l,N} do echo"-----------$1--------” logon$i"$l"& done 其中,logon()表征登錄的主體程序表征第i個目標節(jié)點的IP;N表征目標節(jié)點總數(shù);"$1"表征順序執(zhí)行下一步程序;&表征轉(zhuǎn)入后臺循環(huán)執(zhí)行腳本。10.根據(jù)權(quán)利要求8或9所述的方法,其特征在于, 進一步包括: 通過下述檢測命令,點亮每一個外設(shè)的目標節(jié)點中BMC的標識LED,確定與每一個外設(shè)的目標節(jié)點之間通信暢通; 檢測命令: for i in{l,N} do ssh cu$i ipmitool chassis identify 其中,N表征目標節(jié)點總數(shù);表征第i個目標節(jié)點的IP; 和/或, 進一步包括: 利用下述抓取腳本抓取外設(shè)的至少一個目標節(jié)點中各個外插卡驅(qū)動版本信息,并為所述版本信息生成驅(qū)動版本文檔,驗證所述版本文檔中的版本信息與目標驅(qū)動文件的版本信息一致; 抓取腳本: for i in{l,N}do echo “cu$i,,>>check.txt 將當(dāng)前目標節(jié)點的名稱寫入check, txt文檔 ssh 192.168.1.$i dmesg|grep aac>>check.txt 在dmesg中抓取各種外插卡驅(qū)動版本號信息,寫入check.txt Done0
【文檔編號】G06F9/44GK105912345SQ201610305306
【公開日】2016年8月31日
【申請日】2016年5月9日
【發(fā)明人】李超
【申請人】浪潮電子信息產(chǎn)業(yè)股份有限公司