本發(fā)明涉及一種動(dòng)畫渲染相關(guān)技術(shù),尤其是涉及一種渲染農(nóng)場(chǎng)節(jié)點(diǎn)虛擬化部署系統(tǒng)及其應(yīng)用。
背景技術(shù):在三維動(dòng)畫制作領(lǐng)域中,渲染和模擬是消耗最多計(jì)算資源的步驟。為了能夠在項(xiàng)目中順利完成這個(gè)過(guò)程,可以使用大量的計(jì)算機(jī)以網(wǎng)格運(yùn)算(gridcomputing)的方式進(jìn)行集群計(jì)算。雖然,目前計(jì)算設(shè)備的價(jià)格已經(jīng)較為低廉,但對(duì)應(yīng)于制作上不斷增長(zhǎng)的效果需求,計(jì)算量也在飛速地成倍上升。所導(dǎo)致的結(jié)果的結(jié)果就是很多制作公司必須在這些渲染集群上消耗大量的制作成本。同時(shí),對(duì)于大多數(shù)項(xiàng)目來(lái)說(shuō),要準(zhǔn)確地去控制集群的計(jì)算量是非常困難的,從而很容易造成集群的閑置,或者突發(fā)性的巨大需求。一來(lái)造成浪費(fèi),二則有可能由于購(gòu)入的集群難以應(yīng)對(duì)突發(fā)的計(jì)算量需求而影響項(xiàng)目的進(jìn)度。在此,對(duì)于大多數(shù)制作公司來(lái)說(shuō)都擁有又很少完全利用到的計(jì)算資源——制作人員本身所使用的工作站。這些工作站一般都有著強(qiáng)大的計(jì)算資源,這些資源在一天之中通常只被用到1/3-1/2的時(shí)間,并且對(duì)于某些流程的制作者來(lái)說(shuō),計(jì)算資源更加是長(zhǎng)時(shí)間處于閑置狀態(tài)的。如果能夠?qū)⑦@些計(jì)算資源快捷便利的加入計(jì)算集群中去,那么不僅可以消減一部分硬件開銷,同時(shí)也為突發(fā)的計(jì)算需求提供了一個(gè)理想緩沖來(lái)源。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種渲染農(nóng)場(chǎng)節(jié)點(diǎn)虛擬化部署系統(tǒng)及其應(yīng)用。本發(fā)明的目的可以通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn):一種渲染農(nóng)場(chǎng)節(jié)點(diǎn)虛擬化部署系統(tǒng),其特征在于,包括宿主機(jī)、DHCP服務(wù)器、文件服務(wù)器和渲染計(jì)算集群,所述的宿主機(jī)分別與DHCP服務(wù)器、文件服務(wù)器、渲染計(jì)算集群連接,所述的宿主機(jī)上設(shè)有虛擬機(jī);所述的宿主機(jī)從文件服務(wù)器中下載啟動(dòng)虛擬盤,對(duì)虛擬機(jī)進(jìn)行啟動(dòng),該虛擬機(jī)將宿主機(jī)中的空閑計(jì)算資源加入到渲染計(jì)算集群中進(jìn)行渲染計(jì)算。所述的文件服務(wù)器提供統(tǒng)一的虛擬機(jī)啟動(dòng)介質(zhì)。一種渲染農(nóng)場(chǎng)節(jié)點(diǎn)虛擬化部署系統(tǒng)的應(yīng)用,其特征在于,包括以下步驟:1)檢測(cè)宿主機(jī)的資源,判定其空閑資源是否滿足最低要求,若為是,執(zhí)行步驟2),若為否,返回失?。?)判斷宿主機(jī)是否能與文件服務(wù)器中的存取點(diǎn)進(jìn)行連接,若為是,執(zhí)行步驟3),若為否,返回失??;3)判斷文件服務(wù)器上是否存在新的啟動(dòng)虛擬盤,若為是,復(fù)制新的啟動(dòng)虛擬盤給宿主機(jī),并執(zhí)行步驟4),否則,執(zhí)行步驟4);4)宿主機(jī)清理上次啟動(dòng)時(shí)遺留下的所有臨時(shí)用虛擬盤,恢復(fù)安裝完畢后的初始狀態(tài);5)寫入宿主機(jī)信息;6)宿主機(jī)啟動(dòng)虛擬機(jī);7)讀取宿主機(jī)信息,生成虛擬機(jī)的機(jī)器名信息;8)DHCP服務(wù)器為虛擬機(jī)分配指定IP地址段;9)判斷虛擬機(jī)是否正常啟動(dòng),若為是,執(zhí)行步驟10),若為否,執(zhí)行步驟14);10)嘗試掛載遠(yuǎn)程資源;11)判斷是否成功掛載,若為是,執(zhí)行步驟12),否則,執(zhí)行步驟14);12)虛擬機(jī)啟動(dòng)集群渲染客戶端,并判斷是否與渲染計(jì)算集群成功連接,若為是,執(zhí)行步驟13),否則,執(zhí)行步驟14);13)完成;14)關(guān)閉虛擬機(jī),清理臨時(shí)虛擬盤,并返回失敗。所述的宿主機(jī)的資源為可以被在線地調(diào)配使用的資源,包括空閑CPU、空閑內(nèi)存和剩余磁盤空間。所述的虛擬機(jī)的特征信息是在虛擬機(jī)啟動(dòng)后自動(dòng)賦予,包括機(jī)器名、Ip、登錄用戶信息。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):1)可以快速動(dòng)態(tài)地將完全閑置或者部分閑置的用戶工作站轉(zhuǎn)換為渲染農(nóng)場(chǎng)中渲染機(jī)的系統(tǒng),通過(guò)該系統(tǒng),管理員可以方便地隔離出用戶工作站中閑置的CPU以及內(nèi)存資源,直接加入渲染集群中去,快速并動(dòng)態(tài)地?cái)U(kuò)大運(yùn)算能力;2)在本系統(tǒng)中使用linux系統(tǒng)作為虛擬機(jī)的操作系統(tǒng),又由于虛擬機(jī)的硬件設(shè)備完全固定,所以可以對(duì)核心大幅裁剪,只留下必須的驅(qū)動(dòng)和網(wǎng)絡(luò)模塊。同時(shí)系統(tǒng)也盡可能簡(jiǎn)化,最終不包括計(jì)算用軟件的核心系統(tǒng)可以只有數(shù)十兆字節(jié)的大小。因此,本系統(tǒng)會(huì)在用戶要求啟動(dòng)時(shí),從公共的文件服務(wù)器上直接下載該系統(tǒng)虛擬盤,如此可以保證系統(tǒng)的完整性并更加不易被用戶意外修改。由于極度精簡(jiǎn)系統(tǒng)的關(guān)系,所以從系統(tǒng)啟動(dòng)到加入集群通常可以在1分鐘內(nèi)完成。在需要關(guān)閉服務(wù)時(shí),由于系統(tǒng)每一次都是重新獲取鏡像,因而可以直接強(qiáng)制關(guān)閉虛擬機(jī)而不用擔(dān)心系統(tǒng)受損。由此為用戶提供最快速收回系統(tǒng)資源的手段。3)很多情況下,渲染農(nóng)場(chǎng)所使用的計(jì)算工具會(huì)需要進(jìn)行定期更新,本發(fā)明中,只有系統(tǒng)本身以及需要寫權(quán)限的緩沖用目錄會(huì)被包含在虛擬硬盤上。所有商業(yè)軟件以及庫(kù)文件都將被存放在一個(gè)公共的文件服務(wù)器上,虛擬機(jī)在啟動(dòng)后將這些內(nèi)容掛載到本地。這種方式將會(huì)很好地解決軟件/配置更新的問題。4)由于系統(tǒng)的核心部分每次啟動(dòng)都會(huì)獲得一個(gè)新的副本,而其他軟件也會(huì)是只讀掛載,所有可寫的緩沖介質(zhì)都會(huì)在啟動(dòng)時(shí)候重新創(chuàng)建,所以本發(fā)明可以保證每一次進(jìn)入計(jì)算集群時(shí)都是完全一致的,有效地阻止物理宿主機(jī)使用者的誤操作。附圖說(shuō)明圖1為本發(fā)明的硬件結(jié)構(gòu)示意圖;圖2為本發(fā)明的應(yīng)用流程圖。具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。實(shí)施例如圖1所示,一種渲染農(nóng)場(chǎng)節(jié)點(diǎn)虛擬化部署系統(tǒng),包括宿主機(jī)1、DHCP服務(wù)器2、文件服務(wù)器4和渲染計(jì)算集群3,所述的宿主機(jī)1分別與DHCP服務(wù)器2、文件服務(wù)器4、渲染計(jì)算集群3連接,所述的宿主機(jī)1上設(shè)有虛擬機(jī)5;所述的宿主機(jī)1從文件服務(wù)器4中下載啟動(dòng)虛擬盤,對(duì)虛擬機(jī)5進(jìn)行啟動(dòng),該虛擬機(jī)5將宿主機(jī)中的空閑計(jì)算資源加入到渲染計(jì)算集群中進(jìn)行渲染計(jì)算。選用virtualbox作為虛擬系統(tǒng),選用Debian6.02x64作為虛擬系統(tǒng),網(wǎng)絡(luò)連接使用橋接方式,通過(guò)bootstrap安裝最簡(jiǎn)化系統(tǒng)組件,重新編譯核心代碼,只保留虛擬硬件驅(qū)動(dòng)。安裝Sambaclient,NFSclient,virtualbox工具,python2.6,rsync等必要組件。配置dhcp服務(wù)器,為虛擬機(jī)分配指定地址段。在文件服務(wù)器上建立nfs導(dǎo)出點(diǎn)供虛擬系統(tǒng)放置計(jì)算用的必要組件以及軟件。安裝集群渲染所需要的組件以及客戶端。如有必要編寫對(duì)于集群渲染客戶端的自動(dòng)配置軟件,并在啟動(dòng)腳本中加入調(diào)用。將以下目錄移動(dòng)到nfs導(dǎo)出的位置上:bin、lib\lib64、opt、usr。清空所有臨時(shí)文件,為tmp、root、home、var目錄單獨(dú)創(chuàng)建虛擬盤,并進(jìn)行快照/備份。額外創(chuàng)建etcMain目錄。復(fù)制當(dāng)前etc內(nèi)容到該目錄。相應(yīng)修改/etc/fstab。注意bin、lib\lib64、opt、usr、etcMain只讀掛載。配置rsync,編寫從etcMain到etc的同步腳本。修改系統(tǒng)啟動(dòng)腳本,加載虛擬系統(tǒng)工具包后獲取來(lái)自宿主機(jī)的信息,按照管理需要生成必要機(jī)器名,修改當(dāng)前機(jī)器名;在資源掛載后對(duì)etc目錄進(jìn)行更新,檢查rsync同步內(nèi)容,如果有變化,進(jìn)行標(biāo)記,將系統(tǒng)重啟,通過(guò)對(duì)標(biāo)記的判斷避免短時(shí)間內(nèi)的連續(xù)重啟。使用dd對(duì)根目錄填充0,刪除后使用虛擬盤優(yōu)化工具壓縮尺寸。并快照/備份,該備份存放在文件服務(wù)器上,供需要啟動(dòng)虛擬機(jī)的宿主機(jī)下載。將本發(fā)明分發(fā)到各臺(tái)需要啟動(dòng)虛擬機(jī)的用戶工作站;修改nfs共享配置,對(duì)于管理員(整個(gè)系統(tǒng)唯一)的掛載進(jìn)行讀寫掛載,之后的軟件維護(hù)都通過(guò)這臺(tái)特殊的虛擬機(jī)來(lái)完成,整個(gè)系統(tǒng)部署配置工作完畢。如圖2所示,本發(fā)明的工作流程如下:1)檢測(cè)宿主機(jī)的資源,判定其空閑資源是否滿足最低要求,若為是,執(zhí)行步驟2),若為否,返回失??;2)判斷宿主機(jī)是否能與文件服務(wù)器中的存取點(diǎn)進(jìn)行連接,若為是,執(zhí)行步驟3),若為否,返回失?。?)判斷文件服務(wù)器上是否存在新的啟動(dòng)虛擬盤,若為是,復(fù)制新的啟動(dòng)虛擬盤給宿主機(jī),并執(zhí)行步驟4),否則,執(zhí)行步驟4);4)宿主機(jī)清理上次啟動(dòng)時(shí)遺留下的所有臨時(shí)用虛擬盤,恢復(fù)安裝完畢后的初始狀態(tài);5)寫入宿主機(jī)信息;6)宿主機(jī)啟動(dòng)虛擬機(jī);7)讀取宿主機(jī)信息,生成虛擬機(jī)的機(jī)器名信息;8)DHCP服務(wù)器為虛擬機(jī)分配指定IP地址段;9)判斷虛擬機(jī)是否正常啟動(dòng),若為是,執(zhí)行步驟10),若為否,否則,執(zhí)行步驟14);10)嘗試掛載遠(yuǎn)程資源;11)判斷是否成功掛載,若為是,執(zhí)行步驟12),否則,執(zhí)行步驟14);12)虛擬機(jī)啟動(dòng)集群渲染客戶端,并判斷是否與渲染計(jì)算集群成功連接,若為是,執(zhí)行步驟13),否則,執(zhí)行步驟14);13)完成;14)關(guān)閉虛擬機(jī),清理臨時(shí)虛擬盤,并返回失敗。所述的宿主機(jī)的資源為可以被在線地調(diào)配使用的資源,包括空閑CPU、空閑內(nèi)存和剩余磁盤空間。所述的虛擬機(jī)的特征信息是在虛擬機(jī)啟動(dòng)后自動(dòng)賦予,包括機(jī)器名、Ip、登錄用戶信息。