新四季網

一種虛擬機鏡像的更新方法、伺服器和桌面雲系統的製作方法

2023-05-22 02:55:01 3

專利名稱:一種虛擬機鏡像的更新方法、伺服器和桌面雲系統的製作方法
技術領域:
本發明涉及計算機領域,尤其涉及一種虛擬機鏡像的更新方法、伺服器和桌面雲系統。
背景技術:
桌面雲系統包含VDI (Virtual Desktop Infrastructure,虛擬桌面基礎構架)和StreamingO^S)兩種解決方案。其中VDI採用「集中計算,分布顯示」的原則,支持將客戶端設備桌面的工作負載(作業系統,應用程式,用戶數據)託管在數據中心的伺服器上,根據數據中心的伺服器上存儲的客戶端設備桌面的工作負載生成的虛擬桌面,用戶可以通過支持遠程桌面協議的其他客戶端設備與虛擬桌面進行通信,這樣用戶可以用支持遠程桌面協議的其他客戶端設備來訪問上述客戶端設備的桌面。目前,現有的一種VDI技術採用了流技術,允許從一個單一的共享磁碟鏡像實時配置或者重配置虛擬機,虛擬機通過存放在伺服器上的磁碟鏡像文件啟動。虛擬機磁碟啟動實際上是遠端伺服器上的一個磁碟鏡像文件,該鏡像文件分為Private Image (私有鏡像)和Standard Image (標準鏡像)。多個客戶端能夠共享一個公共的只讀的鏡像文件(Standard Image)。每個客戶端虛擬機包含這個共享的鏡像和一個記錄系統自啟動以來所有改變的差異化文件,此差異化文件作為臨時數據存放,在客戶端重啟時Write Cache (寫緩存)將被清空,虛擬機將恢復到原始狀態。但是由於該差異化文件是作為臨時數據存放的,當主鏡像(也可以稱為基礎鏡像)更新後,從主鏡像派生出來的子鏡像相對於主鏡像的差異化文件都將失效,且重啟客戶端虛擬機後,客戶端虛擬機將恢復到原始的主鏡像,不能保存客戶端虛擬機用戶的更改。為了解決上述鏡像更新失效以及不能保存客戶端虛擬機用戶的更改的問題,現有的另一種VDI技術提供了一種方案,該方案先創建一個單獨的「主」虛擬桌面,這個「主」虛擬桌面被稱為源虛擬機(可理解為主鏡像),基於該源虛擬機創建一個快照文件,然後再生成該快照文件的一個副本虛擬機,通過該副本虛擬機創建帶連結的克隆(可理解為子鏡像),每個帶連結的克隆都相當於一個獨立的桌面,且每個帶連結的克隆與主虛擬機共享同一個基礎鏡像。所有的克隆(虛擬桌面)直接綁定在上述副本虛擬機上。當用戶在主虛擬機上安裝新軟體或者補丁後生成該主虛擬機的新快照,而後將所有的克隆的連結綁定在主虛擬機的新快照上,這樣就使得所有的虛擬桌面都變成了最新的版本。 但是上述方法,是基於文件級(即讀寫某一個文件中的一段數據)維護所有的IOdnput Output,輸入輸出)數據,它將主虛擬機鏡像的系統盤中的「Documents andSettings」文件夾(存放桌面負載的文件夾)重定向到其他盤,不允許用戶在客戶端虛擬機的系統盤安裝任何應用程式,即對於客戶端虛擬機而言,主鏡像是只讀的,只有當伺服器端對主鏡像進行更新後,客戶端才能更新,但是計算機名、domain標識信息等仍然需要基於塊級別(即通過讀寫存儲空間中的一個或者一段地址來進行數據存取)的維護。因此現有技術無法保存用戶在客戶端對子鏡像中數據做出的更改,因此限制了用戶在客戶端的操作。

