欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的服務(wù)器、主機及方法

文檔序號:7983367閱讀:209來源:國知局
以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的服務(wù)器、主機及方法
【專利摘要】一種以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的服務(wù)器、主機及方法,其通過主機通過存儲區(qū)域網(wǎng)絡(luò)在存儲服務(wù)器中建立父虛擬硬盤文檔,并以父虛擬硬盤文檔為基礎(chǔ)鏡像在本地磁盤中建立差異虛擬硬盤文檔,當(dāng)主機所執(zhí)行的虛擬機掛載差異虛擬硬盤文檔后,虛擬機執(zhí)行目標(biāo)程序時,服務(wù)主機通過存儲區(qū)域網(wǎng)絡(luò)讀取父虛擬硬盤文檔中的原始數(shù)據(jù),并在本地磁盤的差異虛擬硬盤文檔中存取目標(biāo)程序所產(chǎn)生的差異數(shù)據(jù)的技術(shù)手段,可以將基礎(chǔ)鏡像與差異硬盤設(shè)置在不同裝置,并達成提高存儲服務(wù)器的存取效能與增加所支持的虛擬機數(shù)的技術(shù)效果。
【專利說明】以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的服務(wù)器、主機及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種提供讀取基礎(chǔ)鏡像的服務(wù)器、主機及方法,尤其涉及一種以存儲區(qū)域網(wǎng)絡(luò)提供虛擬機讀取基礎(chǔ)鏡像的服務(wù)器、主機及其方法。
【背景技術(shù)】
[0002]由于從事相同工作的用戶通常使用完全相同的操作環(huán)境,為了統(tǒng)一管理的便利性,以及避免需要為每一位用戶個別安裝操作系統(tǒng)以及應(yīng)用程序,目前大都是使用虛擬機(Virtual Machine, VM)的解決方案,其中,管理者會先安裝一份初始的操作環(huán)境,并將安裝好的操作環(huán)境作為各用戶所使用的虛擬機的基礎(chǔ)鏡像(Base Image),使虛擬機掛載依據(jù)基礎(chǔ)鏡像所建立出來的差異硬盤。這樣,所有的虛擬機都共用基礎(chǔ)鏡像中的操作系統(tǒng)以及應(yīng)用程序,而后,在虛擬機運行時,所產(chǎn)生的差異數(shù)據(jù)則會被儲存在虛擬機所掛載的差異硬盤中,這表示差異硬盤的存取將可能非常頻繁。
[0003]目前常見的系統(tǒng)大都是將共用的基礎(chǔ)鏡像以及虛擬機獨自存取的差異硬盤設(shè)置在遠程的存儲服務(wù)器上,虛擬機會由設(shè)置在存儲服務(wù)器中的基礎(chǔ)鏡像以及差異硬盤中存取數(shù)據(jù),這樣,所有的虛擬機在進行數(shù)據(jù)存取時,存取負載都集中在存儲服務(wù)器上,這對存儲服務(wù)器而言,存取負載相當(dāng)?shù)母?,造成存取效能的低下,同時,存儲服務(wù)器也需要大量的存儲空間來儲存多個差異硬盤,此外,執(zhí)行虛擬機的主機要不斷的通過網(wǎng)絡(luò)傳送接收數(shù)據(jù),對網(wǎng)絡(luò)資源的消耗也非常大。因此,目前也有的系統(tǒng)是將基礎(chǔ)鏡像以及差異硬盤都設(shè)置在同一主機上,這樣的設(shè)置方式雖然可以減少網(wǎng)絡(luò)資源的消耗,但存取負載仍然都集中在主機,存取效能依然無法提高,且基礎(chǔ)鏡像往往無法共用。
[0004]綜上所述,可知現(xiàn)有技術(shù)中長期以來一直存在基礎(chǔ)鏡像與差異硬盤設(shè)置在同一裝置容易造成存取效能低下的問題,因此有必要提出改進的技術(shù)手段,來解決這一問題。

【發(fā)明內(nèi)容】

[0005]有鑒于現(xiàn)有技術(shù)存在基礎(chǔ)鏡像與差異硬盤設(shè)置在同一裝置容易造成存取效能低下的問題,本發(fā)明遂揭露一種以存儲區(qū)域網(wǎng)絡(luò)(Storage Area Network, SAN)提供讀取基礎(chǔ)鏡像的服務(wù)器、主機及方法,其中:
[0006]本發(fā)明所揭露的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的服務(wù)器,至少包含:存儲介質(zhì),用以儲存父虛擬硬盤(Parent Virtual Hard Disk, Parent VHD)文檔,父虛擬硬盤文檔中包含目標(biāo)程序;目標(biāo)模塊(target),用以提供主機(Host)通過存儲區(qū)域網(wǎng)絡(luò)掛載(mount)存儲介質(zhì)為遠程磁盤,由此使主機以父虛擬硬盤文檔為基礎(chǔ)鏡像建立差異虛擬硬盤(Different VHD)文檔,及用以在主機所執(zhí)行的虛擬機通過相對應(yīng)的差異虛擬硬盤文檔執(zhí)行目標(biāo)程序時,傳送目標(biāo)程序至主機。
[0007]本發(fā)明所揭露的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的主機,至少包含:啟動模塊(initiator),用以通過存儲區(qū)域網(wǎng)絡(luò)掛載存儲服務(wù)器的存儲介質(zhì)為遠程磁盤,該存儲介質(zhì)中儲存父虛擬硬盤文檔,父虛擬硬盤文檔中包含目標(biāo)程序,及用以下載目標(biāo)程序;本地磁盤,用以儲存差異虛擬硬盤文檔,各差異虛擬硬盤文檔以父虛擬硬盤文檔為基礎(chǔ)鏡像所建立;虛擬機處理模塊,用以執(zhí)行與各差異虛擬硬盤文檔對應(yīng)的虛擬機,使虛擬機執(zhí)行目標(biāo)程序,及用以在虛擬機讀取目標(biāo)程序的相關(guān)數(shù)據(jù)時,由與虛擬機對應(yīng)的差異虛擬硬盤文檔中讀取相關(guān)數(shù)據(jù),并在目標(biāo)程序儲存所產(chǎn)生的差異數(shù)據(jù)時,將差異數(shù)據(jù)儲存至與虛擬機對應(yīng)的差異虛擬硬盤文檔中。
[0008]本發(fā)明所揭露的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的方法,其步驟至少包括:主機通過存儲區(qū)域網(wǎng)絡(luò)掛載存儲服務(wù)器為遠程磁盤;設(shè)定主機在遠程磁盤中建立父虛擬硬盤文檔;服務(wù)主機以父虛擬硬盤文檔為基礎(chǔ)鏡像,在服務(wù)主機的本地磁盤中建立差異虛擬硬盤文檔;服務(wù)主機執(zhí)行與差異虛擬硬盤文檔對應(yīng)的虛擬機;虛擬機掛載相對應(yīng)的差異虛擬硬盤文檔;虛擬機通過相對應(yīng)的差異虛擬硬盤文檔執(zhí)行父虛擬硬盤文檔中的目標(biāo)程序;當(dāng)虛擬機讀取目標(biāo)程序的相關(guān)數(shù)據(jù)時,服務(wù)主機由與虛擬機對應(yīng)的差異虛擬硬盤文檔中讀取相關(guān)數(shù)據(jù);當(dāng)目標(biāo)程序存取所產(chǎn)生的差異數(shù)據(jù)時,服務(wù)主機至與虛擬機對應(yīng)的差異虛擬硬盤文檔中存取差異數(shù)據(jù)。
[0009]本發(fā)明所揭露的系統(tǒng)與方法如上,與現(xiàn)有技術(shù)之間的差異在于本發(fā)明的主機通過存儲區(qū)域網(wǎng)絡(luò)在存儲服務(wù)器中建立父虛擬硬盤文檔,并以父虛擬硬盤文檔為基礎(chǔ)鏡像在本地磁盤中建立差異虛擬硬盤文檔,當(dāng)主機所執(zhí)行的虛擬機掛載差異虛擬硬盤文檔后,虛擬機執(zhí)行目標(biāo)程序時,服務(wù)主機通過存儲區(qū)域網(wǎng)絡(luò)讀取父虛擬硬盤文檔中的原始數(shù)據(jù),并在本地磁盤的差異虛擬硬盤文檔中存取目標(biāo)程序所產(chǎn)生的差異數(shù)據(jù),由此解決現(xiàn)有技術(shù)所存在的問題,并可以達成提高存儲服務(wù)器的存取效能并增加存儲服務(wù)器所支持的虛擬機數(shù)的技術(shù)效果。
【專利附圖】

