專利名稱::一種具有自適應傳輸模型的微操作系統(tǒng)部署方法
技術領域:
:本發(fā)明屬于計算機領域,涉及集群部署技術,特別涉及一種具有自適應傳輸模型的微操作系統(tǒng)部署方法。
背景技術:
:集群就是通過高性能網(wǎng)絡或局部網(wǎng)將一組計算機系統(tǒng)(節(jié)點)互連,形成的具有單一系統(tǒng)映像的計算系統(tǒng)。由于其高性能、高可擴展性、高性價比的優(yōu)勢,用集群構(gòu)造超級計算機或網(wǎng)絡服務器成為一種流行的趨勢。隨著應用需求的不斷擴大,集群的規(guī)模從過去的數(shù)百節(jié)點擴充到成千上萬個節(jié)點,如何高效地完成大規(guī)模集群系統(tǒng)的部署成為一個挑戰(zhàn)性的問題?;谟诚竦募翰渴鸱椒ㄊ悄壳笆褂米顬閺V泛的一種部署方法,該方法的優(yōu)點在于可部署任意操作系統(tǒng)和應用。傳統(tǒng)的基于映像的集群部署方法的流程為步驟h啟動各待部署節(jié)點。步驟2:各待部署節(jié)點啟動后,根據(jù)其BIOSROM中的PXE協(xié)議要求請求分配IP并請求下載一個微操作系統(tǒng)(包括vmlinuz和initrd.img文件),部署節(jié)點響應請求,用DHCP服務給待部署節(jié)點分配IP,用TFTP服務提供微操作系統(tǒng)的下載。待部署節(jié)點下載結(jié)束后,啟動該微操作系統(tǒng)。步驟3:微操作系統(tǒng)啟動后,待部署節(jié)點啟動駐留在微操作系統(tǒng)文件中的系統(tǒng)映像傳輸程序下載系統(tǒng)映像,下載結(jié)束后,恢復映像。步驟4:映像恢復后,待部署節(jié)點從磁盤啟動并進入部署后的操作系統(tǒng),部署過程結(jié)束。在該方法中,微操作系統(tǒng)的下載是一種c/s傳輸模式。當集群規(guī)模較大時,會成為部署系統(tǒng)的性能瓶頸。此外,由于TFTP傳輸基于UDP協(xié)議,當集群規(guī)模較大時,TFTP服務器端負載過重,會增加其部署微操作系統(tǒng)失敗的概率,可靠性難以保障。
發(fā)明內(nèi)容本發(fā)明的目的在于針對上述現(xiàn)有技術存在的缺陷和不足提供了一種高效、可靠的具有自適應傳輸模型的微操作系統(tǒng)部署方法。該方法,不僅可用于集群操作系統(tǒng)的部署,也可用于基于無盤的多機系統(tǒng)的部署。為了實現(xiàn)上述任務,本發(fā)明采取如下的技術解決方案1、自動捕獲各節(jié)點MAC。MAC捕獲程序駐留在部署服務器端,其執(zhí)行流程為-步驟l:MAC捕獲程序啟動部署服務器的DHCP服務。步驟2:待部署節(jié)點啟動后,廣播MAC地址,DHCP服務能夠捕獲MAC地址,并將信息寫入DHCP的Leases文件。步驟3:通過解析Leases文件中的信息,即可提取所有節(jié)點MAC地址,并將MAC地址存入節(jié)點信息文件。該文件包括三列數(shù)據(jù)MAC,IP和部署狀態(tài)。MAC搜集完后,部署程序自動為每個MAC分配一個IP。節(jié)點部署狀態(tài)用0和1標識,0表示節(jié)點未部署,l表示節(jié)點已成功部署。MAC捕獲成功后,關閉所有節(jié)點。2、微操作系統(tǒng)部署流程。根據(jù)集群規(guī)模#和TFTP服務器一次最多所能支持的節(jié)點數(shù)抓該方法自適應地構(gòu)建傳輸模型以部署微操作系統(tǒng),其部署流程如下步驟h創(chuàng)建部署配置文件,該文件是一個鍵值對文件,其形式如下256ttN表示集群規(guī)模#32棚表示一個TFTP服務器一次最多能部署的節(jié)點數(shù)A224#R剩余待部署節(jié)點數(shù)其中,N的值通過統(tǒng)計節(jié)點信息文件中的MAC數(shù)目獲得,M的值通過實測獲得或管理員根據(jù)經(jīng)驗進行預估。R為變量,在部署過程中被不斷修改,其初始值為N。步驟2:部署節(jié)點讀取部署配置文件,比較R和(N-R+1)M的大小。其中,N-R表示己部署的服務器,"1"表示系統(tǒng)指定的初始TFTP服務器。若R〉(N-R+1)M,將本次需要部署的節(jié)點數(shù)目D的值設為(N-R+1)M;否則,將D的值設為R。步驟3:部署節(jié)點從節(jié)點信息文件中,選取D個狀態(tài)標記為0的節(jié)點進行部署。具體過程為1)部署節(jié)點從節(jié)點信息文件中,選取D個節(jié)點,為D個節(jié)點各分配一個固定IP,并為D個節(jié)點指定「i)/Ml個TFTP服務器。每個TFTP服務器負責部署M個節(jié)點。部署節(jié)點將D個節(jié)點的IP信息以及每個節(jié)點所指定的TFTP服務器信息寫入DHCP配置文件中,并重新啟動DHCP服務以讀取新的DHCP配置文件信息。此外,啟動各TFTP服務器上的TFTP服務。2)部署節(jié)點利用WOL(Wake-on-LAN)技術啟動所要部署的D個節(jié)點,這些節(jié)點啟動后,根據(jù)駐留在其BIOSROM中的PXE協(xié)議,從DHCP服務器獲取IP,從TFTP服務器獲取微操作系統(tǒng)文件并加載微操作系統(tǒng),加載結(jié)束后向部署節(jié)點發(fā)送部署結(jié)束消息。步驟4:部署節(jié)點根據(jù)收到的消息,將節(jié)點信息文件中本次部署的節(jié)點的部署狀態(tài)標記為1;將部署配置文件中的R的值減去本次部署節(jié)點的數(shù)目;將DHCP配置文件中本次部署節(jié)點的相關信息刪除。步驟5:部署節(jié)點讀取部署配置文件信息,比較R和(N-R+1)M的大小,若IM),微操作系統(tǒng)部署過程結(jié)束;若(ki^(W-i+l)M,轉(zhuǎn)入步驟2;若R〉(N-R+1)M,參與本次部署的「Z)/Jl/1個TFTP服務器分別將微操作系統(tǒng)文件(vmlinuz和initrd.img)發(fā)送到其本次部署成功的節(jié)點的/tftpboot目錄下,本次部署成功的節(jié)點啟動TFTP服務程序后,即可轉(zhuǎn)變?yōu)槟軌蛱峁㏕FTP服務的節(jié)點。轉(zhuǎn)入步驟2。本發(fā)明的微操作系統(tǒng)包括一個內(nèi)核文件(vmlinuz)和啟動映像文件(initrd.img),vmlinuz是一個基于Linux操作系統(tǒng)的內(nèi)核文件,initrd.img是微操作系統(tǒng)啟動時所使用的根文件系統(tǒng)映像文件,同時它還包括硬件驅(qū)動程序,系統(tǒng)映像傳輸程序以及TFTP服務端程序。本發(fā)明的具有自適應傳輸模型的微操作系統(tǒng)部署方法,通過比較集群規(guī)模^和一個TFTP服務器最多所能同時部署的節(jié)點數(shù)目#的大小,自適應地構(gòu)建微操作系統(tǒng)部署模型。從微操作系統(tǒng)部署流程可知,當A^M時,采用傳統(tǒng)的C/S傳輸模型;當M〈A^2M時,采用C/S傳輸模型分批部署節(jié)點,分批方式克服了由于TFTP服務器端負載過重而導致微操作系統(tǒng)部署失敗的缺點。當A^2M時,傳輸模型自動演化為多叉樹傳輸模型,通過將部分加載了微操作系統(tǒng)的節(jié)點轉(zhuǎn)變?yōu)榭商峁㏕FTP服務的節(jié)點,將微操作系統(tǒng)逐層分批部署到樹中的每一個節(jié)點上。多叉樹傳輸模型克服了單一TFTP服務器部署瓶頸問題,有較好的可擴展性。該方法高效、可靠地實現(xiàn)了集群部署系統(tǒng)中微操作系統(tǒng)的部署過程。具體實施方式本發(fā)明的方法能夠根據(jù)集群規(guī)模和TFTP服務器部署能力,自動構(gòu)建微操作系統(tǒng)傳輸模型,高效可靠地部署微操作系統(tǒng)。以下為發(fā)明人給出的一種具體實施例l)節(jié)點啟動后,捕獲節(jié)點的MAC地址,并寫入節(jié)點信息文件中。其實施方式為先啟動DHCP服務,再啟動各節(jié)點。節(jié)點啟動后,廣播MAC地址,可被DHCP服務程序捕獲到,通過讀取DHCP租期文件中的信息,即可得到各啟動節(jié)點MAC。在RedHatEnterpriseLinuxAS4.0操作系統(tǒng)中該租期文件為/var/lib/dhcp/dhcpd.leases。通過解析該文件,可得到MAC地址。解析腳本例為cat/var/lib/dhcp/dhcpd.leaseslgr印—o'\<\{2\}:\{2\}:\{2\}:\{2\}:\{2\}:\{2\}\>'〉macListFile2)捕獲到的MAC地址被保存到節(jié)點信息文件,該文件包括三列數(shù)據(jù)MAC,IP和部署狀態(tài),其形式如下00:30:48:64:37:FE192.168.0.400其中,IP由管理員指定。節(jié)點部署狀態(tài)用0和1標識,0表示節(jié)點未部署,l表示節(jié)點已成功部署。關閉所有節(jié)點。3)根據(jù)捕獲到的MAC地址數(shù)量確定集群規(guī)模,根據(jù)實測或管理員的經(jīng)驗設定一個TFTP服務器最大可同時部署的節(jié)點數(shù)目,創(chuàng)建部署配置文件,該文件的形式如下yV256ftN表示集群規(guī)模#32咖表示一個TFTP服務器一次最多能部署的節(jié)點數(shù)y224甜剩余待部署節(jié)點數(shù)其中,N的值通過統(tǒng)計節(jié)點信息文件的MAC數(shù)獲得,M的值通過實測獲得或管理員根據(jù)經(jīng)驗進行預估。R為變量,在部署過程中被不斷修改,其初始值為N。4)在部署過程中,根據(jù)集群規(guī)模自適應地構(gòu)建傳輸模型,其構(gòu)建程序代碼如下。intN=0:〃集群規(guī)模intM=0;〃一個TFTP服務器一次最多能部署的節(jié)點數(shù)intD=0;〃本次所需部署節(jié)點數(shù)intR=0:〃剩余待部署節(jié)點數(shù)publicvoid隨in(){R=getResNode(deployment—config)〃從部署配置文件中得到剩余待部署節(jié)點數(shù)While(R!=0){N-getN咖Node(d印loyraent—config)〃從部署配置文件中得到集群規(guī)模M=getMaxNode(d印loyment—config)〃從部署配置文件中得到TFTP服務器部署能力R=getResNode(d印loyment—config)〃從部署配置文件中得到剩余待部署節(jié)點數(shù)If(R〉(N-R+1)M){D=(N-R+1)M;}Else{D=Rstr[D]nodeList=getNodes(nodeListFile);〃從節(jié)點信息文件中選取D個未部署節(jié)點assign(nodeList);〃為D個節(jié)點指派IP,并將信息寫入節(jié)點信息文件str[「£)/M"|]tftpList=setTFTP();〃為D個節(jié)點指派「Z)/A/")個TFTP服務器setDHCPconf0:〃將D個節(jié)點相關信息寫入DHCP配置文件,信息格式如5)所示restart0;〃重啟DHCP服務,并啟動TFTP服務器wakeup(nodeList):〃喚醒D個節(jié)點,節(jié)點下載微操作系統(tǒng)文件并啟動,啟動后返回消息setState(nodeList)〃把節(jié)點信息文件中本次部署成功的D個節(jié)點的狀態(tài)設置為1setR(R-D);〃將部署配置文件中待部署節(jié)點數(shù)R的值減去DdelDHCP();〃將DHCP配置文件中本次部署成功的D個節(jié)點的相關信息刪除If(R=0){break:〃部署結(jié)束}ElseIf(0<W"JV-W+UM){continune;〃跳轉(zhuǎn)至while循環(huán)處}ElseIf(/,-7+UA/){tftpSendFiles(nodeList)〃參與本次部署的「ZVA/"]個TFTP服務器分別將微操作系統(tǒng)文件發(fā)送到其本次部署成功的節(jié)點的/tftpboot目錄下,將本次部署成功的節(jié)點轉(zhuǎn)變?yōu)榫哂蠺FTP服務能力的節(jié)點continune;〃跳轉(zhuǎn)至while循環(huán)處}5)在部署過程中,文件的形式如下ddns-update-style需要將部署信息寫到DHCP配置文件中,DHCP配置interim:ignoreclient-updates;optionspacepxelinux;optionpxelinux.magicoptionpxelinux.configfileoptionpxelinux.pathprefixoptionpxelinux.reboottimecode208=string:code209=text;code210=text:code211=unsignedinteger32;subnet192.168.0.0netmask255.255.255.0{optiondomain-name-servers192.168.0.19;site-option-space"pxelinux*";default—lease-time21600;max_lease_time43200:filename"pxelinux.0";hostcnodel5{hardwareethernet00:30:48:64:37:FE:fixed-address192.168.0.40;next—server192.168.0.20;〃節(jié)點MAC〃指定該節(jié)點的IP〃指定該節(jié)點的tftp服務器hostcnode35{hardwareethernet00:30:48:64:37:3A;fixed-address192.168.0.41:next-server192.168.0.21;〃節(jié)點MAC〃指定該節(jié)點的IP〃指定該節(jié)點的tftp服務器6)TFTP服務端程序被封裝到了initrd.img文件中,當節(jié)點成功加載了微操作系統(tǒng)后,可通過啟動該TFTP服務,將其轉(zhuǎn)換為一個TFTP服務器。本發(fā)明利用了開源工具TFTVServer作為TFTP服務端程序。通過上述實施例可以看出,本發(fā)明通過比較集群規(guī)模#和一個TFTP服務器最多所能同時部署的節(jié)點數(shù)目#的大小,能夠自適應地構(gòu)建微操作系統(tǒng)傳輸模型。當iV《M時,采用傳統(tǒng)的C/S傳輸模型;當M〈A^2M時,采用C/S傳輸模型分批部署節(jié)點,分批方式克服了由于TFTP服務器端負載過重而導致微操作系統(tǒng)部署失敗的缺點。當A^2M時,自動演化為多叉樹傳輸模型,通過將部分加載了微操作系統(tǒng)的節(jié)點轉(zhuǎn)變?yōu)榭商峁㏕FTP服務的節(jié)點,將微操作系統(tǒng)逐層分批部署到樹中的每一個節(jié)點上。多叉樹傳輸模型克服了ii單一TFTP服務器部署瓶頸問題,有較好的可擴展性。表l比較了現(xiàn)有的基于C/S模型的微操作系統(tǒng)部署方法和本方法的部署能力,M為一個TFTP服務器一次最多同時部署的節(jié)點數(shù)目,t為一個TFTP服務器部署一次微操作系統(tǒng)所需要的部署時間。由結(jié)果知,本方法的部署能力隨時間增長呈指數(shù)增長,部署能力遠遠超過基于C/S模型的部署方法。該方法高效、可靠地實現(xiàn)了集群部署系統(tǒng)中微操作系統(tǒng)的部署過程。表i本方法和現(xiàn)有方法部署能力比較<table>tableseeoriginaldocumentpage12</column></row><table>權(quán)利要求1、一種具有自適應傳輸模型的微操作系統(tǒng)部署方法,其特征在于,節(jié)點啟動后,捕獲各節(jié)點的MAC地址,根據(jù)MAC地址數(shù)目確定集群規(guī)模N,比較集群規(guī)模N和一個TFTP(TrivalFileTransferProtocol)服務器最多所能同時部署的節(jié)點數(shù)M的大小,自適應地構(gòu)建微操作系統(tǒng)部署模型;當N≤2M時,采用傳統(tǒng)的C/S(Client/Server)部署模型;當N>2M時,自動演化為多叉樹傳輸模型,將微操作系統(tǒng)逐層傳輸?shù)綐渲械拿恳粋€節(jié)點上;通過賦予樹中每一個非葉子節(jié)點提供TFTP服務的能力,將這部分加載了微操作系統(tǒng)的節(jié)點轉(zhuǎn)變?yōu)榭商峁㏕FTP服務的節(jié)點,使系統(tǒng)形成多個TFTP服務器。2、如權(quán)利要求1所述的具有自適應傳輸模型的微操作系統(tǒng)部署方法,其特征在于,所述的微操作系統(tǒng)包括一個內(nèi)核文件(vmlirmz)和啟動映像文件(initrd.img),vmlinuz是一個基于Linux操作系統(tǒng)的內(nèi)核文件,initrd.img是微操作系統(tǒng)啟動時所使用的根文件系統(tǒng)映像文件,同時它還包括硬件驅(qū)動程序,系統(tǒng)映像傳輸程序以及TFTP服務端程序。3、如權(quán)利要求1所述的具有自適應傳輸模型的微操作系統(tǒng)部署方法,其特征在于,所說的自動捕獲各節(jié)點MAC的方法流程為步驟l:部署服務器啟動DHCP服務;步驟2:啟動所有節(jié)點,部署節(jié)點啟動后,廣播MAC地址,DHCP服務捕獲MAC地址,并將信息寫入DHCP的Leases文件;步驟3:通過解析Leases文件中的信息,即可提取所有節(jié)點MAC地址,并將MAC地址存入節(jié)點信息文件,該文件包括三列數(shù)據(jù)MAC,IP和部署狀態(tài);MAC搜集完后,部署程序自動為每個MAC分配一個IP,節(jié)點部署狀態(tài)用0和1標識,0表示節(jié)點未部署,l表示節(jié)點已成功部署;MAC捕獲成功后,關閉所有節(jié)點。4、如權(quán)利要求1所述的具有自適應傳輸模型的微操作系統(tǒng)部署方法,其特征在于,根據(jù)集群規(guī)模7V和TFTP服務器一次最多所能支持的節(jié)點數(shù)抓自適應地構(gòu)建傳輸模型以部署微操作系統(tǒng),其部署流程如下步驟h創(chuàng)建部署配置文件,該文件是一個鍵值對文件,其形式如下-#256#N表示集群規(guī)模#32ttM表示一個TFTP服務器一次最多能部署的節(jié)點數(shù)224ttR剩余待部署節(jié)點數(shù)其中,N的值通過統(tǒng)計節(jié)點信息文件中的MAC數(shù)目獲得,M的值通過實測獲得或管理員根據(jù)經(jīng)驗進行預估,R為變量,在部署過程中被不斷修改,其初始值為N;步驟2:部署節(jié)點讀取部署配置文件,比較R和(N-R+1)M的大小,其中,N-R表示已部署的服務器,"1"表示系統(tǒng)指定的初始TFTP服務器,若R〉(N-R+1)M,將本次需要部署的節(jié)點數(shù)目D的值設為(N-R+1)M;否則,將D的值設為R;步驟3:部署節(jié)點從節(jié)點信息文件中選取D個狀態(tài)標記為0的節(jié)點進行部署;具體過程為1)部署節(jié)點從節(jié)點信息文件中,選取D個節(jié)點,為D個節(jié)點各分配一個固定IP,并為D個節(jié)點指定「Z)/Ml個TFTP服務器,每個TFTP服務器負責部署M個節(jié)點,部署節(jié)點將D個節(jié)點的IP信息以及每個節(jié)點所指定的TFTP服務器信息寫入DHCP配置文件中,并重新啟動DHCP服務以讀取新的DHCP配置文件信息,此外,啟動各TFTP服務器上的TFTP服務;所說的包括一個內(nèi)核文件(vmlinuz)和啟動映像文件(initrd.irag),vmlinuz是一個基于Linux操作系統(tǒng)的內(nèi)核文件,initrd.img是微操作系統(tǒng)啟動時所使用的根文件系統(tǒng)映像文件,同時它還包括硬件驅(qū)動程序,系統(tǒng)映像傳輸程序以及TFTP服務端程序。2)部署節(jié)點利用WOL(Wake-on-LAN)技術啟動所要部署的D個節(jié)點,這些節(jié)點啟動后,根據(jù)駐留在其BIOSROM中的PXE協(xié)議,從DHCP服務器獲取IP,從TFTP服務器獲取微操作系統(tǒng)文件并加載微操作系統(tǒng),加載結(jié)束后向部署節(jié)點發(fā)送部署結(jié)束消息;步驟4:部署節(jié)點根據(jù)收到的消息,將節(jié)點信息文件中本次部署的節(jié)點的部署狀態(tài)標記為1;將部署配置文件中的R的值減去本次部署節(jié)點的數(shù)目;將DHCP配置文件中本次部署節(jié)點的相關信息刪除;步驟5:部署節(jié)點讀取部署配置文件信息,比較R和(N-R+1)M的大小,若IM),微操作系統(tǒng)部署過程結(jié)束;若0〈i^(A^/+l)M,轉(zhuǎn)入步驟2;若R〉(N-R+1)M,參與本次部署的「D/W個TFTP服務器分別將微操作系統(tǒng)文件(vmlinuz和initrd.img)發(fā)送到其本次部署成功的節(jié)點的/tftpboot目錄下,本次部署成功的節(jié)點啟動TFTP服務程序后,即可轉(zhuǎn)變?yōu)槟軌蛱峁㏕FTP服務的節(jié)點,轉(zhuǎn)入步驟2。全文摘要一種具有自適應傳輸模型的微操作系統(tǒng)部署方法,該方法通過比較集群中節(jié)點規(guī)模N和一個TFTP服務器最多所能同時部署的節(jié)點數(shù)目M的大小,自適應地構(gòu)建微操作系統(tǒng)傳輸模型。當N≤M時,采用C/S傳輸模型部署微操作系統(tǒng);當M<N≤2M時,采用C/S傳輸模型分批部署節(jié)點,分批方式克服了由于TFTP服務器端負載過重而導致微操作系統(tǒng)部署失敗的缺點。當N>2M時,自動演化為多叉樹傳輸模型,通過將部分加載了微操作系統(tǒng)的節(jié)點轉(zhuǎn)變?yōu)榭商峁㏕FTP服務的節(jié)點,將微操作系統(tǒng)逐層分批部署到樹中的每一個節(jié)點上。多叉樹傳輸模型克服了單一TFTP服務器部署瓶頸問題,有較好的可擴展性,其部署能力隨時間增長呈指數(shù)增長。該方法高效、可靠地實現(xiàn)了多節(jié)點計算系統(tǒng)中微操作系統(tǒng)的部署過程。文檔編號G06F15/16GK101330514SQ20081015034公開日2008年12月24日申請日期2008年7月15日優(yōu)先權(quán)日2008年7月15日發(fā)明者欣余,冰胡,董小社,薛正華申請人:西安交通大學