發明內容
本發明的實施例提供一種虛擬機鏡像的更新方法、伺服器和桌面雲系統,能夠在主鏡像被更新升級後重新建立子鏡像和所述主鏡像的依賴關係的同時,保存用戶在客戶端對所述子鏡像所做的更新升級。本發明的實施例採用如下技術方案:第一方面,提供一種虛擬機鏡像的更新方法,應用於物理主機,所述物理主機管理一個主鏡像和至少一個由所述主鏡像生成的子鏡像,所述子鏡像作為與所述子鏡像對應的虛擬機的虛擬磁碟,包括:在創建虛擬桌面基礎架構環境時,創建主鏡像,並將整個主鏡像劃分為一個塊區;基於所述主鏡像創建子鏡像時,複製主鏡像的塊區結構作為所述子鏡像的塊區結構;當所述子鏡像被更新時,將所述子鏡像中每一塊更新後的部分劃分為一個塊區;當所述主鏡像被更新時,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分將所述主鏡像的更新後的部分合併到所述子鏡像中。結合第一方面,在第一種可能的實現方式中,在所述複製主鏡像的塊區結構作為所述子鏡像的塊區結構之前,還包括:當所述主鏡像被更新時,將所述主鏡像中每一塊更新的部分劃分為一個塊區,並在更新升級過程中生成差異文件列表,所述差異文件列表記錄在更新升級過程中記錄在更新升級過程中相對於原主鏡像的新增、刪除或者修改的文件,所述差異文件列表包括文件路徑、文件類型信息。結合第一方面或第一方面的第一種實現方式,在第二種可能的實現方式中,所述獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分將所述主鏡像的更新後的部分合併到所述子鏡像中,包括:根據所述主鏡像更新後的塊區結構以及所述子鏡像更新後的塊區結構,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分對所述子鏡像進行塊區結構的重劃分,得到所述子鏡像重劃分後的塊區結構,所述子鏡像重劃分後的塊區結構為:所述子鏡像未更新的部分為獨立的塊區,所述重疊部分為獨立的塊區,所述子鏡像更新後的部分中除所述重疊部分外的部分為獨立的塊區;根據所述差異化文件列表以及所述子鏡像重劃分後的塊區結構,將所述主鏡像的更新後的部分在所述子鏡像中進行文件級的合併、替換或者忽略處理。結合第一方面的第二種實現方式,在第三種可能的實現方式中,所述根據所述主鏡像更新後的塊區結構以及所述子鏡像更新後的塊區結構,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分對所述子鏡像進行塊區結構的重劃分包括:確定所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置;根據所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分;當所述主鏡像的更新後的部分所在塊區在所述子鏡像的更新後的部分所在塊區的範圍內時,將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區,得到所述子鏡像重劃分後的塊區結構;當所述子鏡像的更新後的部分所在塊區在所述主鏡像的更新後的部分所在塊區的範圍內時,則在所述子鏡像上新建塊區,使所述新建塊區的範圍加上所述重疊部分的範圍與所述主鏡像的更新後的部分所在塊區的範圍相同,得到所述子鏡像重劃分後的塊區結構。結合第一方面的第三種實現方式,在第四種可能的實現方式中,所述當所述主鏡像的更新後的部分所在塊區在所述子鏡像的更新後的部分所在塊區的範圍內時,將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區包括:若所述重疊部分位於所述子鏡像的更新後的部分所在塊區的前半部分,則將所述重疊部分的終止位置設置為所述子鏡像的更新後的部分所在塊區的新的起始位置,以便將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區;或若所述重疊部分位於所述子鏡像的更新後的部分所在塊區的後半部分,則將所述重疊部分的起始位置設置為所述子鏡像的更新後的部分所在塊區的新的終止位置,以便將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區;或若所述重疊部分位於所述子鏡像的更新後的部分所在塊區的中間,則將所述重疊部分的起始位置設置為所述子鏡像的更新後的部分所在塊區的新的終止位置,並新建塊區,所述新建塊區的起始位置為所述重疊部分的終止位置,所述新建塊區的終止位置所述子鏡像的更新後的部分所在塊區的原終止位置,以便將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區。結合第一方面的第三種可能的實現方式,在第五種可能的實現方式中,當所述子鏡像的更新後的部分所在塊區在所述主鏡像的更新後的部分所在塊區的範圍內時,則在所述子鏡像上新建塊區,使所述新建塊區的範圍加上所述重疊部分的範圍與所述主鏡像的更新後的部分所在塊區的範圍相同包括:若重疊部分位於主鏡像的更新後的部分所在塊區的前半部分,則新建塊區,新建塊區的起始位置為重疊部分的終止位置,新建塊區的終止位置與主鏡像的更新後的部分所在塊區的終止位置相同;若所述重疊部分位於所述主鏡像的更新後的部分所在塊區的後半部分,則新建塊區,所述新建塊區的起始位置與所述主鏡像的更新後的部分所在塊區的起始位置相同,所述新建塊區的終止位置為所述重疊部分的起始位置;若所述重疊部分位於所述主鏡像的更新後的部分所在塊區的中間,則新建第一塊區和第二塊區,所述第一塊區的起始位置與所述主鏡像的更新後的部分所在塊區的起始位置相同,所述第一塊區的終止位置為所述重疊部分的起始位置;所述第二塊區的起始位置為所述重疊部分的終止位置,所述第二塊區的終止位置與所述主鏡像的更新後的部分所在塊區的終止位置相同。結合第一方面的第二種可能的實現方式,在第六種可能的實現方式中,所述根據所述差異化文件列表以及所述子鏡像重劃分後的塊區結構,將所述主鏡像的更新後的部分在所述子鏡像中進行文件級的合併、替換或者忽略處理包括:確定所述差異化文件列表中的文件中的數據所在的塊區,所述差異化文件列表中的文件中的數據所在的塊區若為所述子鏡像重劃分後的塊區結構中的所述重疊部分所在的塊區,則包括:若需要將所述重疊部分的主鏡像的更新後的部分和子鏡像的更新後的部分都保留,則將所述重疊部分的主鏡像的更新後的部分合併到所述子鏡像中;若需要將所述重疊部分的主鏡像的更新後的部分保留,則將所述重疊部分的子鏡像的更新後的部分替換為所述重疊部分的主鏡像的更新後的部分;若忽略所述重疊部分的主鏡像的更新後的部分,則不進行處理。第二方面,提供一種伺服器,所述伺服器包括:主鏡像建立單元,用於在創建虛擬桌面基礎架構環境時,創建主鏡像,並將整個主鏡像劃分為一個塊區;子鏡像建立單元,用於建立子鏡像,並複製所述主鏡像建立單元所創建的主鏡像的塊區結構作為所述子鏡像的塊區結構;塊區管理單元,用於在所述子鏡像建立單元在創建完成所述子鏡像後,當所述子鏡像被更新時,將所述子鏡像中每一塊更新後的部分劃分為一個塊區;合併單元,用於在所述主鏡像建立單元在創建完成所述主鏡像後,當所述主鏡像被更新時,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分將所述主鏡像的更新後的部分合併到所述子鏡像中。結合第二方面,在第一種可能的實現方式中,所述主鏡像建立單元還用於:當所述主鏡像被更新時,將所述主鏡像中每一塊更新的部分劃分為一個塊區,並在更新升級過程中生成差異文件列表,所述差異文件列表記錄在更新升級過程中記錄在更新升級過程中相對於原主鏡像的新增、刪除或者修改的文件,所述差異文件列表包括文件路徑、文件類型信息。結合第二方面或第二方面的第一種可能的實現方式,在第二種可能的實現方式中,所述合併單元具體用於:當所述主鏡像被更新時,根據所述主鏡像更新後的塊區結構以及所述子鏡像更新後的塊區結構,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分對所述子鏡像進行塊區結構的重劃分,得到所述子鏡像重劃分後的塊區結構,所述子鏡像重劃分後的塊區結構為:所述子鏡像未更新的部分為獨立的塊區,所述重疊部分為獨立的塊區,所述子鏡像更新後的部分中除所述重疊部分外的部分為獨立的塊區;根據所述差異化文件列表以及所述子鏡像重劃分後的塊區結構,將所述主鏡像的更新後的部分在所述子鏡像中進行文件級的合併、替換或者忽略處理。結合第二方面的第一至或第二種可能的實現方式,在第三種可能的實現方式中,所述合併單元具體用於:當所述主鏡像被更新時,確定所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置;根據所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分;當所述主鏡像的更新後的部分所在塊區在所述子鏡像的更新後的部分所在塊區的範圍內時,將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區,得到所述子鏡像重劃分後的塊區結構;當所述子鏡像的更新後的部分所在塊區在所述主鏡像的更新後的部分所在塊區的範圍內時,則在所述子鏡像上新建塊區,使所述新建塊區的範圍加上所述重疊部分的範圍與所述主鏡像的更新後的部分所在塊區的範圍相同,得到所述子鏡像重劃分後的塊區結構;根據所述差異化文件列表以及所述子鏡像重劃分後的塊區結構,將所述主鏡像的更新後的部分在所述子鏡像中進行文件級的合併、替換或者忽略處理。結合第二方面的第三種可能的實現方式,在第四種可能的實現方式中,所述合併單元具體用於:當所述主鏡像被更新時,確定所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置;根據所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分;當所述主鏡像的更新後的部分所在塊區在所述子鏡像的更新後的部分所在塊區的範圍內時,若所述重疊部分位於所述子鏡像的更新後的部分所在塊區的前半部分,則將所述重疊部分的終止位置設置為所述子鏡像的更新後的部分所在塊區的新的起始位置,以便將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區;或若所述重疊部分位於所述子鏡像的更新後的部分所在塊區的後半部分,則將所述重疊部分的起始位置設置為所述子鏡像的更新後的部分所在塊區的新的終止位置,以便將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區;或若所述重疊部分位於所述子鏡像的更新後的部分所在塊區的中間,則將所述重疊部分的起始位置設置為所述子鏡像的更新後的部分所在塊區的新的終止位置,並新建塊區,所述新建塊區的起始位置為所述重疊部分的終止位置,所述新建塊區的終止位置所述子鏡像的更新後的部分所在塊區的原終止位置,以便將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區,得到所述子鏡像重劃分後的塊區結構;當所述子鏡像的更新後的部分所在塊區在所述主鏡像的更新後的部分所在塊區的範圍內時,則在所述子鏡像上新建塊區,使所述新建塊區的範圍加上所述重疊部分的範圍與所述主鏡像的更新後的部分所在塊區的範圍相同,得到所述子鏡像重劃分後的塊區結構;根據所述差異化文件列表以及所述子鏡像重劃分後的塊區結構,將所述主鏡像的更新後的部分在所述子鏡像中進行文件級的合併、替換或者忽略處理。結合第二方面的第三種可能的實現方式,在第五種可能的實現方式中,所述合併單元具體用於:當所述主鏡像被更新時,確定所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置;根據所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分;當所述主鏡像的更新後的部分所在塊區在所述子鏡像的更新後的部分所在塊區的範圍內時,將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區,得到所述子鏡像重劃分後的塊區結構;當所述子鏡像的更新後的部分所在塊區在所述主鏡像的更新後的部分所在塊區的範圍內時,若所述重疊部分位於所述主鏡像的更新後的部分所在塊區的前半部分,則新建塊區,所述新建塊區的起始位置為所述重疊部分的終止位置,所述新建塊區的終止位置與所述主鏡像的更新後的部分所在塊區的終止位置相同;若所述重疊部分位於所述主鏡像的更新後的部分所在塊區的後半部分,則新建塊區,所述新建塊區的起始位置與所述主鏡像的更新後的部分所在塊區的起始位置相同,所述新建塊區的終止位置為所述重疊部分的起始位置;若所述重疊部分位於所述主鏡像的更新後的部分所在塊區的中間,則新建第一塊區和第二塊區,所述第一塊區的起始位置與所述主鏡像的更新後的部分所在塊區的起始位置相同,所述第一塊區的終止位置為所述重疊部分的起始位置;所述第二塊區的起始位置為所述重疊部分的終止位置,所述第二塊區的終止位置與所述主鏡像的更新後的部分所在塊區的終止位置相同,從而得到所述子鏡像重劃分後的塊區結構;根據所述差異化文件列表以及所述子鏡像重劃分後的塊區結構,將所述主鏡像的更新後的部分在所述子鏡像中進行文件級的合併、替換或者忽略處理。結合第二方面的第二種可能的實現方式,在第六種可能的實現方式中,所述合併單元具體用於:當所述主鏡像被更新時,根據所述主鏡像更新後的塊區結構以及所述子鏡像更新後的塊區結構,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分對所述子鏡像進行塊區結構的重劃分,得到所述子鏡像重劃分後的塊區結構,所述子鏡像重劃分後的塊區結構為:所述子鏡像未更新的部分為獨立的塊區,所述重疊部分為獨立的塊區,所述子鏡像更新後的部分中除所述重疊部分外的部分為獨立的塊區;確定所述差異化文件列表中的文件中的數據所在的塊區,所述差異化文件列表中的文件中的數據所在的塊區若為所述子鏡像重劃分後的塊區結構中的所述重疊部分所在的塊區,則包括:
若需要將所述重疊部分的主鏡像的更新後的部分和子鏡像的更新後的部分都保留,則將所述重疊部分的主鏡像的更新後的部分合併到所述子鏡像中;若需要將所述重疊部分的主鏡像的更新後的部分保留,則將所述重疊部分的子鏡像的更新後的部分替換為所述重疊部分的主鏡像的更新後的部分;若忽略所述重疊部分的主鏡像的更新後的部分,則不進行處理。第三方面,提供一種桌面雲系統,包括:客戶端,依賴於如前述的伺服器建立的子鏡像,所述子鏡像是由所述伺服器根據主鏡像建立的,並在所述主鏡像被更新升級後,將更新升級後的部分應用於所述客戶端對應的子鏡像中;如前述的伺服器,用於在創建虛擬桌面基礎架構環境時,創建主鏡像,並在主鏡像更新升級後,將更新後的主鏡像與所述客戶端對應的子鏡像重新建立依賴關係。本發明的實施例提供一種虛擬機鏡像的更新方法、伺服器和桌面雲系統,在建立子鏡像後,從伺服器複製主鏡像的塊區結構作為子鏡像的塊區結構,當子鏡像被更新時,將子鏡像中每一塊更新後的部分劃分為一個塊區,當主鏡像被更新時伺服器也將主鏡像中每一塊更新後的部分劃分為一個塊區,並且由伺服器獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分,並根據重疊部分將主鏡像的更新後的部分合併到子鏡像中,從而能夠在主鏡像更新升級後重新建立所述子鏡像和所述主鏡像的依賴關係的同時,保存用戶在客戶端對所述子鏡像所做的更新升級。