【附圖說明】
[0010]圖1為本發(fā)明所述的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的服務(wù)器元件示意圖。
[0011]圖2為本發(fā)明所述的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的主機元件示意圖。
[0012]圖3A為本發(fā)明所述的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的方法流程圖。
[0013]圖3B為本發(fā)明所述的建立父虛擬硬盤文檔的詳細方法流程圖。
[0014]圖3C為本發(fā)明所述的另一種建立父虛擬硬盤文檔的詳細方法流程圖。
[0015]圖3D為本發(fā)明所述的設(shè)定初始環(huán)境的詳細方法流程圖。
[0016]圖3E為本發(fā)明所述的結(jié)合主機緩存下載目標(biāo)程序的方法流程圖。
[0017]圖3F為本發(fā)明所述的結(jié)合服務(wù)緩存讀取目標(biāo)程序的方法流程圖。
[0018]主要部件附圖標(biāo)記:
[0019]100存儲服務(wù)器
[0020]110存儲介質(zhì)
[0021 ] 111父虛擬硬盤文檔
[0022]130目標(biāo)模塊
[0023]150服務(wù)緩存
[0024]200 主機
[0025]210啟動模塊
[0026]230本地磁盤[0027]231差異虛擬硬盤文檔
[0028]250虛擬機處理模塊
[0029]251虛擬機
[0030]270主機緩存
[0031]步驟310主機通過存儲區(qū)域網(wǎng)絡(luò)掛載存儲服務(wù)器為遠程磁盤
[0032]步驟320設(shè)定主機在遠程磁盤中建立父虛擬硬盤文檔
[0033]步驟321a設(shè)定主機在本地磁盤上產(chǎn)生臨時虛擬硬盤文檔
[0034]步驟321b設(shè)定主機在本地磁盤上產(chǎn)生父虛擬硬盤文檔
[0035]步驟322設(shè)定主機執(zhí)行虛擬機
[0036]步驟323a虛擬機掛載臨時虛擬硬盤文檔
[0037]步驟323b虛擬機掛載父虛擬硬盤文檔
[0038]步驟325虛擬機安裝目標(biāo)程序
[0039]步驟326a設(shè)定主機儲存目標(biāo)程序至臨時虛擬硬盤文檔中
[0040]步驟326b設(shè)定主機儲存目標(biāo)程序至父虛擬硬盤文檔中
[0041]步驟327a設(shè)定主機在臨時虛擬硬盤文檔中建立代理程序
[0042]步驟327b設(shè)定主機在父虛擬硬盤文檔中建立代理程序
[0043]步驟328虛擬機結(jié)束執(zhí)行或卸載臨時虛擬硬盤文檔
[0044]步驟329設(shè)定主機復(fù)制臨時虛擬硬盤文檔至遠程磁盤為父虛擬硬盤文檔
[0045]步驟330服務(wù)主機以父虛擬硬盤文檔為基礎(chǔ)鏡像,在服務(wù)主機的本地磁盤中建立差異虛擬硬盤文檔
[0046]步驟340服務(wù)主機寫入相關(guān)數(shù)據(jù)至差異虛擬硬盤文檔中
[0047]步驟352服務(wù)主機執(zhí)行與差異虛擬硬盤文檔對應(yīng)的虛擬機
[0048]步驟356虛擬機掛載相對應(yīng)的差異虛擬硬盤文檔
[0049]步驟361虛擬機執(zhí)行父虛擬硬盤文檔中的代理程序
[0050]步驟363代理程序依據(jù)相關(guān)數(shù)據(jù)設(shè)定虛擬機及/或目標(biāo)程序的初始環(huán)境
[0051]步驟370虛擬機通過相對應(yīng)的差異虛擬硬盤文檔執(zhí)行父虛擬硬盤文檔中的目標(biāo)程序
[0052]步驟371虛擬機讀取目標(biāo)程序
[0053]步驟372服務(wù)主機判斷目標(biāo)程序的存儲區(qū)塊是否儲存于主機緩存中
[0054]步驟373服務(wù)主機由主機緩存讀取存儲區(qū)塊
[0055]步驟375服務(wù)主機至存儲服務(wù)器下載未儲存于主機緩存中的存儲區(qū)塊
[0056]步驟376服務(wù)主機儲存所下載的存儲區(qū)塊至主機緩存中
[0057]步驟377服務(wù)主機組合存儲區(qū)塊為目標(biāo)程序
[0058]步驟378虛擬機執(zhí)行目標(biāo)程序
[0059]步驟381存儲服務(wù)器接收與目標(biāo)程序的存儲區(qū)塊對應(yīng)的下載請求
[0060]步驟382存儲服務(wù)器判斷目標(biāo)程序的存儲區(qū)塊是否儲存在存儲服務(wù)器的服務(wù)緩存中
[0061]步驟383存儲服務(wù)器由服務(wù)緩存中讀取存儲區(qū)塊
[0062]步驟384存儲服務(wù)器由存儲介質(zhì)中讀取存儲區(qū)塊[0063]步驟385存儲服務(wù)器儲存存儲區(qū)塊至服務(wù)緩存中
[0064]步驟386存儲服務(wù)器傳回存儲區(qū)塊
[0065]步驟392當(dāng)虛擬機讀取目標(biāo)程序的相關(guān)數(shù)據(jù)時,服務(wù)主機由與虛擬機對應(yīng)的差異虛擬硬盤文檔中讀取相關(guān)數(shù)據(jù)
[0066]步驟396當(dāng)目標(biāo)程序存取所產(chǎn)生的差異數(shù)據(jù)時,服務(wù)主機至與虛擬機對應(yīng)的差異虛擬硬盤文檔中存取差異數(shù)據(jù)
【具體實施方式】
[0067]以下將結(jié)合附圖及實施例來詳細說明本發(fā)明的特征與實施方式,內(nèi)容足以使任何本領(lǐng)域技術(shù)人員能夠輕易地充分理解本發(fā)明解決技術(shù)問題所應(yīng)用的技術(shù)手段并據(jù)以實施,由此實現(xiàn)本發(fā)明可達成的技術(shù)效果。
[0068]本發(fā)明可以將作為基礎(chǔ)鏡像的父虛擬硬盤文檔設(shè)置在存儲服務(wù)器,并將差異虛擬硬盤文檔設(shè)置在主機,使執(zhí)行于主機中的虛擬機共享同一份基礎(chǔ)鏡像,而虛擬機在運作時所產(chǎn)生的差異數(shù)據(jù)則儲存在差異虛擬硬盤文檔中,可以減低存儲服務(wù)器的數(shù)據(jù)存取(I/o)負載。
[0069]其中,存儲服務(wù)器還可以包含服務(wù)緩存(Cache),主機也可以包含主機緩存,通過服務(wù)緩存及/或主機緩存,可以提高主機存取基礎(chǔ)鏡像的速度,且主機緩存還可以減少主機存取基礎(chǔ)鏡像的網(wǎng)絡(luò)流量。
[0070]以下先說明本發(fā)明的系統(tǒng)運作。本發(fā)明的系統(tǒng)含有至少一個存儲服務(wù)器以及一個或多個主機。其中,特別值得一提的是,在本發(fā)明中,主機的數(shù)量通常會依據(jù)本發(fā)明的系統(tǒng)的用戶決定,越多的用戶往往會有越多的主機200,而存儲服務(wù)器100的數(shù)量則通常是依據(jù)主機200的數(shù)量決定,當(dāng)所有主機200在正常運作時,若各個存儲服務(wù)器100的存取效能或網(wǎng)絡(luò)負載都達到一定比例,則在需要新增主機的情況下,通常也需要增加存儲服務(wù)器100,使得存儲服務(wù)器100的存取效能或網(wǎng)絡(luò)負載不因此降低,進而影響各個主機的數(shù)據(jù)存取效倉泛。
[0071]請先參照圖1本發(fā)明所述的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的服務(wù)器元件示意圖所示,存儲服務(wù)器100還包含存儲介質(zhì)110、目標(biāo)模塊130、以及可附加的服務(wù)緩存150。
[0072]存儲介質(zhì)110負責(zé)儲存父虛擬硬盤文檔111。存儲介質(zhì)110通常為能夠不按順序隨機存取(random access)固定大小的數(shù)據(jù)塊(chunk)的區(qū)塊設(shè)備(block device),例如,硬盤、光盤等,但本發(fā)明沒有特別的限制。
[0073]存儲介質(zhì)110所儲存的父虛擬硬盤文檔111在本發(fā)明中為只讀(read only)的文檔。父虛擬硬盤文檔111通常包含由主機200所安裝的目標(biāo)程序,但本發(fā)明并不以此為限,在部分的實施例中,存儲介質(zhì)110所儲存的父虛擬硬盤文檔可以尚未安裝目標(biāo)程序。其中,本發(fā)明所述的目標(biāo)程序包含操作系統(tǒng)、應(yīng)用軟件等可在虛擬機中運行的程序,但本發(fā)明并不以上述為限。
[0074]目標(biāo)模塊130提供主機200通過存儲區(qū)域網(wǎng)絡(luò)與存儲服務(wù)器100連接,負責(zé)提供主機200掛載存儲介質(zhì)110,使得存儲介質(zhì)110成為主機200的遠程磁盤。
[0075]目標(biāo)模塊130也負責(zé)由存儲介質(zhì)110中讀出父虛擬硬盤文檔111所包含的目標(biāo)程序,并傳送目標(biāo)程序至主機200,使得在主機200中運行的虛擬機可以執(zhí)行目標(biāo)程序。其中,特別值得一提的是,若存儲介質(zhì)110為區(qū)塊設(shè)備,則目標(biāo)程序可能被儲存在一個至多個存儲區(qū)塊中,目標(biāo)模塊130會讀取目標(biāo)程序的各個存儲區(qū)塊,并分別傳送至主機200。
[0076]服務(wù)緩存150為可附加在存儲服務(wù)器100中的存儲元件,通常為讀取速度比存儲介質(zhì)110更快的存儲設(shè)備,例如隨機存取存儲器(Random Access Memory,RAM)、閃存(Flash)等,但服務(wù)緩存150并不以此為限。
[0077]服務(wù)緩存150負責(zé)儲存目標(biāo)模塊130由存儲介質(zhì)110中所讀出的目標(biāo)程序,使目標(biāo)模塊130可以在需要再次至存儲介質(zhì)110中讀取目標(biāo)程序時,先判斷服務(wù)緩存150中是否儲存目標(biāo)程序,若服務(wù)緩存150中已儲存目標(biāo)程序,則由服務(wù)緩存150讀取目標(biāo)程序,若服務(wù)緩存150中沒有儲存目標(biāo)程序,則目標(biāo)模塊130仍然會由存儲介質(zhì)110中讀取目標(biāo)程序,并在讀出目標(biāo)程序后,將所讀出的目標(biāo)程序儲存至服務(wù)緩存150中。
[0078]另外,若存儲介質(zhì)110為區(qū)塊設(shè)備時,服務(wù)緩存150中可能不會儲存完整的目標(biāo)程序,也就是服務(wù)緩存150中可能不會儲存包含目標(biāo)程序的所有存儲區(qū)塊,而是可能僅儲存包含目標(biāo)程序的部分存儲區(qū)塊。這樣,目標(biāo)模塊130在需要再次讀取目標(biāo)程序時,會先判斷服務(wù)緩存150中是否儲存包含目標(biāo)程序的存儲區(qū)塊,若服務(wù)緩存150中儲存了包含目標(biāo)程序的一個或多個存儲區(qū)塊,則目標(biāo)模塊130會由服務(wù)緩存150中讀取儲存在服務(wù)緩存150中的包含目標(biāo)程序的各個存儲區(qū)塊,并由存儲介質(zhì)110中讀取沒有儲存在服務(wù)緩存150中的包含目標(biāo)程序的其他存儲區(qū)塊,以及將由存儲介質(zhì)110中所讀出的存儲區(qū)塊儲存在服務(wù)緩存150中,并分別將包含目標(biāo)程序的所有存儲區(qū)塊傳送至主機200。
[0079]接著請參照圖2本發(fā)明所述的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的主機內(nèi)部示意圖所示,主機200還包含啟動模塊210、本地磁盤230、虛擬機處理模塊250以及可附加的主機緩存270。
[0080]啟動模塊210負責(zé)通過存儲區(qū)域網(wǎng)絡(luò)與存儲服務(wù)器100連接,并掛載存儲服務(wù)器100的存儲介質(zhì)110,使存儲介質(zhì)110成為主機200的遠程磁盤。啟動模塊210也負責(zé)至存儲服務(wù)器100下載存儲介質(zhì)110所儲存的父虛擬硬盤文檔111中的目標(biāo)程序。
[0081]本地磁盤230負責(zé)儲存差異虛擬硬盤文檔231。本地磁盤230與存儲服務(wù)器100的存儲介質(zhì)110相似,通常也是區(qū)塊設(shè)備,但本地磁盤230并不以此為限。
[0082]本地磁盤230所儲存的差異虛擬硬盤文檔231是以父虛擬硬盤文檔111為基礎(chǔ)鏡像所建立,而每個主機200的本地磁盤230可以儲存一個或多個差異虛擬硬盤文檔231。
[0083]值得一提的是,由于父虛擬硬盤文檔111為只讀文檔,因此,因為需要對父虛擬硬盤文檔111中的內(nèi)容進行新增、修改、刪除等寫入操作后所產(chǎn)生的數(shù)據(jù)會被儲存在差異虛擬硬盤文檔231中(所產(chǎn)生的數(shù)據(jù)即為本發(fā)明所述的“差異數(shù)據(jù)”)。其中,若本地磁盤230為區(qū)塊設(shè)備,則差異虛擬硬盤文檔231中會儲存父虛擬硬盤文檔111中產(chǎn)生變化的存儲區(qū)塊,也就是說,包含差異數(shù)據(jù)的存儲區(qū)塊會被儲存到差異虛擬硬盤文檔231中。
[0084]虛擬機處理模塊250通常包含處理器(processor)以及存儲器(memory),但虛擬機處理模塊250并不以此為限。
[0085]虛擬機處理模塊250負責(zé)執(zhí)行虛擬機251。每個主機200的虛擬機處理模塊250可以執(zhí)行一個或多個虛擬機,但本發(fā)明并沒有特別的限制。在部分的實施例中,虛擬機處理模塊250所執(zhí)行的虛擬機251與本地磁盤230所儲存的差異虛擬硬盤文檔231具有一對一的對應(yīng)關(guān)系。[0086]當(dāng)虛擬機處理模塊250執(zhí)行虛擬機251時,虛擬機251會掛載相對應(yīng)的差異虛擬硬盤文檔231,而后會執(zhí)行差異虛擬硬盤文檔231中的目標(biāo)程序。在虛擬機251執(zhí)行目標(biāo)程序時,虛擬機251或被執(zhí)行的目標(biāo)程序可能會需要讀取目標(biāo)程序的設(shè)定文檔、動態(tài)連結(jié)文檔、數(shù)據(jù)文檔等相關(guān)數(shù)據(jù)(但本發(fā)明并不以此為限),此時,若目標(biāo)程序的相關(guān)數(shù)據(jù)為父虛擬硬盤文檔111中的原始數(shù)據(jù),且相關(guān)數(shù)據(jù)的內(nèi)容并沒有因為經(jīng)過寫入操作而產(chǎn)生變化,如設(shè)定文檔、動態(tài)連結(jié)文檔等,則虛擬機處理模塊250會通過啟動模塊210至存儲服務(wù)器100的存儲介質(zhì)110中讀取目標(biāo)程序的相關(guān)數(shù)據(jù),而若目標(biāo)程序的相關(guān)數(shù)據(jù)經(jīng)過新增、修改、刪除等寫入操作而成為產(chǎn)生變化的差異數(shù)據(jù),如設(shè)定文檔、數(shù)據(jù)文檔等,則表示產(chǎn)生變化的相關(guān)數(shù)據(jù)被儲存在與被執(zhí)行的虛擬機251對應(yīng)的差異虛擬硬盤文檔231中,因此,虛擬機處理模塊250會由與被執(zhí)行的虛擬機251對應(yīng)的差異虛擬硬盤文檔231中讀取目標(biāo)程序的相關(guān)數(shù)據(jù)。另外,在虛擬機251執(zhí)行目標(biāo)程序時,虛擬機251或被執(zhí)行的目標(biāo)程序也可能會需要進行寫入操作而產(chǎn)生差異數(shù)據(jù),如暫存文檔、緩存等,虛擬機處理模塊250會將被產(chǎn)生的差異數(shù)據(jù)儲存到與被執(zhí)行的虛擬機251對應(yīng)的差異虛擬硬盤文檔231中。
[0087]另外,由于虛擬機與一般電腦相同,也需要安裝有操作系統(tǒng)以及應(yīng)用程序等目標(biāo)程序才能夠運作,因此,虛擬機處理模塊250還可以提供虛擬機251安裝操作系統(tǒng)以及應(yīng)用程序等目標(biāo)程序。
[0088]虛擬機處理模塊250可以在本地磁盤230上產(chǎn)生沒有任何數(shù)據(jù)的臨時虛擬硬盤文檔(圖中未示出),并執(zhí)行虛擬機。虛擬機在被執(zhí)行后,會掛載虛擬機處理模塊250所產(chǎn)生的臨時虛擬硬盤文檔為虛擬機中的磁盤,并格式化該磁盤。在虛擬機安裝目標(biāo)程序時,虛擬機處理模塊250會將虛擬機安裝的目標(biāo)程序儲存到所產(chǎn)生的臨時虛擬硬盤文檔中,并在虛擬機完成目標(biāo)程序的安裝后,在虛擬機所安裝的操作系統(tǒng)(也就是臨時虛擬硬盤文檔)中建立代理程序(agent),而后,在虛擬機處理模塊250結(jié)束執(zhí)行虛擬機或虛擬機卸載(unmount)虛擬機處理模塊250所產(chǎn)生的臨時虛擬硬盤文檔時,虛擬機處理模塊250會將包含目標(biāo)程序以及代理程序的虛擬硬盤文檔復(fù)制到主機200的遠程磁盤中,也就是復(fù)制到存儲服務(wù)器100的存儲介質(zhì)110中,這樣,被虛擬機處理模塊250復(fù)制到主機200的遠程磁盤中的臨時虛擬硬盤文檔即為本發(fā)明所述的父虛擬硬盤文檔111。
[0089]實際上,虛擬機處理模塊250提供虛擬機安裝目標(biāo)程序以建立父虛擬硬盤文檔111的方式并不以上述為限,虛擬機處理模塊250也可以通過設(shè)定主機的啟動模塊210,直接在主機200的遠程磁盤(存儲服務(wù)器100的存儲介質(zhì)110)上產(chǎn)生父虛擬硬盤文檔111,而后,虛擬機處理模塊250會與上述相同的,執(zhí)行虛擬機,并在虛擬機安裝目標(biāo)程序時,將虛擬機安裝的目標(biāo)程序儲存到所產(chǎn)生的父虛擬硬盤文檔111中,并在虛擬機完成目標(biāo)程序的安裝后,在虛擬機所安裝的操作系統(tǒng)(也就是父虛擬硬盤文檔111)中建立代理程序,這樣,父虛擬硬盤文檔111便會包含目標(biāo)程序與代理程序。
[0090]在虛擬機處理模塊250建立父虛擬硬盤文檔111后,可以在本地磁盤230中依據(jù)父虛擬硬盤文檔111建立差異虛擬硬盤文檔231,并掛載所建立的差異虛擬硬盤文檔231,由此將目標(biāo)程序的相關(guān)數(shù)據(jù)寫入差異虛擬硬盤文檔231中。這樣,在虛擬機處理模塊250執(zhí)行與所建立的差異虛擬硬盤文檔231對應(yīng)的新的虛擬機時,新的虛擬機會先執(zhí)行父虛擬硬盤文檔111中的代理程序,代理程序被虛擬機執(zhí)行后,會依據(jù)差異虛擬硬盤文檔231中的相關(guān)數(shù)據(jù)設(shè)定新的虛擬機的初始環(huán)境,使得新的虛擬機的操作系統(tǒng)與應(yīng)用程序等目標(biāo)程序可以正常運作。
[0091]主機緩存270為可附加在主機200中的存儲元件,例如,閃存、隨機存取存儲器等,但主機緩存270并不以此為限。一般而言,主機緩存270的存取速度會優(yōu)于本地磁盤230,但本發(fā)明并沒有特別的限制。
[0092]主機緩存270負責(zé)儲存啟動模塊210至存儲服務(wù)器100所下載的目標(biāo)程序,使啟動模塊210可以在再次需要至存儲服務(wù)器100中下載目標(biāo)程序時,先判斷主機緩存270中是否儲存目標(biāo)程序,若主機緩存270中已儲存目標(biāo)程序,則啟動模塊210將由主機緩存270中讀取目標(biāo)程序,若主機緩存270中尚未儲存目標(biāo)程序,則啟動模塊210才會由存儲服務(wù)器100中下載目標(biāo)程序,并在下載目標(biāo)程序后,將所下載的目標(biāo)程序儲存到主機緩存270中。
[0093]另外,若存儲服務(wù)器100的存儲介質(zhì)110與本地磁盤230都為區(qū)塊設(shè)備時,主機緩存270中可能不會儲存完整的目標(biāo)程序,也就是主機緩存270中可能不會儲存包含目標(biāo)程序的所有存儲區(qū)塊,而是可能僅儲存包含目標(biāo)程序的部分存儲區(qū)塊。這樣,啟動模塊210在需要再次讀取目標(biāo)程序時,會先判斷主機緩存270中是否儲存包含目標(biāo)程序的存儲區(qū)塊,若主機緩存270中儲存了包含目標(biāo)程序的一個或多個存儲區(qū)塊,則啟動模塊210會由主機緩存270中讀取被儲存在主機緩存270中的包含目標(biāo)程序的各個存儲區(qū)塊,并至由存儲服務(wù)器100下載沒有被儲存在主機緩存270中的包含目標(biāo)程序的其他存儲區(qū)塊,并儲存到主機緩存270中。
[0094]接著以一個實施例來解說本發(fā)明的運作系統(tǒng)與方法,并請參照圖3A本發(fā)明所述的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的方法流程圖。假設(shè)在本實施例中,包含一個存儲服務(wù)器100以及至少一個主機200,其中,存儲服務(wù)器100與主機200都支持本發(fā)明。另外,在主機200的數(shù)量過多時,本發(fā)明中也可以包含兩個或兩個以上的存儲服務(wù)器100。
[0095]若存儲服務(wù)器100的存儲介質(zhì)110中尚未儲存可以作為基礎(chǔ)鏡像的父虛擬硬盤文檔111,則管理員需要先建立可以作為基礎(chǔ)鏡像的父虛擬硬盤文檔111。這樣,表示管理員需要操作其中一臺主機200,由此建立可以作為基礎(chǔ)鏡像的父虛擬硬盤文檔111,其中,被管理員操作來建立可以作為基礎(chǔ)鏡像的父虛擬硬盤文檔111的主機200在本發(fā)明中被稱為“設(shè)定主機”。
[0096]首先,設(shè)定主機中的啟動模塊210可以通過存儲區(qū)域網(wǎng)絡(luò)掛載存儲服務(wù)器100的存儲介質(zhì)110為設(shè)定主機的遠程磁盤(步驟310),而后,設(shè)定主機的虛擬機處理模塊250可以在遠程磁盤中建立可以作為基礎(chǔ)鏡像的父虛擬硬盤文檔111 (步驟320)。
[0097]在本實施例中,假設(shè)設(shè)定主機的虛擬機處理模塊250可以如圖3B的流程所示,在設(shè)定主機的本地磁盤230上產(chǎn)生臨時虛擬硬盤文檔(步驟321a),并執(zhí)行虛擬機(步驟322)。
[0098]在虛擬機被虛擬機處理模塊250執(zhí)行后,虛擬機可以掛載本地磁盤230上的臨時虛擬硬盤文檔(步驟323a)。之后,管理員可以通過設(shè)定主機,在虛擬機中安裝操作系統(tǒng)以及應(yīng)用程序等目標(biāo)程序。
[0099]在虛擬機安裝目標(biāo)程序(步驟325)時,設(shè)定主機的虛擬機處理模塊250可以將虛擬機所安裝的目標(biāo)程序儲存到本地磁盤230上的臨時虛擬硬盤文檔中(步驟326a),并可以在虛擬機完成目標(biāo)程序的安裝后,在儲存目標(biāo)程序的臨時虛擬硬盤文檔中建立代理程序(步驟327a)。最后,在虛擬機被虛擬機處理模塊250結(jié)束執(zhí)行,或虛擬機卸載該虛擬硬盤文檔(步驟328a)時,虛擬機處理模塊250可以將包含目標(biāo)程序以及代理程序的臨時虛擬硬盤文檔由設(shè)定主機的本地磁盤230復(fù)制到設(shè)定主機的遠程磁盤,成為父虛擬硬盤文檔(步驟329),這樣,虛擬機處理模塊250便完成父虛擬硬盤文檔的建立。
[0100]事實上,在本實施例中,設(shè)定主機的虛擬機處理模塊250也可以如圖3C的流程所示,通過設(shè)定主機的啟動模塊210,直接在設(shè)定主機的遠程磁盤(存儲服務(wù)器100的存儲介質(zhì)110)上產(chǎn)生父虛擬硬盤文檔111 (步驟321b)后,執(zhí)行虛擬機(步驟322)。虛擬機在執(zhí)行后會掛載遠程磁盤上的父虛擬硬盤文檔(步驟323b)。
[0101]之后,管理員可以通過設(shè)定主機,在虛擬機中安裝目標(biāo)程序。在虛擬機安裝目標(biāo)程序(步驟325)時,設(shè)定主機的虛擬機處理模塊250可以將虛擬機所安裝的目標(biāo)程序儲存到遠程磁盤上的父虛擬硬盤文檔中(步驟326b),并可以在虛擬機完成目標(biāo)程序的安裝后,在包含目標(biāo)程序的父虛擬硬盤文檔中建立代理程序(步驟327b )。這樣,虛擬機處理模塊250便在遠程磁盤上建立包含目標(biāo)程序以及代理程序的父虛擬硬盤文檔。
[0102]接著回到圖3A,設(shè)定主機的虛擬機處理模塊250在設(shè)定主機的遠程磁盤上,也就是在存儲服務(wù)器100的存儲介質(zhì)110中建立父虛擬硬盤文檔111 (步驟320)后,包含設(shè)定主機的所有的主機都可以通過存儲區(qū)域網(wǎng)絡(luò)掛載存儲服務(wù)器100的存儲介質(zhì)110為各主機上的遠程磁盤(步驟310)。其中,由于包含設(shè)定主機的所有的主機都可以提供虛擬機的執(zhí)行,因此,在本發(fā)明中,所有的主機都可以被稱為“服務(wù)主機”。
[0103]在本發(fā)明中,設(shè)定主機的虛擬機處理模塊250在遠程磁盤上建立父虛擬硬盤文檔111 (步驟320)的步驟,與所有主機通過存儲區(qū)域網(wǎng)絡(luò)掛載存儲服務(wù)器100的存儲介質(zhì)110為各主機上的遠程磁盤(步驟310)的步驟并沒有先后順序的分別,也就是說,包含設(shè)定主機的所有主機可以先通過存儲區(qū)域網(wǎng)絡(luò)掛載存儲服務(wù)器100的存儲介質(zhì)110為各主機上的遠程磁盤(步驟310),而后,設(shè)定主機的虛擬機處理模塊250才會在遠程磁盤上建立父虛擬硬盤文檔111 (步驟320)。
[0104]另外,在本發(fā)明中,由于各個服務(wù)主機(所有的主機)接下來所執(zhí)行的步驟都相同,因此,在后續(xù)的說明中,將只針對一個服務(wù)主機說明。
[0105]在各主機通過存儲區(qū)域網(wǎng)絡(luò)掛載存儲服務(wù)器100的存儲介質(zhì)110為各主機上的遠程磁盤(步驟310),以及設(shè)定主機在遠程磁盤上建立父虛擬硬盤文檔111 (步驟320)后,月艮務(wù)主機的虛擬機處理模塊250可以以遠程磁盤上的父虛擬硬盤文檔111為基礎(chǔ)鏡像,在服務(wù)主機的本地磁盤230中建立差異虛擬硬盤文檔231 (步驟330)。
[0106]在實際上,服務(wù)主機的虛擬機處理模塊250可以建立多個差異虛擬硬盤文檔231,每個差異虛擬硬盤文檔231都對應(yīng)一個不同的虛擬機。在本發(fā)明中,由于每個虛擬機的運作方式都相同,因此,在本實施例中,將只針對一個虛擬機進行描述。
[0107]在服務(wù)主機的虛擬機處理模塊250以遠程磁盤上的父虛擬硬盤文檔111為基礎(chǔ)鏡像,在服務(wù)主機的本地磁盤230中建立差異虛擬硬盤文檔231 (步驟330)后,在服務(wù)主機的虛擬機處理模塊250執(zhí)行與差異虛擬硬盤文檔231對應(yīng)的虛擬機251 (步驟352)時,若服務(wù)主機的虛擬機處理模塊250未曾執(zhí)行過與所建立的差異虛擬硬盤文檔231對應(yīng)的虛擬機251,則如圖3D的流程所示,服務(wù)主機的虛擬機處理模塊250可以先將服務(wù)主機的遠程磁盤上的父虛擬硬盤文檔111中的目標(biāo)程序的相關(guān)數(shù)據(jù)寫入差異虛擬硬盤文檔231中(步驟340 )。在本實施例中,服務(wù)主機的虛擬機處理模塊250可以執(zhí)行如di skpart等工具程序,將差異虛擬硬盤文檔231掛載為服務(wù)主機的磁盤,并在服務(wù)主機掛載差異虛擬硬盤文檔231所產(chǎn)生的磁盤中寫入與差異虛擬硬盤文檔231對應(yīng)的虛擬機的名稱、操作系統(tǒng)的網(wǎng)域存取權(quán)限、遠程桌面程序的用戶權(quán)限等相關(guān)數(shù)據(jù),由此將安裝在父虛擬硬盤文檔111中的目標(biāo)程序的相關(guān)數(shù)據(jù)寫入差異虛擬硬盤文檔231中。
[0108]在服務(wù)主機的虛擬機處理模塊250將相關(guān)數(shù)據(jù)寫入差異虛擬硬盤文檔中(步驟340)后,服務(wù)主機的虛擬機處理模塊250才可以執(zhí)行與被寫入相關(guān)數(shù)據(jù)的差異虛擬硬盤文檔231相對應(yīng)的虛擬機251 (步驟352),虛擬機251在被服務(wù)主機的虛擬機處理模塊250執(zhí)行后,可以掛載相對應(yīng)的差異虛擬硬盤文檔231 (步驟356),由此在虛擬機251中生成磁盤,由于差異虛擬硬盤文檔231是以服務(wù)主機的遠程磁盤上的父虛擬硬盤文檔111為基礎(chǔ)鏡像,因此,在虛擬機中生成的磁盤將包含父虛擬硬盤文檔111中的所有原始數(shù)據(jù)以及差異虛擬硬盤文檔231中的差異數(shù)據(jù),其中,差異虛擬硬盤文檔231中的差異數(shù)據(jù)會覆蓋父虛擬硬盤文檔111中經(jīng)過寫入操作的原始數(shù)據(jù)。
[0109]在虛擬機251掛載相對應(yīng)的差異虛擬硬盤文檔231 (步驟356)后,虛擬機251可以執(zhí)行遠程磁盤上的父虛擬硬盤文檔111中的代理程序(步驟361),對虛擬機251而言,也就是執(zhí)行在虛擬機251中生成的磁盤中所包含的代理程序。
[0110]代理程序在虛擬機中被執(zhí)行后,可以依據(jù)差異虛擬硬盤文檔231中所儲存的相關(guān)數(shù)據(jù)設(shè)定虛擬機251及/或目標(biāo)程序的初始環(huán)境(步驟363),使得虛擬機251可以順利運作,并正常執(zhí)行在虛擬機生成的磁盤中的操作系統(tǒng)以及應(yīng)用程序,也就是執(zhí)行遠程磁盤上的父虛擬硬盤文檔111中的目標(biāo)程序(步驟370),由此讓虛擬機的用戶操作虛擬機。在本發(fā)明中,假設(shè)代理程序會設(shè)定虛擬機的名稱、操作系統(tǒng)所在的網(wǎng)域的存取權(quán)限、操作系統(tǒng)中遠程桌面軟件的用戶權(quán)限等相關(guān)數(shù)據(jù)。
[0111]繼續(xù)回到圖3A,在服務(wù)主機的虛擬機處理模塊250執(zhí)行與所建立的差異虛擬硬盤文檔231對應(yīng)的虛擬機251 (步驟352)時,若服務(wù)主機的虛擬機處理模塊250曾經(jīng)執(zhí)行過與所建立的差異虛擬硬盤文檔231對應(yīng)的虛擬機251,則在服務(wù)主機的虛擬機處理模塊250執(zhí)行虛擬機251 (步驟352)后,虛擬機251可以掛載相對應(yīng)的差異虛擬硬盤文檔231 (步驟356),使得虛擬機251依據(jù)差異虛擬硬盤文檔231生成磁盤,接著,虛擬機251可以執(zhí)行服務(wù)主機的遠程磁盤上的父虛擬硬盤文檔111中的目標(biāo)程序(步驟370),對虛擬機251而言,也就是執(zhí)行在虛擬機251中生成的磁盤上的操作系統(tǒng)以及應(yīng)用程序等目標(biāo)程序,使得虛擬機251可以正常開機并提供用戶操作虛擬機251。
[0112]在虛擬機251執(zhí)行目標(biāo)程序(步驟370)的過程中,若虛擬機251或目標(biāo)程序需要讀取目標(biāo)程序的相關(guān)數(shù)據(jù),如記錄設(shè)定文檔中的環(huán)境設(shè)定值等,若被讀取的相關(guān)數(shù)據(jù)未曾經(jīng)過寫入操作,也就是相關(guān)數(shù)據(jù)并非儲存在差異虛擬硬盤文檔231中,而是儲存在父虛擬硬盤文檔111中的原始數(shù)據(jù),則服務(wù)主機的虛擬機處理模塊250可以通過服務(wù)主機的啟動模塊210至存儲服務(wù)器100下載相關(guān)數(shù)據(jù),例如,啟動模塊210發(fā)出相關(guān)數(shù)據(jù)的下載請求給存儲服務(wù)器100,使得存儲服務(wù)器100的目標(biāo)模塊130依據(jù)下載請求由存儲服務(wù)器100的存儲介質(zhì)110中讀出相關(guān)數(shù)據(jù)并傳回給服務(wù)主機,而若被讀取的相關(guān)數(shù)據(jù)經(jīng)過寫入操作,也就是相關(guān)數(shù)據(jù)為被儲存在差異虛擬硬盤文檔231中的差異數(shù)據(jù),則服務(wù)主機的虛擬機處理模塊250可以通過至差異虛擬硬盤文檔231中讀取相關(guān)數(shù)據(jù)(步驟392)。
[0113]同樣在虛擬機251執(zhí)行目標(biāo)程序(步驟370)的過程中,若目標(biāo)程序在執(zhí)行過程中,需要在虛擬機251中生成的磁盤上存取所產(chǎn)生的差異數(shù)據(jù)時,在本實施例中,假設(shè)目標(biāo)程序產(chǎn)生需要儲存的暫存數(shù)據(jù)時,服務(wù)主機的虛擬機處理模塊250可以將暫存數(shù)據(jù)(差異數(shù)據(jù))儲存到與虛擬機251對應(yīng)的差異虛擬硬盤文檔231中,或目標(biāo)程序需要讀取暫存數(shù)據(jù)時,虛擬機處理模塊250可以由與虛擬機251對應(yīng)的差異虛擬硬盤文檔231中讀取出目標(biāo)程序所需要的暫存數(shù)據(jù)(步驟396 )。
[0114]這樣,服務(wù)主機中的一個或多個虛擬機在執(zhí)行時,若在各個虛擬機中執(zhí)行的目標(biāo)程序?qū)⒉町悢?shù)據(jù)儲存在各個虛擬機的磁盤中,則會使得服務(wù)主機的虛擬機處理模塊250分別將各目標(biāo)程序所產(chǎn)生的差異數(shù)據(jù)寫入執(zhí)行各目標(biāo)程序的虛擬機所對應(yīng)的差異虛擬硬盤文檔中,也就是服務(wù)主機的虛擬機處理模塊250會將差異數(shù)據(jù)儲存在服務(wù)主機的本地磁盤230中,而當(dāng)各個虛擬機或在各個虛擬機中執(zhí)行的各個目標(biāo)程序需要讀取相關(guān)數(shù)據(jù)時,若虛擬機所對應(yīng)的差異虛擬硬盤文檔中存在該相關(guān)數(shù)據(jù),則服務(wù)主機的虛擬機處理模塊250會由虛擬機所對應(yīng)的差異虛擬硬盤文檔中讀取目標(biāo)程序所需讀取的相關(guān)數(shù)據(jù),也就是服務(wù)主機的虛擬機處理模塊250會由服務(wù)主機的本地磁盤230中讀出差異數(shù)據(jù),而若虛擬機所對應(yīng)的差異虛擬硬盤文檔中不存在該相關(guān)數(shù)據(jù),也就是該相關(guān)數(shù)據(jù)為儲存在父虛擬硬盤文檔中的原始數(shù)據(jù),則服務(wù)主機的虛擬機處理模塊250會通過服務(wù)主機的啟動模塊210至存儲服務(wù)器100中下載原始數(shù)據(jù)。
[0115]相似的,當(dāng)虛擬機的用戶在虛擬機中安裝新的應(yīng)用程序時,新的應(yīng)用程序即為差異數(shù)據(jù),虛擬機會將新的應(yīng)用程序安裝至掛載差異虛擬硬盤文檔所生成的磁盤中,使得服務(wù)主機的虛擬機處理模塊250將新的應(yīng)用程序?qū)懭敕?wù)主機的本地磁盤230所儲存的與虛擬機對應(yīng)的差異虛擬硬盤文檔中,而后在新的應(yīng)用程序被虛擬機執(zhí)行時,服務(wù)主機的虛擬機處理模塊250會由服務(wù)主機的本地磁盤230所儲存的與虛擬機對應(yīng)的差異虛擬硬盤文檔中讀出新安裝的應(yīng)用程序。而當(dāng)虛擬機執(zhí)行原先安裝在相對應(yīng)的差異虛擬硬盤文檔的基礎(chǔ)鏡像中的目標(biāo)程序時,服務(wù)主機的虛擬機處理模塊250會通過服務(wù)主機的啟動模塊210至存儲服務(wù)器100下載目標(biāo)程序,例如,啟動模塊210發(fā)出目標(biāo)程序的下載請求給存儲服務(wù)器100,使得存儲服務(wù)器100的目標(biāo)模塊130依據(jù)下載請求由存儲服務(wù)器100的存儲介質(zhì)110中讀出目標(biāo)程序并傳回給服務(wù)主機。
[0116]在上述的實施例中,若服務(wù)主機還包含主機緩存270,則當(dāng)服務(wù)主機的虛擬機處理模塊250通過服務(wù)主機的啟動模塊210至存儲服務(wù)器100下載目標(biāo)程序或下載目標(biāo)程序的相關(guān)數(shù)據(jù)時,服務(wù)主機的啟動模塊210可以在至存儲服務(wù)器100下載的目標(biāo)程序或相關(guān)數(shù)據(jù)前,先判斷主機緩存270中是否儲存被下載的目標(biāo)程序或相關(guān)數(shù)據(jù),若是,則啟動模塊210可以直接由主機緩存270中讀取被下載的目標(biāo)程序或相關(guān)數(shù)據(jù),并將由主機緩存270中讀出的目標(biāo)程序或相關(guān)數(shù)據(jù)提供給服務(wù)主機的虛擬機處理模塊250,若否,啟動模塊210才會至存儲服務(wù)器100下載的目標(biāo)程序或相關(guān)數(shù)據(jù)。
[0117]若服務(wù)主機的本地磁盤230以及存儲服務(wù)器100的存儲介質(zhì)110都是區(qū)塊設(shè)備,則如圖3E的流程所示,在虛擬機讀取目標(biāo)程序或目標(biāo)程序讀取相關(guān)數(shù)據(jù)(原始數(shù)據(jù))(步驟371)時,服務(wù)主機的虛擬機處理模塊250可以通過服務(wù)主機的啟動模塊210下載目標(biāo)程序或相關(guān)數(shù)據(jù),啟動模塊210可以判斷主機緩存270中是否儲存目標(biāo)程序或相關(guān)數(shù)據(jù)的任何存儲區(qū)塊(步驟372),若是,則啟動模塊210可以由主機緩存270中讀出目標(biāo)程序或相關(guān)數(shù)據(jù)的存儲區(qū)塊(步驟373),接著,啟動模塊210可以將沒有儲存在主機緩存270中的目標(biāo)程序或相關(guān)數(shù)據(jù)的存儲區(qū)塊的下載請求傳送至存儲服務(wù)器100,由此至存儲服務(wù)器100下載沒有儲存在主機緩存270中的目標(biāo)程序或相關(guān)數(shù)據(jù)的存儲區(qū)塊(步驟375)。在本實施例中,假設(shè)目標(biāo)程序或相關(guān)數(shù)據(jù)分布在兩個存儲區(qū)塊中,若主機緩存270中儲存其中的一個存儲區(qū)塊的內(nèi)容,則啟動模塊210在判斷出主機緩存270中儲存有一個存儲區(qū)塊后,啟動模塊210會由主機緩存270中讀出該存儲區(qū)塊,并傳送另外一個存儲區(qū)塊的下載請求至存儲服務(wù)器100,由此下載另一個存儲區(qū)塊。
[0118]在啟動模塊210接收到存儲服務(wù)器100的目標(biāo)模塊130所傳回的目標(biāo)程序或相關(guān)數(shù)據(jù)的存儲區(qū)塊后,啟動模塊210可以將接收自目標(biāo)模塊130的存儲區(qū)塊儲存到主機緩存270中(步驟376),并由主機緩存270中讀出的存儲區(qū)塊與接收自目標(biāo)模塊130的存儲區(qū)塊組合為目標(biāo)程序或相關(guān)數(shù)據(jù)(步驟377),使得虛擬機處理模塊250可以將目標(biāo)程序或相關(guān)數(shù)據(jù)提供給虛擬機執(zhí)行(步驟378)。
[0119]在上述的實施例中,若存儲服務(wù)器100還包含服務(wù)緩存150,則當(dāng)服務(wù)主機的虛擬機處理模塊250通過服務(wù)主機的啟動模塊210至存儲服務(wù)器100下載目標(biāo)程序或下載目標(biāo)程序的相關(guān)數(shù)據(jù)時,存儲服務(wù)器100的目標(biāo)模塊130可以在至存儲服務(wù)器100的存儲介質(zhì)110中讀取被下載的目標(biāo)程序或相關(guān)數(shù)據(jù)前,先判斷服務(wù)緩存150中是否儲存被下載的目標(biāo)程序或相關(guān)數(shù)據(jù),若是,則目標(biāo)模塊130可以直接由服務(wù)緩存150中讀取被下載的目標(biāo)程序或相關(guān)數(shù)據(jù),并傳回服務(wù)主機,若否,目標(biāo)模塊130才會至存儲服務(wù)器100的存儲介質(zhì)110中讀取被下載的目標(biāo)程序或相關(guān)數(shù)據(jù)。
[0120]若服務(wù)主機的本地磁盤230以及存儲服務(wù)器100的存儲介質(zhì)110都是區(qū)塊設(shè)備,則如圖3F的流程所示,存儲服務(wù)器100的目標(biāo)模塊130在接收到服務(wù)主機的啟動模塊210所傳送的目標(biāo)程序或相關(guān)數(shù)據(jù)的存儲區(qū)塊的下載請求(步驟381)后,可以先判斷服務(wù)緩存150中是否儲存被下載的目標(biāo)程序或相關(guān)數(shù)據(jù)的任何存儲區(qū)塊(步驟382),若是,則目標(biāo)模塊130可以直接由服務(wù)緩存150中讀取被下載的目標(biāo)程序或相關(guān)數(shù)據(jù)的存儲區(qū)塊(步驟383),并將由服務(wù)緩存150中讀出的存儲區(qū)塊傳回服務(wù)主機(步驟386),而后,目標(biāo)模塊130還可以至存儲介質(zhì)110中讀取沒有儲存在服務(wù)緩存150中的目標(biāo)程序或相關(guān)數(shù)據(jù)的存儲區(qū)塊,并將由存儲介質(zhì)110中讀出的存儲區(qū)塊儲存到服務(wù)緩存150中(步驟385),以及將由存儲介質(zhì)110中讀出的存儲區(qū)塊傳回服務(wù)主機(步驟386)。在本實施例中,假設(shè)目標(biāo)程序或相關(guān)數(shù)據(jù)分布在兩個存儲區(qū)塊中,若服務(wù)緩存150中儲存其中的一個存儲區(qū)塊的內(nèi)容,則目標(biāo)模塊130在判斷出服務(wù)緩存150中儲存有一個存儲區(qū)塊后,會由服務(wù)緩存150中讀出該存儲區(qū)塊,并傳送由服務(wù)緩存150中讀出的存儲區(qū)塊至服務(wù)主機,目標(biāo)模塊130也會至存儲介質(zhì)110中讀取另一個存儲區(qū)塊的內(nèi)容,并傳送由存儲介質(zhì)110中讀出的存儲區(qū)塊至服務(wù)主機。
[0121]綜上所述,可知本發(fā)明與現(xiàn)有技術(shù)之間的差異在于具有主機通過存儲區(qū)域網(wǎng)絡(luò)在存儲服務(wù)器中建立父虛擬硬盤文檔,并以父虛擬硬盤文檔為基礎(chǔ)鏡像在本地磁盤中建立差異虛擬硬盤文檔,當(dāng)主機所執(zhí)行的虛擬機掛載差異虛擬硬盤文檔后,虛擬機執(zhí)行目標(biāo)程序時,服務(wù)主機通過存儲區(qū)域網(wǎng)絡(luò)讀取父虛擬硬盤文檔中的原始數(shù)據(jù),并在本地磁盤的差異虛擬硬盤文檔中存取目標(biāo)程序所產(chǎn)生的差異數(shù)據(jù)的技術(shù)手段,通過這一技術(shù)手段可以解決現(xiàn)有技術(shù)所存在基礎(chǔ)鏡像與差異硬盤設(shè)置在同一裝置容易造成存取效能低下的問題,進而達成提高存儲服務(wù)器的存取效能并增加存儲服務(wù)器所支持的虛擬機數(shù)的技術(shù)效果。
[0122]再者,本發(fā)明的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的方法,可實現(xiàn)于硬件、軟件或硬件與軟件的組合中,亦可在電腦系統(tǒng)中以集中方式實現(xiàn)或以不同元件散布于若干互連的電腦系統(tǒng)的分散方式實現(xiàn)。
[0123]雖然本發(fā)明所揭露的實施方式如上,然而所述的內(nèi)容并非用以直接限定本發(fā)明的專利保護范圍。任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明所揭露的精神和范圍的前提下,對本發(fā)明的實施的形式上及細節(jié)上作一些更動潤飾,均屬于本發(fā)明的專利保護范圍。本發(fā)明的專利保護范圍,仍須以所附的權(quán)利要求書所限定的內(nèi)容為準(zhǔn)。
【權(quán)利要求】
1.一種以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的方法,其特征在于,提供執(zhí)行虛擬機的至少一個主機讀取存儲服務(wù)器上的基礎(chǔ)鏡像,這些主機中包含設(shè)定主機及至少一個服務(wù)主機,該方法至少包含下列步驟: 所述各主機通過存儲區(qū)域網(wǎng)絡(luò)掛載該存儲服務(wù)器為遠程磁盤; 該設(shè)定主機在該遠程磁盤中建立一父虛擬硬盤文檔; 所述各服務(wù)主機以該父虛擬硬盤文檔為基礎(chǔ)鏡像,在所述各服務(wù)主機的本地磁盤中建立至少一個差異虛擬硬盤文檔; 這些服務(wù)主機至少其中之一執(zhí)行與這些差異虛擬硬盤文檔其中之一對應(yīng)的虛擬機; 該虛擬機掛載相對應(yīng)的差異虛擬硬盤文檔; 該虛擬機通過相對應(yīng)的差異虛擬硬盤文檔執(zhí)行該父虛擬硬盤文檔中的目標(biāo)程序; 當(dāng)該虛擬機讀取該目標(biāo)程序的相關(guān)數(shù)據(jù)時,所述各服務(wù)主機由與該虛擬機對應(yīng)的差異虛擬硬盤文檔中讀取該相關(guān)數(shù)據(jù);及 當(dāng)該目標(biāo)程序存取所產(chǎn)生的差異數(shù)據(jù)時,所述各服務(wù)主機至與該虛擬機對應(yīng)的差異虛擬硬盤文檔中存取該差異數(shù)據(jù)。
2.如權(quán)利要求1所述的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的方法,其特征在于,該虛擬機通過相對應(yīng)的差異虛擬硬盤文檔執(zhí)行該父虛擬硬盤文檔中的該目標(biāo)程序的步驟還包含該存儲服務(wù)器判斷儲存該目標(biāo)程序的至少一個存儲區(qū)塊儲存在該存儲服務(wù)器的服務(wù)緩存中時,從該服務(wù)緩存中讀取所述各存儲區(qū)塊的步驟。
3.如權(quán)利要求1所述的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的方法,其特征在于,該虛擬機通過相對應(yīng)的差異虛擬硬盤文檔執(zhí)行該父虛擬硬盤文檔中的該目標(biāo)程序的步驟,還包含所述各服務(wù)主機判斷該目標(biāo)程序的各存儲區(qū)塊是否儲存于所述各服務(wù)主機的主機緩存中,若是,則所述各服務(wù)主機由該主機緩存讀取所述各存儲區(qū)塊,若否,則所述各服務(wù)主機至該存儲服務(wù)器下載未儲存于該主機緩存中的其他存儲區(qū)塊,并儲存所下載的存儲區(qū)塊至該主機緩存中的步驟。
4.如權(quán)利要求1所述的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的方法,其特征在于,該設(shè)定主機在該遠程磁盤中建立一父虛擬硬盤文檔的步驟還包含該設(shè)定主機在該設(shè)定主機的本地磁盤上產(chǎn)生一臨時虛擬硬盤文檔,并執(zhí)行一虛擬機,當(dāng)該虛擬機掛載該臨時虛擬硬盤文檔后,該虛擬機安裝該目標(biāo)程序時,儲存該目標(biāo)程序至該臨時虛擬硬盤文檔中,并在該臨時虛擬硬盤文檔中建立一代理程序,及當(dāng)該虛擬機結(jié)束執(zhí)行或卸載該臨時虛擬硬盤文檔時,復(fù)制該臨時虛擬硬盤文檔至該遠程磁盤為該父虛擬硬盤文檔的步驟,或包含該設(shè)定主機在該遠程磁盤上產(chǎn)生該父虛擬硬盤文檔,并執(zhí)行一虛擬機,當(dāng)虛擬機掛載該虛擬硬盤文檔后,該虛擬機安裝該目標(biāo)程序時,儲存該目標(biāo)程序至該父虛擬硬盤文檔中,并在該父虛擬硬盤文檔中提供建立一代理程序的步驟。
5.如權(quán)利要求1所述的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的方法,其特征在于,該方法在這些服務(wù)主機至少其中之一執(zhí)行與這些差異虛擬硬盤文檔其中之一對應(yīng)的該虛擬機的步驟前,還包含所述各服務(wù)主機寫入該相關(guān)數(shù)據(jù)至該差異虛擬硬盤文檔中的步驟,且該方法在該虛擬機通過相對應(yīng)的差異虛擬硬盤文檔執(zhí)行該父虛擬硬盤文檔中的該目標(biāo)程序的步驟前,還包含該虛擬機 執(zhí)行該父虛擬硬盤文檔中的一代理程序,使該代理程序依據(jù)該相關(guān)數(shù)據(jù)設(shè)定該虛擬機及/或該目標(biāo)程序的初始環(huán)境的步驟。
6.一種以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的服務(wù)器,其特征在于,提供執(zhí)行虛擬機的至少一個主機讀取基礎(chǔ)鏡像,該服務(wù)器至少包含: 存儲介質(zhì),用以儲存一父虛擬硬盤文檔,該父虛擬硬盤文檔中包含一目標(biāo)程序 '及 目標(biāo)模塊,用以提供該主機通過存儲區(qū)域網(wǎng)絡(luò)掛載該存儲介質(zhì)為遠程磁盤,由此使該主機以該父虛擬硬盤文檔為基礎(chǔ)鏡像建立至少一個差異虛擬硬盤文檔,及用以在該主機所執(zhí)行的虛擬機通過相對應(yīng)的差異虛擬硬盤文檔執(zhí)行該目標(biāo)程序時,傳送該目標(biāo)程序至該主機。
7.如權(quán)利要求6所述的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的服務(wù)器,其特征在于,該服務(wù)器還包含一服務(wù)緩存,用以儲存包含該目標(biāo)程序的至少一個存儲區(qū)塊,使該目標(biāo)模塊在傳送該目標(biāo)程序至該主機時,先判斷該服務(wù)緩存中是否儲存所述各存儲區(qū)塊,若是,則該目標(biāo)模塊由該服務(wù)緩存中讀取所述各存儲區(qū)塊,并傳送所述各存儲區(qū)塊至該主機。
8.一種以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的主機,其特征在于,該主機至少包含: 啟動模塊,用以通過存儲區(qū)域網(wǎng)絡(luò)掛載一存儲服務(wù)器的存儲介質(zhì)為遠程磁盤,該存儲介質(zhì)中儲存一父虛擬硬盤文檔,該父虛擬硬盤文檔中包含一目標(biāo)程序,及用以下載該目標(biāo)程序; 本地磁盤,用以儲存至少一個差異虛擬硬盤文檔,所述各差異虛擬硬盤文檔以該父虛擬硬盤文檔為基礎(chǔ)鏡像所建立;及 虛擬機處理模塊,用以執(zhí)行與所述各差異虛擬硬盤文檔對應(yīng)的虛擬機,使該虛擬機執(zhí)行該目標(biāo)程序,及用以在該虛擬機讀取該目標(biāo)程序的相關(guān)數(shù)據(jù)時,由與該虛擬機對應(yīng)的差異虛擬硬盤文檔中讀取該相關(guān)數(shù)據(jù),并在該目標(biāo)程序儲存所產(chǎn)生的差異數(shù)據(jù)時,將該差異數(shù)據(jù)儲存至與該虛擬機對應(yīng)的差異虛擬硬盤文檔中。
9.如權(quán)利要求8所述的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的主機,其特征在于,該主機還包含一主機緩存,用以儲存該`目標(biāo)程序的至少一個存儲區(qū)塊,使該啟動模塊下載該目標(biāo)程序時,先判斷該主機緩存中是否儲存所述各存儲區(qū)塊,若是,則該啟動模塊由該主機緩存中讀取所述各存儲區(qū)塊,若否,則該啟動模塊下載未儲存于該主機緩存中的其他存儲區(qū)塊,并將所下載的存儲區(qū)塊儲存至該主機緩存中。
10.如權(quán)利要求8所述的以存儲區(qū)域網(wǎng)絡(luò)提供讀取基礎(chǔ)鏡像的主機,其特征在于,該虛擬機處理模塊還用以在該本地磁盤上產(chǎn)生一臨時虛擬硬盤文檔,并執(zhí)行一虛擬機,當(dāng)該虛擬機掛載該臨時虛擬硬盤文檔后,安裝該目標(biāo)程序時,該虛擬機處理模塊儲存該目標(biāo)程序至該臨時虛擬硬盤文檔中,并在該臨時虛擬硬盤文檔中建立一代理程序,當(dāng)該虛擬機結(jié)束執(zhí)行或卸載該虛擬硬盤文檔時,該虛擬機處理模塊復(fù)制該臨時虛擬硬盤文檔至該遠程磁盤為該父虛擬硬盤文檔,并將該相關(guān)數(shù)據(jù)寫入該差異虛擬硬盤文檔中,使該虛擬機在執(zhí)行該目標(biāo)程序前先執(zhí)行該代理程序,由此由該代理程序依據(jù)該相關(guān)數(shù)據(jù)設(shè)定該虛擬機及/或該目標(biāo)程序的初始環(huán)境,或該虛擬機處理模塊還用以在該遠程磁盤上產(chǎn)生該父虛擬硬盤文檔,并執(zhí)行一虛擬機,當(dāng)該虛擬機掛載該父虛擬硬盤文檔后,該虛擬機安裝該目標(biāo)程序時,該虛擬機處理模塊儲存該目標(biāo)程序至該父虛擬硬盤文檔中,并在該父虛擬硬盤文檔中建立一代理程序,并將該相關(guān)數(shù)據(jù)寫入該差異虛擬硬盤文檔中,使該虛擬機在執(zhí)行該目標(biāo)程序前先執(zhí)行該代理程序,由此由該代理程序依據(jù)該相關(guān)數(shù)據(jù)設(shè)定該虛擬機及/或該目標(biāo)程序的初始環(huán)境。
【文檔編號】H04L29/08GK103685408SQ201210348063
【公開日】2014年3月26日 申請日期:2012年9月18日 優(yōu)先權(quán)日:2012年9月18日
【發(fā)明者】張洪素 申請人:英業(yè)達科技有限公司, 英業(yè)達股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
英山县| 昔阳县| 澜沧| 马尔康县| 新昌县| 车险| 白沙| 板桥市| 板桥市| 永康市| 牙克石市| 桂东县| 潞西市| 高邮市| 扶绥县| 迁西县| 岱山县| 宁安市| 敦煌市| 怀宁县| 南乐县| 右玉县| 丹棱县| 土默特右旗| 朝阳市| 修水县| 攀枝花市| 沁源县| 古浪县| 宁蒗| 临沧市| 吐鲁番市| 陈巴尔虎旗| 成武县| 武清区| 甘谷县| 嘉义市| 靖边县| 洞头县| 神农架林区| 霞浦县|