為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1為本發明實施例提供的一種虛擬機鏡像的更新方法的流程示意圖;圖2為本發明實施例提供的另一種虛擬機鏡像的更新方法的流程示意圖;圖3為本發明實施例提供的一種主鏡像的更新示意圖;圖4為本發明實施例提供的一種子鏡像的塊區切分示意圖;圖5為本發明實施例提供的一種子鏡像的塊區切分示意圖;圖6為本發明實施例提供的一種子鏡像的塊區切分示意圖;圖7為本發明實施例提供的一種子鏡像的塊區切分示意圖;圖8為本發明實施例提供的一種子鏡像的塊區切分示意圖;圖9為本發明實施例提供的一種子鏡像的塊區切分示意圖;圖10為本發明實施例提供的一種子鏡像的塊區切分示意圖;圖11為本發明實施例提供的一種樹型結構示意圖;圖12為本發明實施例提供的一種伺服器的結構示意圖;圖13為本發明實施例提供的另一種伺服器的結構示意圖;圖14為本發明實施例提供的一種桌面雲系統的組成示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。本發明實施例提供一種虛擬機鏡像的更新方法,應用於物理主機,所述物理主機管理一個主鏡像和至少一個由所述主鏡像生成的子鏡像,所述子鏡像作為與所述子鏡像對應的虛擬機的虛擬磁碟,如圖1所示,所述方法包括:101、在創建虛擬桌面基礎架構環境時,創建主鏡像,並將整個主鏡像劃分為一個塊區。102、建立子鏡像,複製主鏡像的塊區結構作為所述子鏡像的塊區(Block Region,BR)結構。其中,上述主鏡像和子鏡像由所述物理主機進行管理,所述物理主機可以為物理伺服器。103、當所述子鏡像被更新時,將所述子鏡像中每一塊更新後的部分劃分為一個塊區。104、當所述主鏡像被更新時,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分將所述主鏡像的更新後的部分合併到所述子鏡像中。可見,本發明的實施例提供一種虛擬機鏡像的更新方法,在建立子鏡像後,從伺服器複製主鏡像的塊區結構作為子鏡像的塊區結構,當子鏡像被更新時,將子鏡像中每一塊更新後的部分劃分為一個塊區,當主鏡像被更新時伺服器也將主鏡像中每一塊更新後的部分劃分為一個塊區,並且由客戶端獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分,並根據重疊部分將主鏡像的更新後的部分合併到子鏡像中,從而能夠在主鏡像更新升級後重新建立所述子鏡像和所述主鏡像的依賴關係的同時,保存用戶在客戶端對所述子鏡像所做的更新升級。本發明實施例提供另一種虛擬機鏡像的更新方法,如圖2所示,包括:為了使本領域技術人員能夠更清楚地理解本發明實施例提供的技術方案,下面通過具體的實施例,對本發明另一個實施例提供的一種虛擬機鏡像的更新方法進行詳細說明,另外為了說明方便,以下將塊區簡稱為BR。201、建立主鏡像,並將主鏡像整個磁碟空間劃分為一個BR。示例性的,可以通過以下方法實現:如圖3所示,在搭建虛擬桌面基礎架構時,假設新建的主鏡像為MO,將MO劃分為一整個BR,標記為BR1,BRl的起始位置(start)設置為O JfBRl的大小(size)設置為主鏡像的總大小,並將BRl的標誌(flag)設置為P。202、當主鏡像被更新後,將主鏡像中每一塊更新的部分劃分為一個BR。示例性的,假設Ml為更新之後的主鏡像,其塊區結構為一整個BR,即BR1,則「將主鏡像中每一塊更新的部分劃分為一個BR」可以通過以下方法實現:當用戶對主鏡像進行更新產生寫IO時,假設該寫IO的起始位置標記為「first」,終止位置標記為「last」,則按以下步驟切分BR:第一步:判斷主鏡像的BRl與該寫IO所屬位置是否有交集。第二步:當有交集時,根據該寫IO對主鏡像的BRl進行切分。如圖3所示,由於在建立主鏡像時,將主鏡像整個磁碟空間劃分為一整個BR1,因此,用戶對主鏡像進行更新產生的寫IO與主鏡像的這一個BRl存在交集,且該寫IO在這一個BRl的數據範圍內,所以需要對主鏡像的這一個BRl進行切分。當然,在本發明提供的實施例中,在建立主鏡像時將主鏡像整個磁碟空間劃分為一個BR僅僅是示例性的,並不限於此,也可以有其他的劃分方法,在此不一一列舉。第三步:新建一個BR2,用來描述寫IO範圍內的數據,包含起始位置、大小,並將BR2的標記設置為C。其中,BR2的起始位置與寫IO的起始位置「first」位置相同,BR2的終止位置與寫IO的終止位置「last」位置相同,BR2的大小為BR2的終止位置減去BR2的起始位置。第四步:分別新建BR3、BR4,分別用來描述寫IO範圍外且在BRl範圍內的數據,BR3、BR4包含有起始位置、大小,並將BR3、BR4的標記設置為P ;其中,如圖4所示,BR3的起始位置與BRl的起始位置為同一位置,BR3的終止位置與BR2的起始位置為同一位置,BR3的大小為BR3的終止位置減BR3的起始位置,BR4的起始位置與BR2的終止位置為同一位置,BR4的終止位置與BRl的終止位置為同一位置,BR4的大小為BR4的終止位置減BR4的起始位置。第五步:刪除BR1,連接新建的BR2、BR3以及BR4。另外,由於在本發明提供的實施例中,在建立主鏡像時將主鏡像整個磁碟空間劃分為一個BR,因此主鏡像中只有一個BR1,除了 BRl外主鏡像中不存在剩餘的BR,因此這裡只要將BR2和BR3、BR4連接起來即可,但是若主鏡像存在兩個或兩個以上的BR,則在連接新建的BR2、BR3以及BR4之後,還需要將這3個BR與主鏡像中除BRl之外的剩餘BR排序後連接起來。203、當子鏡像建立時,從伺服器複製主鏡像的塊區結構作為子鏡像的塊區結構。具體的,可以通過以下方法實現:當我們需要將建立的主鏡像應用到多臺虛擬機上時,則根據所述主鏡像生成多個應用於虛擬機的子鏡像,每臺虛擬機都存在唯一一個對應的子鏡像,當我們建立子鏡像時,對應主鏡像各個BR的起始位置和大小,依次建立子鏡像自身的塊區結構,所創建的BR的起始位置和各個BR的大小和主鏡像中的BR相同,且所創建的所有BR的起始位置和該BR的大小和主鏡像中的所有BR —一對應。204、當子鏡像被更新後,將子鏡像中每一塊更新後的部分劃分為一個BR。若用戶用過虛擬機對其子鏡像進行了更新,則所述子鏡像更新後的BR劃分過程與主鏡像更新後的BR劃分過程相同,具體的可以參照202中主鏡像更新後的BR劃分過程,這裡不再贅述。205、在子鏡像中根據子鏡像的更新後的部分和主鏡像的更新後的部分對子鏡像的塊區結構進行重新劃分。這裡,對子鏡像的更新後的部分和主鏡像的更新後的部分的合併,即是根據更新後的子鏡像的塊區結構和更新後的主鏡像的塊區結構對子鏡像中的RB的進行重新劃分,從而修正由於子鏡像與主鏡像的更新破壞的子鏡像與主鏡像BR間的依賴關係。在虛擬機對其子鏡像做出更新後,我們需要將主鏡像所作出的更新後的BR以及所述子鏡像更新後的BR進行重劃分,具體的,可以通過以下方法實現:首先,確定主鏡像和所述虛擬機對應的子鏡像中更新後的部分所在BR起始位置和終止位置;而後,根據主鏡像和所述子鏡像中更新後的部分所在BR起始位置和終止位置,獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分。由於,主鏡像的更新後的部分的範圍與子鏡像更新後的部分的範圍可能不同,因此可以根據不同情況進行不同的處理,具體的:一、當主鏡像的更新後的部分所在BR在所述子鏡像的更新後的部分所在BR的範圍內時,將重疊部分從所述子鏡像的更新後的部分所在BR的範圍內移出,並將重疊部分劃分為一個BR,可以通過以下步驟實現:I)若重疊部分位於所述子鏡像的更新後的部分所在BR的前半部分,則將重疊部分的終止位置設置為所述子鏡像的更新後的部分所在BR的新的起始位置,以便將重疊部分從所述子鏡像的更新後的部分所在BR的範圍內移出,並將重疊部分劃分為一個BR ;示例性的,以上塊區合併的過程可如圖4所示,圖中虛線表示對子鏡像Vl的切分:更新後的主鏡像為M1,更新後的所述子鏡像為VI,圖中的陰影部分就是根據主鏡像和所述子鏡像各自的更新後的部分劃分的塊區,虛線表示對Vl的塊區的重新劃分,對於Vl的塊區重劃分過程如下:
將Vl的塊區與Ml的塊區進行--比較,Ml中的BR1』所屬區域包含在Vl的BRl
的區域的前半部分,則在Vl中新建一個塊區BR2,BR2的起始位置與BRl的起始位置相同,BR2的大小與BR1』的大小相同,並將原始BRl的起始位置設置為BR2的終止位置;2)若重疊部分位於所述子鏡像的更新後的部分所在BR的後半部分,則將重疊部分的起始位置設置為所述子鏡像的更新後的部分所在BR的新的終止位置,以便將重疊部分從所述子鏡像的更新後的部分所在BR的範圍內移出,並將重疊部分劃分為一個BR ;示例性的,以上塊區合併的過程可如圖5所示,圖中虛線表示對子鏡像Vl的切分:Ml中的BR3』所屬區域包含在Vl的BR3的區域的後半部分,則保持BR3的起始位置不變,將BR3的大小設置為原BR3的大小減去主鏡像中BR3』的大小,而後在Vl中新建一個塊區BR4,BR4的起始位置設置與主鏡像中BR3』的起始位置相同,其大小與主鏡像中BR3』的大小相同;3)若重疊部分位於所述子鏡像的更新後的部分所在BR的中間,則將重疊部分的起始位置設置為子鏡像的更新後的部分所在BR的新的終止位置,並新建BR,新建BR的起始位置為重疊部分的終止位置,新建塊區的終止位置為所述子鏡像的更新後的部分所在塊區的原終止位置。示例性的,以上塊區合併的過程可如圖6所示,圖中虛線表示對子鏡像Vl的切分:Ml中的BR5』所屬區域處在Vl的BR5的區域的中間部分,則在Vl中新建一個BR6,BR6的起始位置設置為Vl中原BR5的起始位置所在的位置,BR6的大小設置為Ml中BR5』的起始位置減去Vl中原BR5的起始位置後所得出的範圍,在Vl中再新建一個BR7,將其起始位置設置為Ml中BR5』的終止位置所在的位置,其大小設置為Vl中原BR5終止位置減去Ml中BR5』的終止位置後所得的範圍,最後將Vl中BR5的起始設置為BR6的終止所在的位置,其大小設置為與Ml中BR5』的大小相同;二、當所述子鏡像的更新後的部分所在BR在主鏡像的更新後的部分所在BR的範圍內時,則在所述子鏡像上新建BR,使新建BR的範圍加上重疊部分的範圍與主鏡像的更新後的部分所在BR的範圍相同,具體可以通過以下方法實現:I)若重疊部分位於主鏡像的更新後的部分所在BR的前半部分,則新建BR,新建BR的起始位置為重疊部分的終止位置,新建BR的終止位置與主鏡像的更新後的部分所在BR的終止位置相同;示例性的,以上塊區合併的過程可如圖7所示,圖中虛線表示對子鏡像Vl的切分:Vl中的BR8所屬區域處在Ml的BR8』的區域的前半部分,則在Vl中新建一個BR9,BR9的起始位置設置為Vl中BR8的終止位置所在的位置,其大小設置為Ml中BR8』的大小減去Vl中BR8的大小後所得的大小;2)若重疊部分位於主鏡像的更新後的部分所在BR的後半部分,則新建BR,新建BR的起始位置與主鏡像的更新後的部分所在BR的起始位置相同,新建BR的終止位置為重疊部分的起始位置;示例性的,以上塊區合併的過程可如圖8所示,圖中虛線表示對子鏡像Vl的切分:Vl中的BRlO所屬區域處在Ml的BR10』的區域的後半部分,則在Vl中新建一個BRlI,BRlI的起始位置設置為Ml中BR10』的起始位置所在的位置,其大小設置為Vl中BRlO的起始位置減去Ml中的BR10』的起始位置後所得的範圍;3)若重疊部分位於所述子鏡像的更新後的部分所在BR的中間,則新建第一 BR和第二 BR,第一 BR的起始位置與主鏡像的更新後的部分所在BR的起始位置相同,第一 BR的終止位置為重疊部分的起始位置;第二 BR的起始位置為重疊部分的終止位置,第二 BR的終止位置與主鏡像的更新後的部分所在BR的終止位置相同。示例性的,以上塊區合併的過程可如圖9所示,圖中虛線表示對子鏡像Vl的切分:Vl中的BR12所屬區域處在Ml的BR12』的區域的中間部分,則在Vl中新建一個BR13,BR13的起始位置設置為Ml中BR12』的起始位置所在的位置,其大小設置為BR12的起始位置減去BR12』的起始位置後所得的範圍,在Vl中再新建一個BR14,BR14的起始位置設置為BR12的終止位置所在的位置,其大小設置為BR12』的終止位置所在位置減去BR12的終止位置所在位置後所得的範圍;當然,如果出現特殊情況,例如更新後的主鏡像的塊區結構和更新後的所述子鏡像的塊區結構完全相同,即主鏡像的更新後的部分的範圍與所述子鏡像更新後的部分的範圍完全相同,則不需要再對所述子鏡像中的BR進行重新劃分;示例性的,如圖10所示,圖中虛線表示對所述子鏡像Vl的切分:
Vl中的BR15與Ml中的BR15』所在的區域相同,則不對Vl的塊區結構進行重新劃分。206、在子鏡像中對子鏡像的更新後的部分和主鏡像的更新後的部分進行合併。具體的,可以通過以下方法實現:可以在主鏡像的更新升級過程中記錄相對於原主鏡像的新增或者修改的文件,並生成記錄這些文件的差異文件列表(可以稱為diff-file list),該差異文件列表包括文件路徑、文件類型信息。當從原主鏡像生成的用戶虛擬機重新啟動時,將這些改變的文件合併到其子鏡像中,其文件的合併主要採用拷貝的合併方式,可以首先將子鏡像掛載到一個目錄上,而後將這些改變的文件逐一拷貝到子鏡像的相應路徑中,此過程由作業系統中的文件系統來進行管理文件塊的分配。由於在子鏡像中也進行了更新,因此再將主鏡像的更新文件合併到子鏡像時,可以按照以下合併原則進行:若需要將重疊部分的主鏡像的更新後的部分和子鏡像的更新後的部分都保留,則將重疊部分的主鏡像的更新後的部分合併到子鏡像中;若需要將重疊部分的主鏡像的更新後的部分保留,則將重疊部分的子鏡像的更新後的部分替換為重疊部分的主鏡像的更新後的部分;若忽略重疊部分的主鏡像的更新後的部分,則不進行處理。另外,鏡像間的依賴關係是多層的,如圖11所示的樹形結構,子孫鏡像可以基於任何一個父鏡像生成虛擬機,不僅鏡像O的更新會同步到它的子孫鏡像,樹中的任何一個節點的更新都可以更新到其子孫鏡像,以實現子孫鏡像的批量更新。例如,鏡像I的更新可以同步到鏡像3、鏡像4、鏡像6和鏡像7,鏡像4的更新可以同步到鏡像6和鏡像7。因此,本發明實施例提供的方法還能夠實現在更新一臺虛擬機後使該虛擬機的所有子孫虛擬機得到同步更新。可見,本發明的實施例提供一種虛擬機鏡像的更新方法,在建立子鏡像後,從伺服器複製主鏡像的塊區結構作為子鏡像的塊區結構,當子鏡像被更新時,將子鏡像中每一塊更新後的部分劃分為一個塊區,當主鏡像被更新時伺服器也將主鏡像中每一塊更新後的部分劃分為一個塊區,並且由伺服器獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分,並根據重疊部分將主鏡像的更新後的部分合併到子鏡像中,從而能夠在主鏡像更新升級後重新建立所述子鏡像和所述主鏡像的依賴關係的同時,保存用戶在客戶端對所述子鏡像所做的更新升級。本發明實施例提供一種伺服器01,如圖12所示,包括:主鏡像建立單元011,用於在創建虛擬桌面基礎架構環境時,創建主鏡像,並將整個主鏡像劃分為一個塊區;子鏡像建立單元012,用於建立子鏡像,並複製主鏡像建立單元011所創建的主鏡像的塊區結構作為子鏡像的塊區結構;塊區管理單元013,用於在子鏡像建立單元012在創建完成子鏡像後,子鏡像被更新時,將子鏡像中每一塊更新後的部分劃分為一個塊區;合併單元014,用於在主鏡像建立單元011在創建完成主鏡像後,主鏡像被更新時,獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分,並根據重疊部分將主鏡像的更新後的部分合併到子鏡像中。
進一步的,主鏡像建立單元011還用於:當主鏡像被更新時,將主鏡像中每一塊更新的部分劃分為一個塊區,並在更新升級過程中生成差異文件列表,差異文件列表記錄在更新升級過程中記錄在更新升級過程中相對於原主鏡像的新增、刪除或者修改的文件,差異文件列表包括文件路徑、文件類型信
肩、O再進一步的,合併單元014具體用於:當主鏡像被更新時,根據主鏡像更新後的塊區結構以及子鏡像更新後的塊區結構,獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分,並根據重疊部分對子鏡像進行塊區結構的重劃分,得到子鏡像重劃分後的塊區結構,子鏡像重劃分後的塊區結構為:子鏡像未更新的部分為獨立的塊區,重疊部分為獨立的塊區,子鏡像更新後的部分中除重疊部分外的部分為獨立的塊區;根據差異化文件列表以及子鏡像重劃分後的塊區結構,將主鏡像的更新後的部分在子鏡像中進行文件級的合併、替換或者忽略處理。再進一步的,合併單元014具體用於:當主鏡像被更新時,確定主鏡像和子鏡像中更新後的部分所在塊區起始位置和終止位置;根據主鏡像和子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分;當主鏡像的更新後的部分所在塊區在子鏡像的更新後的部分所在塊區的範圍內時,將重疊部分從子鏡像的更新後的部分所在塊區的範圍內移出,並將重疊部分劃分為一個塊區,得到子鏡像重劃分後的塊區結構;當子鏡像的更新後的部分所在塊區在主鏡像的更新後的部分所在塊區的範圍內時,則在子鏡像上新建塊區,使新建塊區的範圍加上重疊部分的範圍與主鏡像的更新後的部分所在塊區的範圍相同,得到子鏡像重劃分後的塊區結構;根據差異化文件列表以及子鏡像重劃分後的塊區結構,將主鏡像的更新後的部分在子鏡像中進行文件級的合併、替換或者忽略處理。又進一步的,合併單元014具體用於:當主鏡像被更新時,確定主鏡像和子鏡像中更新後的部分所在塊區起始位置和終止位置;根據主鏡像和子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分;當主鏡像的更新後的部分所在塊區在子鏡像的更新後的部分所在塊區的範圍內時,若重疊部分位於子鏡像的更新後的部分所在塊區的前半部分,則將重疊部分的終止位置設置為子鏡像的更新後的部分所在塊區的新的起始位置,以便將重疊部分從子鏡像的更新後的部分所在塊區的範圍內移出,並將重疊部分劃分為一個塊區;或若重疊部分位於子鏡像的更新後的部分所在塊區的後半部分,則將重疊部分的起始位置設置為子鏡像的更新後的部分所在塊區的新的終止位置,以便將重疊部分從子鏡像的更新後的部分所在塊區的範圍內移出,並將重疊部分劃分為一個塊區;或若重疊部分位於子鏡像的更新後的部分所在塊區的中間,則將重疊部分的起始位置設置為子鏡像的更新後的部分所在塊區的新的終止位置,並新建塊區,新建塊區的起始位置為重疊部分的終止位置,新建塊區的終止位置子鏡像的更新後的部分所在塊區的原終止位置,以便將重疊部分從子鏡像的更新後的部分所在塊區的範圍內移出,並將重疊部分劃分為一個塊區,從而得到子鏡像重劃分後的塊區結構;當子鏡像的更新後的部分所在塊區在主鏡像的更新後的部分所在塊區的範圍內時,則在子鏡像上新建塊區,使新建塊區的範圍加上重疊部分的範圍與主鏡像的更新後的部分所在塊區的範圍相同,得到子鏡像重劃分後的塊區結構;根據差異化文件列表以及子鏡像重劃分後的塊區結構,將主鏡像的更新後的部分在子鏡像中進行文件級的合併、替換或者忽略處理。更進一步的,合併單元014具體用於:當主鏡像被更新時,確定主鏡像和子鏡像中更新後的部分所在塊區起始位置和終止位置;根據主鏡像和子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分;當主鏡像的更新後的部分所在塊區在子鏡像的更新後的部分所在塊區的範圍內時,將重疊部分從子鏡像的更新後的部分所在塊區的範圍內移出,並將重疊部分劃分為一個塊區,得到子鏡像重劃分後的塊區結構;當子鏡像的更新後的部分所在塊區在主鏡像的更新後的部分所在塊區的範圍內時,若重疊部分位於主鏡像的更新後的部分所在塊區的前半部分,則新建塊區,新建塊區的起始位置為重疊部分的終止位置,新建塊區的終止位置與主鏡像的更新後的部分所在塊區的終止位置相同;若重疊部分位於主鏡像的更新後的部分所在塊區的後半部分,則新建塊區,新建塊區的起始位置與主鏡像的更新後的部分所在塊區的起始位置相同,新建塊區的終止位置為重疊部分的起始位置;若重疊部分位於主鏡像的更新後的部分所在塊區的中間,則新建第一塊區和第二塊區,第一塊區的起始位置與主鏡像的更新後的部分所在塊區的起始位置相同,第一塊區的終止位置為重疊部分的起始位置;第二塊區的起始位置為重疊部分的終止位置,第二塊區的終止位置與主鏡像的更新後的部分所在塊區的終止位置相同,從而得到子鏡像重劃分後的塊區結構;根據差異化文件列表以及子鏡像重劃分後的塊區結構,將主鏡像的更新後的部分在子鏡像中進行文件級的合併、替換或者忽略處理。再進一步的,在將主鏡像的更新後的部分在子鏡像中進行文件級的合併、替換或者忽略處理時,合併單元014具體用於:當主鏡像被更新時,根據主鏡像更新後的塊區結構以及子鏡像更新後的塊區結構,獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分,並根據重疊部分對子鏡像進行塊區結構的重劃分,得到子鏡像重劃分後的塊區結構,子鏡像重劃分後的塊區結構為:子鏡像未更新的部分為獨立的塊區,重疊部分為獨立的塊區,子鏡像更新後的部分中除重疊部分外的部分為獨立的塊區;確定差異化文件列表中的文件中的數據所在的塊區,差異化文件列表中的文件中的數據所在的塊區若為子鏡像重劃分後的塊區結構中的重疊部分所在的塊區,則包括:若需要將重疊部分的主鏡像的更新後的部分和子鏡像的更新後的部分都保留,則將重疊部分的主鏡像的更新後的部分合併到子鏡像中;若需要將重疊部分的主鏡像的更新後的部分保留,則將重疊部分的子鏡像的更新後的部分替換為重疊部分的主鏡像的更新後的部分;若忽略重疊部分的主鏡像的更新後的部分,則不進行處理。可見,本發明的實施例提供一種伺服器,在建立子鏡像後,從伺服器複製主鏡像的塊區結構作為子鏡像的塊區結構,當子鏡像被更新時,將子鏡像中每一塊更新後的部分劃分為一個塊區,當主鏡像被更新時伺服器也將主鏡像中每一塊更新後的部分劃分為一個塊區,並且由伺服器獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分,並根據重疊部分將主鏡像的更新後的部分合併到子鏡像中,從而能夠在主鏡像更新升級後重新建立子鏡像和主鏡像的依賴關係的同時,保存用戶在客戶端對子鏡像所做的更新升級。本發明實施例還提供另一種伺服器02,如圖13所示,伺服器02總線024 ;以及連接到總線024上的接口 021、存儲器022、以及處理器023,其中存儲器022用於存儲指令,該處理器023用於執行該指令用於:通過接口 021在創建虛擬桌面基礎架構環境時,創建主鏡像,並將整個主鏡像劃分為一個塊區;通過接口 021基於主鏡像創建子鏡像時,複製主鏡像的塊區結構作為子鏡像的塊區結構;通過接口 021在當子鏡像被更新時,將子鏡像中每一塊更新後的部分劃分為一個塊區;通過接口 021在當主鏡像被更新時,獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分,並根據重疊部分將主鏡像的更新後的部分合併到子鏡像中。可選的,處理器023還可以用於執行該指令用於:當主鏡像被更新時,將主鏡像中每一塊更新的部分劃分為一個塊區,並在更新升級過程中生成差異文件列表,差異文件列表記錄在更新升級過程中記錄在更新升級過程中相對於原主鏡像的新增、刪除或者修改的文件,差異文件列表包括文件路徑、文件類型信
肩、O可選的,處理器023還可以用於執行該指令用於:當主鏡像被更新時,根據主鏡像更新後的塊區結構以及子鏡像更新後的塊區結構,獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分,並根據重疊部分對子鏡像進行塊區結構的重劃分,得到子鏡像重劃分後的塊區結構,子鏡像重劃分後的塊區結構為:子鏡像未更新的部分為獨立的塊區,重疊部分為獨立的塊區,子鏡像更新後的部分中除重疊部分外的部分為獨立的塊區;根據差異化文件列表以及子鏡像重劃分後的塊區結構,將主鏡像的更新後的部分在子鏡像中進行文件級的合併、替換或者忽略處理。可選的,處理器023還可以用於執行該指令用於:
當主鏡像被更新時,確定主鏡像和子鏡像中更新後的部分所在塊區起始位置和終止位置;根據主鏡像和子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分;當主鏡像的更新後的部分所在塊區在子鏡像的更新後的部分所在塊區的範圍內時,將重疊部分從子鏡像的更新後的部分所在塊區的範圍內移出,並將重疊部分劃分為一個塊區,得到子鏡像重劃分後的塊區結構;當子鏡像的更新後的部分所在塊區在主鏡像的更新後的部分所在塊區的範圍內時,則在子鏡像上新建塊區,使新建塊區的範圍加上重疊部分的範圍與主鏡像的更新後的部分所在塊區的範圍相同,得到子鏡像重劃分後的塊區結構;根據差異化文件列表以及子鏡像重劃分後的塊區結構,將主鏡像的更新後的部分在子鏡像中進行文件級的合併、替換或者忽略處理。可選的,處理器023還可以用於執行該指令用於:當主鏡像被更新時,確定主鏡像和子鏡像中更新後的部分所在塊區起始位置和終止位置;根據主鏡像和子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分;當主鏡像的更新後的部分所在塊區在子鏡像的更新後的部分所在塊區的範圍內時,若重疊部分位於子鏡像的更新後的部分所在塊區的前半部分,則將重疊部分的終止位置設置為子鏡像的更新後的部分所在塊區的新的起始位置,以便將重疊部分從子鏡像的更新後的部分所在塊區的範圍內移出,並將重疊部分劃分為一個塊區;或若重疊部分位於子鏡像的更新後的部分所在塊區的後半部分,則將重疊部分的起始位置設置為子鏡像的更新後的部分所在塊區的新的終止位置,以便將重疊部分從子鏡像的更新後的部分所在塊區的範圍內移出,並將重疊部分劃分為一個塊區;或若重疊部分位於子鏡像的更新後的部分所在塊區的中間,則將重疊部分的起始位置設置為子鏡像的更新後的部分所在塊區的新的終止位置,並新建塊區,新建塊區的起始位置為重疊部分的終止位置,新建塊區的終止位置子鏡像的更新後的部分所在塊區的原終止位置,以便將重疊部分從子鏡像的更新後的部分所在塊區的範圍內移出,並將重疊部分劃分為一個塊區,從而得到子鏡像重劃分後的塊區結構;當子鏡像的更新後的部分所在塊區在主鏡像的更新後的部分所在塊區的範圍內時,則在子鏡像上新建塊區,使新建塊區的範圍加上重疊部分的範圍與主鏡像的更新後的部分所在塊區的範圍相同,得到子鏡像重劃分後的塊區結構;根據差異化文件列表以及子鏡像重劃分後的塊區結構,將主鏡像的更新後的部分在子鏡像中進行文件級的合併、替換或者忽略處理。可選的,處理器023還可以用於執行該指令用於:當主鏡像被更新時,確定主鏡像和子鏡像中更新後的部分所在塊區起始位置和終止位置;根據主鏡像和子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分;
當主鏡像的更新後的部分所在塊區在子鏡像的更新後的部分所在塊區的範圍內時,將重疊部分從子鏡像的更新後的部分所在塊區的範圍內移出,並將重疊部分劃分為一個塊區,得到子鏡像重劃分後的塊區結構;當子鏡像的更新後的部分所在塊區在主鏡像的更新後的部分所在塊區的範圍內時,若重疊部分位於主鏡像的更新後的部分所在塊區的前半部分,則新建塊區,新建塊區的起始位置為重疊部分的終止位置,新建塊區的終止位置與主鏡像的更新後的部分所在塊區的終止位置相同;若重疊部分位於主鏡像的更新後的部分所在塊區的後半部分,則新建塊區,新建塊區的起始位置與主鏡像的更新後的部分所在塊區的起始位置相同,新建塊區的終止位置為重疊部分的起始位置;若重疊部分位於主鏡像的更新後的部分所在塊區的中間,則新建第一塊區和第二塊區,第一塊區的起始位置與主鏡像的更新後的部分所在塊區的起始位置相同,第一塊區的終止位置為重疊部分的起始位置;第二塊區的起始位置為重疊部分的終止位置,第二塊區的終止位置與主鏡像的更新後的部分所在塊區的終止位置相同,從而得到子鏡像重劃分後的塊區結構;根據差異化文件列表以及子鏡像重劃分後的塊區結構,將主鏡像的更新後的部分在子鏡像中進行文件級的合併、替換或者忽略處理。可選的,在將主鏡像的更新後的部分在子鏡像中進行文件級的合併、替換或者忽略處理時,處理器023還可以用於執行該指令用於:當主鏡像被更新時,根據主鏡像更新後的塊區結構以及子鏡像更新後的塊區結構,獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分,並根據重疊部分對子鏡像進行塊區結構的重劃分,得到子鏡像重劃分後的塊區結構,子鏡像重劃分後的塊區結構為:子鏡像未更新的部分為獨立的塊區,重疊部分為獨立的塊區,子鏡像更新後的部分中除重疊部分外的部分為獨立的塊區;確定差異化文件列表中的文件中的數據所在的塊區,差異化文件列表中的文件中的數據所在的塊區若為子鏡像重劃分後的塊區結構中的重疊部分所在的塊區,則包括:若需要將重疊部分的主鏡像的更新後的部分和子鏡像的更新後的部分都保留,則將重疊部分的主鏡像的更新後的部分合併到子鏡像中;若需要將重疊部分的主鏡像的更新後的部分保留,則將重疊部分的子鏡像的更新後的部分替換為重疊部分的主鏡像的更新後的部分;若忽略重疊部分的主鏡像的更新後的部分,則不進行處理。本發明的實施例提供一種伺服器,在建立子鏡像後,從伺服器複製主鏡像的塊區結構作為子鏡像的塊區結構,當子鏡像被更新時,將子鏡像中每一塊更新後的部分劃分為一個塊區,當主鏡像被更新時伺服器也將主鏡像中每一塊更新後的部分劃分為一個塊區,並且由伺服器獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分,並根據重疊部分將主鏡像的更新後的部分合併到子鏡像中,從而能夠在主鏡像更新升級後重新建立子鏡像和主鏡像的依賴關係的同時,保存用戶在客戶端對子鏡像所做的更新升級。本發明另一實施例提供一種桌面雲系統03,包括客戶端031以及伺服器02,如圖14所示:客戶端031,用於依賴於伺服器02創建的子鏡像,子鏡像是由伺服器02根據主鏡像建立的,並在主鏡像被更新升級後,將更新升級後的部分應用於客戶端對應的子鏡像中。伺服器02,用於在創建虛擬桌面基礎架構環境時,創建主鏡像,並在主鏡像更新升級後,將更新後的主鏡像與客戶端031對應的子鏡像重新建立依賴關係。本發明的實施例提供一種桌面雲系統,在建立子鏡像後,從伺服器複製主鏡像的塊區結構作為子鏡像的塊區結構,當子鏡像被更新時,將子鏡像中每一塊更新後的部分劃分為一個塊區,當主鏡像被更新時伺服器也將主鏡像中每一塊更新後的部分劃分為一個塊區,並且由伺服器獲取主鏡像的更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分,並根據重疊部分將主鏡像的更新後的部分合併到子鏡像中,從而能夠在主鏡像更新升級後重新建立子鏡像和主鏡像的依賴關係的同時,保存用戶在客戶端對子鏡像所做的更新升級。在本申請所提供的幾個實施例中,應該理解到,所揭露的方法、裝置和系統,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理包括,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用硬體加軟體功能單元的形式實現。上述以軟體功能單元的形式實現的集成的單元,可以存儲在一個計算機可讀取存儲介質中。上述軟體功能單元存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例所述方法的部分步驟。而前述的存儲介質包括:U盤、移動硬碟、只讀存儲器(Read-Only Memory,簡稱ROM)、隨機存取存儲器(Random Access Memory,簡稱RAM)、磁碟或者光碟等各種可以存儲程序代碼的介質。以上所述,僅為本發明的具體實施方式
,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應以所述權利要求的保護範圍為準。
權利要求
1.一種虛擬機鏡像的更新方法,其特徵在於,應用於物理主機,所述物理主機管理一個主鏡像和至少一個由所述主鏡像生成的子鏡像,所述子鏡像作為與所述子鏡像對應的虛擬機的虛擬磁碟,包括: 在創建虛擬桌面基礎架構環境時,創建主鏡像,並將整個主鏡像劃分為一個塊區; 基於所述主鏡像創建子鏡像時,複製主鏡像的塊區結構作為所述子鏡像的塊區結構; 當所述子鏡像被更新時,將所述子鏡像中每一塊更新後的部分劃分為一個塊區; 當所述主鏡像被更新時,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分將所述主鏡像的更新後的部分合併到所述子鏡像中。
2.根據權利要求1所 述的方法,其特徵在於,在所述複製主鏡像的塊區結構作為所述子鏡像的塊區結構之前,還包括: 當所述主鏡像被更新時,將所述主鏡像中每一塊更新的部分劃分為一個塊區,並在更新升級過程中生成差異文件列表,所述差異文件列表記錄在更新升級過程中記錄在更新升級過程中相對於原主鏡像的新增、刪除或者修改的文件,所述差異文件列表包括文件路徑、文件類型信息。
3.根據權利要求1或2所述的方法,其特徵在於,所述獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分將所述主鏡像的更新後的部分合併到所述子鏡像中,包括: 根據所述主鏡像更新後的塊區結構以及所述子鏡像更新後的塊區結構,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分對所述子鏡像進行塊區結構的重劃分,得到所述子鏡像重劃分後的塊區結構,所述子鏡像重劃分後的塊區結構為:所述子鏡像未更新的部分為獨立的塊區,所述重疊部分為獨立的塊區,所述子鏡像更新後的部分中除所述重疊部分外的部分為獨立的塊區; 根據所述差異化文件列表以及所述子鏡像重劃分後的塊區結構,將所述主鏡像的更新後的部分在所述子鏡像中進行文件級的合併、替換或者忽略處理。
4.根據權利要求3所述的方法,其特徵在於,所述根據所述主鏡像更新後的塊區結構以及所述子鏡像更新後的塊區結構,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分對所述子鏡像進行塊區結構的重劃分包括: 確定所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置; 根據所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分;當所述主鏡像的更新後的部分所在塊區在所述子鏡像的更新後的部分所在塊區的範圍內時,將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區,得到所述子鏡像重劃分後的塊區結構; 當所述子鏡像的更新後的部分所在塊區在所述主鏡像的更新後的部分所在塊區的範圍內時,則在所述子鏡像上新建塊區,使所述新建塊區的範圍加上所述重疊部分的範圍與所述主鏡像的更新後的部分所在塊區的範圍相同,得到所述子鏡像重劃分後的塊區結構。
5.根據權利要求4所述的方法,其特徵在於,所述當所述主鏡像的更新後的部分所在塊區在所述子鏡像的更新後的部分所在塊區的範圍內時,將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區包括: 若所述重疊部分位於所述子鏡像的更新後的部分所在塊區的前半部分,則將所述重疊部分的終止位置設置為所述子鏡像的更新後的部分所在塊區的新的起始位置,以便將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區;或 若所述重疊部分位於所述子鏡像的更新後的部分所在塊區的後半部分,則將所述重疊部分的起始位置設置為所述子鏡像的更新後的部分所在塊區的新的終止位置,以便將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區;或 若所述重疊部分位於所述子鏡像的更新後的部分所在塊區的中間,則將所述重疊部分的起始位置設置為所述子鏡像的更新後的部分所在塊區的新的終止位置,並新建塊區,所述新建塊區的起始位置為所述重疊部分的終止位置,所述新建塊區的終止位置所述子鏡像的更新後的部分所在塊區的原終止位置,以便將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區。
6.根據權利要求4所述的方法,其特徵在於,所述當所述子鏡像的更新後的部分所在塊區在所述主鏡像的更新後的部分所在塊區的範圍內時,則在所述子鏡像上新建塊區,使所述新建塊區的範圍加上所述重疊部分的範圍與所述主鏡像的更新後的部分所在塊區的範圍相同包括: 若重疊部分位於主鏡像的更新後的部分所在塊區的前半部分,則新建塊區,新建塊區的起始位置為重疊部分的終止位置,新建塊區的終止位置與主鏡像的更新後的部分所在塊區的終止位置相同; 若所述重疊部分位於所述主鏡像的更新後的部分所在塊區的後半部分,則新建塊區,所述新建塊區的起始位置與所述主鏡像的更新後的部分所在塊區的起始位置相同,所述新建塊區的終止位置為所述重疊部分的起始位置; 若所述重疊部分位於所述主鏡像的更新後的部分所在塊區的中間,則新建第一塊區和第二塊區,所述第一塊區的起始位置與所述主鏡像的更新後的部分所在塊區的起始位置相同,所述第一塊區的終止位置為所述重疊部分的起始位置;所述第二塊區的起始位置為所述重疊部分的終止位置,所述第二塊區的終止位置與所述主鏡像的更新後的部分所在塊區的終止位置相同。
7.根據權利要求3所述的方法,其特徵在於,所述根據所述差異化文件列表以及所述子鏡像重劃分後的塊區結構,將所述主鏡像的更新後的部分在所述子鏡像中進行文件級的合併、替換或者忽略處理包括: 確定所述差異化文件列表中的文件中的數據所在的塊區,所述差異化文件列表中的文件中的數據所在的塊區若為所述子鏡像重劃分後的塊區結構中的所述重疊部分所在的塊區,則包括: 若需要將所述重疊部分的主鏡像的更新後的部分和子鏡像的更新後的部分都保留,則將所述重疊部分的主鏡像的更新後的部分合併到所述子鏡像中; 若需要將所述重疊部分的主鏡像的更新後的部分保留,則將所述重疊部分的子鏡像的更新後的部分替換為所述重疊部分的主鏡像的更新後的部分; 若忽略所述重疊部分的主鏡像的更新後的部分,則不進行處理。
8.一種伺服器,其特徵在於,包括: 主鏡像建立單元,用於在創建虛擬桌面基礎架構環境時,創建主鏡像,並將整個主鏡像劃分為一個塊區; 子鏡像建立單元,用於建立子鏡像,並複製所述主鏡像建立單元所創建的主鏡像的塊區結構作為所述子鏡像的塊區結構; 塊區管理單元,用於在所述子鏡像建立單元在創建完成所述子鏡像後,當所述子鏡像被更新時,將所述子鏡像中每一塊更新後的部分劃分為一個塊區; 合併單元,用於在所述主鏡像建立單元在創建完成所述主鏡像後,當所述主鏡像被更新時,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分將所述主鏡像的更新後的部分合併到所述子鏡像中。
9.根據權利要求8所述的伺服器,其特徵在於,所述主鏡像建立單元還用於: 當所述主鏡像被更新時,將所述主鏡像中每一塊更新的部分劃分為一個塊區,並在更新升級過程中生成差異文件列表,所述差異文件列表記錄在更新升級過程中記錄在更新升級過程中相對於原主鏡像的新增、刪除或者修改的文件,所述差異文件列表包括文件路徑、文件類型信息。
10.根據權利要求8或9所述伺服器,其特徵在於,所述合併單元具體用於: 當所述主鏡像被更新時,根據所述主鏡像更新後的塊區結構以及所述子鏡像更新後的塊區結構,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分對所述子鏡像進行塊區結構的重劃分,得到所述子鏡像重劃分後的塊區結構,所述子鏡像重劃分後的塊區結構為:所述子鏡像未更新的部分為獨立的塊區,所述重疊部分為獨立的塊區,所述子鏡像更新後的部分中除所述重疊部分外的部分為獨立的塊區; 根據所述差異化文件列表以及所述子鏡像重劃分後的塊區結構,將所述主鏡像的更新後的部分在所述子鏡像中進行文件級的合併、替換或者忽略處理。
11.根據權利要求10所述伺服器,其特徵在於,所述合併單元具體用於: 當所述主鏡像被更新時,確定所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置; 根據所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分; 當所述主鏡像的更新後的部分所在塊區在所述子鏡像的更新後的部分所在塊區的範圍內時,將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區,得到所述子鏡像重劃分後的塊區結構; 當所述子鏡像的更新後的部分所在塊區在所述主鏡像的更新後的部分所在塊區的範圍內時,則在所述子鏡像上新建塊區,使所述新建塊區的範圍加上所述重疊部分的範圍與所述主鏡像的更新後的部分所在塊區的範圍相同,得到所述子鏡像重劃分後的塊區結構; 根據所述差異化文件列表以及所述子鏡像重劃分後的塊區結構,將所述主鏡像的更新後的部分在所述子鏡像中進行文件級的合併、替換或者忽略處理。
12.根據權利要求11所述伺服器,其特徵在於,所述合併單元具體用於: 當所述主鏡像被更新時,確定所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置; 根據所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分; 當所述主鏡像的更新後的部分所在塊區在所述子鏡像的更新後的部分所在塊區的範圍內時,若所述重疊部分位於所述子鏡像的更新後的部分所在塊區的前半部分,則將所述重疊部分的終止位置設置為所述子鏡像的更新後的部分所在塊區的新的起始位置,以便將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區;或 若所述重疊部分位於所述子鏡像的更新後的部分所在塊區的後半部分,則將所述重疊部分的起始位置設置為所述子鏡像的更新後的部分所在塊區的新的終止位置,以便將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區;或 若所述重疊部分位於所述子鏡像的更新後的部分所在塊區的中間,則將所述重疊部分的起始位置設置為所述子鏡像的更新後的部分所在塊區的新的終止位置,並新建塊區,所述新建塊區的起始位置為所述重疊部分的終止位置,所述新建塊區的終止位置所述子鏡像的更新後的部分所在塊區的原終止位置,以便將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區,得到所述子鏡像重劃分後的塊區結構; 當所述子鏡像的更新後的部分所在塊區在所述主鏡像的更新後的部分所在塊區的範圍內時,則在所述子鏡像上新建塊區,使所述新建塊區的範圍加上所述重疊部分的範圍與所述主鏡像的更新後的部分所在塊區的範圍相同,得到所述子鏡像重劃分後的塊區結構; 根據所述差異化文件列表以及所述子鏡像重劃分後的塊區結構,將所述主鏡像的更新後的部分在所述子鏡像中進行文件級的合併、替換或者忽略處理。
13.根據權利要求11所述伺服器,其特徵在於,所述合併單元具體用於: 當所述主鏡像被更新時,確定所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置; 根據所述主鏡像和所述子鏡像中更新後的部分所在塊區起始位置和終止位置,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分; 當所述主鏡像的更新後的部分所在塊區在所述子鏡像的更新後的部分所在塊區的範圍內時,將所述重疊部分從所述子鏡像的更新後的部分所在塊區的範圍內移出,並將所述重疊部分劃分為一個塊區,得到所述子鏡像重劃分後的塊區結構; 當所述子鏡像的更新後的部分所在塊區在所述主鏡像的更新後的部分所在塊區的範圍內時,若所述重疊部分位於所述主鏡像的更新後的部分所在塊區的前半部分,則新建塊區,所述新建塊區的起始位置為所述重疊部分的終止位置,所述新建塊區的終止位置與所述主鏡像的更新後的部分所在塊區的終止位置相同; 若所述重疊部分位於所述主鏡像的更新後的部分所在塊區的後半部分,則新建塊區,所述新建塊區的起始位置與所述主鏡像的更新後的部分所在塊區的起始位置相同,所述新建塊區的終止位置為所述重疊部分的起始位置; 若所述重疊部分位於所述主鏡像的更新後的部分所在塊區的中間,則新建第一塊區和第二塊區,所述第一塊區的起始位置與所述主鏡像的更新後的部分所在塊區的起始位置相同,所述第一塊區的終止位置為所述重疊部分的起始位置;所述第二塊區的起始位置為所述重疊部分的終止位置,所述第二塊區的終止位置與所述主鏡像的更新後的部分所在塊區的終止位置相同,從而得到所述子鏡像重劃分後的塊區結構; 根據所述差異化文件列表以及所述子鏡像重劃分後的塊區結構,將所述主鏡像的更新後的部分在所述子鏡像中進行文件級的合併、替換或者忽略處理。
14.根據權利要求10所述伺服器,其特徵在於,所述合併單元具體用於: 當所述主鏡像被更新時,根據所述主鏡像更新後的塊區結構以及所述子鏡像更新後的塊區結構,獲取所述主鏡像的更新後的部分所在塊區與所述子鏡像更新後的部分所在塊區的重疊部分,並根據所述重疊部分對所述子鏡像進行塊區結構的重劃分,得到所述子鏡像重劃分後的塊區結構,所述子鏡像重劃分後的塊區結構為:所述子鏡像未更新的部分為獨立的塊區,所述重疊部分為獨立的塊區,所述子鏡像更新後的部分中除所述重疊部分外的部分為獨立的塊區; 確定所述差異化文件列表中的文件中的數據所在的塊區,所述差異化文件列表中的文件中的數據所在的塊區若為所述子鏡像重劃分後的塊區結構中的所述重疊部分所在的塊區,則包括: 若需要將所述重疊部分的主鏡像的更新後的部分和子鏡像的更新後的部分都保留,則將所述重疊部分的主鏡像的更新後的部分合併到所述子鏡像中; 若需要將所述重疊部分的主鏡像的更新後的部分保留,則將所述重疊部分的子鏡像的更新後的部分替換為所述重疊部分的主鏡像的更新後的部分; 若忽略所述重疊部分的主鏡像的更新後的部分,則不進行處理。
15.—種桌面雲系統,其特徵在於,包括: 客戶端,依賴於如權利要求8至14所述的伺服器建立的子鏡像,所述子鏡像是由所述伺服器根據主鏡像建立的,並在所述主鏡像被更新升級後,將更新升級後的部分應用於所述客戶端對應的子鏡像中; 如權利要求8至14所述的伺服器,用於在創建虛擬桌面基礎架構環境時,創建主鏡像,並在主鏡像更新升級後,將更新後的主鏡像與所述客戶端對應的子鏡像重新建立依賴關係O
全文摘要
本發明提供一種虛擬機鏡像的更新方法、伺服器和桌面雲系統,涉及計算機領域,能夠建立主鏡像和子鏡像更新升級後的依賴關係,實現主鏡像和子鏡像的平滑升級。其方法為主鏡像建立後,將整個主鏡像劃分為一個塊區,主鏡像更新後,將每一塊更新後的部分劃分為一個塊區,而後子鏡像建立時從伺服器複製主鏡像的塊區結構作為所述子鏡像的塊區結構,子鏡像更新後將每一塊更新後的部分劃分為一個塊區,主鏡像升級時,由伺服器獲取主鏡像更新後的部分所在塊區與子鏡像更新後的部分所在塊區的重疊部分,並根據重疊部分將主鏡像更新後的部分合併到子鏡像中。本發明的實施例用於建立主鏡像和子鏡像更新升級後的依賴關係,實現主鏡像和子鏡像的平滑升級。
文檔編號H04L29/08GK103218248SQ20131009860
公開日2013年7月24日 申請日期2013年3月25日 優先權日2013年3月25日
發明者陳克平, 王婷, 秦嶺 申請人:華為技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