專利名稱:虛擬機遷移方法與云端伺服系統的制作方法
技術領域:
本發明涉及一種虛擬機的應用,且特別涉及一種虛擬機遷移方法與云端伺服系統。
背景技術:
伺服器具有較高的運算能力,因而為網絡系統中服務各計算機的核心計算機。而隨著云端運算(cloud computing)與虛擬機(virtual machine)的蓬勃發展,通過網絡由多部服務器分別進行數個運算處理,并具有易于擴充、能快速部署資源以提供服務,以及可以降低使用者終端的運算負擔等優勢的云端伺服系統也越來越受到重視。云端伺服系統中的每一節點可通過超級管理器(hypervisor)的運作而模擬一個以上的虛擬機。換句話說,除了主體操作系統(host operating system)之外,對應各虛擬機的客體操作系統(guest operating system)也可在同一套硬設備中同時執行。然而對目前大多數提供基礎設施即服務(Infrastructure as a Service, IaaS)的云端伺服系統來說,其貨柜(container)中每一節點都是運行同一種類型的超級管理器。基此,當用戶需將既有的虛擬機從正在使用的超級管理器遷移到一云端伺服系統時,若該云端伺服系統不支持相同類型的超級管理器,則必須花費額外的時間轉換客體操作系統的映像文件格式,且必須由遷移至之節點自行對模擬虛擬機所須參照的組態文件進行設定,如此才能完成虛擬機的遷移。然而,自行設定組態文件很可能造成客體操作系統的遷移失敗,且在節點上重新建立虛擬機并執行客體操作系統與其上軟件也必須耗費許多時間來進行測試,對用戶來說容易感到不便,且會降低用戶使用此云端伺服系統的意愿。
發明內容
本發明提供一種虛擬機遷移方法與云端伺服系統,能選擇適當的節點來完成虛擬機的遷移,以降低遷移虛擬機所需耗費的時間。本發明提出一種虛擬機遷移方法,用于云端伺服系統,此云端伺服系統包括一貨柜,貨柜包括服務節點、儲存節點以及數個計算節點;此方法包括由服務節點將所有計算節點劃分為至少一計算節點群組,其中至少一計算節點群組系一對一對應至一種特定超級管理器類型;接著由服務節點接收對應于既有的一虛擬機(virtual machine)的一映像文件(image file)與一組態文件(configuration file),并將映像文件與組態文件存入儲存節點,且依據映像文件識別模擬此虛擬機的超級管理器的類型;判斷在至少一特定超級管理器類型中是否存在與模擬此虛擬機的超級管理器相同的類型;若是,則從對應這種特定超級管理器類型的計算節點群組中選擇一特定計算節點,并由特定計算節點根據映像文件與組態文件模擬虛擬機。在本發明的一實施例中,其中依據映像文件識別模擬虛擬機的超級管理器的類型的步驟包括根據映像文件的文件頭(header)的內容以識別此超級管理器的類型。在本發明的一實施例中,此虛擬機遷移方法更包括若無法根據文件頭的內容識別出超級管理器的類型,則分析組態文件的內容以識別超級管理器的類型。在本發明的一實施例中,其中判斷在所有特定超級管理器類型中是否存在與模擬此虛擬機的超級管理器相同的類型的步驟之后,此方法還包括若不存在與此超級管理器相同的特定超級管理器類型,則從至少一計算節點群組中選出一特定計算節點群組,并根據特定計算節點群組對應的特定超級管理器類型,分別產生映像文件及組態文件的一等價映像文件與一等價組態文件;并且在特定計算節點群組中選擇特定計算節點,以及由此特定計算節點根據等價映像文件與等價組態文件來模擬虛擬機。在本發明的一實施例中,其中對應于虛擬機的映像文件與組態文件是第二云端伺服系統通過公共網絡(public network)傳送至云端伺服系統。另一方面,本發明提出一種云端伺服系統,包括一貨柜,此貨柜包括多個計算節點與一服務節點、一儲存節點;儲存節點通過局域網絡稱接上述計算節點;服務節點通過局域網絡耦接上述計算節點與儲存節點,并將上述計算節點劃分為至少一計算節點群組,其中至少一計算節點群組分別對應一種特定超級管理器類型;服務節點接收對應于一虛擬機的映像文件與組態文件,將映像文件與組態文件存入儲存節點,依據映像文件識別模擬此虛擬機的超級管理器的類型,并判斷在至少一特定超級管理器類型中是否存在與此超級管理器類型相同的特定超級管理器類型;若是,服務節點從對應此特定超級管理器類型的計算節點群組中選擇一特定計算節點,再由特定計算節點根據映像文件與組態文件模擬虛擬機。在本發明的一實施例中,其中服務節點根據映像文件的文件頭的內容以識別模擬虛擬機的超級管理器的類型。在本發明的一實施例中,其中若服務節點無法根據文件頭的內容識別出模擬虛擬機的超級管理器的類型,則分析組態文件的內容以識別超級管理器的類型。在本發明的一實施例中,其中若在至少一特定超級管理器類型中不存在與超級管理器類型相同的特定超級管理器類型,則服務節點從至少一計算節點群組中選出一特定計算節點群組,并根據特定計算節點群組對應的特定超級管理器類型分別產生映像文件及組態文件的等價映像文件與等價組態文件,以及在特定計算節點群組中選擇一特定計算節點,并由特定計算節點根據等價映像文件與等價組態文件模擬虛擬機。在本發明的一實施例中,其中對應于虛擬機的映像文件與組態文件是第二云端伺服系統透過公共網絡傳送至云端伺服系統。基于上述,本發明的云端伺服系統的貨柜中包含運行不同類型的超級管理器的計算節點。當有虛擬機要遷移至此云端伺服系統時,首先識別原執行此虛擬機的超級管理器類型,據以在貨柜中找尋適當的計算節點來完成虛擬機的遷移動作。如此一來,藉由提供運行有相同類型的超級管理器的計算節點來提升遷移虛擬機的效率與質量。為讓本發明的上述特征和優點能更明顯易懂,下文特舉實施例,并配合附圖作詳細說明如下。
圖1是依照本發明的一實施例所示的云端伺服系統的示意圖。圖2是依照本發明的一實施例所示的遷移虛擬機的示意圖。
圖3是依照本發明的一實施例所示的虛擬機遷移方法的流程圖。
具體實施例方式圖1是依照本發明的一實施例所示的云端伺服系統的示意圖。請參閱圖1,本實施例的云端伺服系統100例如是提供基礎設施即服務(Infrastructure as a Service, IaaS)的貨柜式數據中心(Data Center),其包括一或多個貨柜(container)。以貨柜10為例,其具有η個機架(rack) 201至20η (η為正整數),且每一機架中具有多個插槽(slot)。舉例來說,機架201具有i個插槽(即,插槽Sh至S1J,而機架20η具有j個插槽(即,插槽Slri至Sn_j),其中1、j為正整數。每個插槽包括多個節點,例如機架201中的插槽Sm包括節點N110與節點Nm。每一節點設置有一電子裝置,電子裝置包括中央處理器以及微控制器等實體硬設備。此外,在貨柜10中設置有交換機(switch) 30,交換機30與各個節點中所設置的電子裝置耦接,進而在貨柜10形成一局域網絡。以下將以圖2及圖3來說明本發明的虛擬機遷移方法的詳細做法。首先請參閱圖
2,云端伺服系統100與200可通過公共網絡(public network) 220進行數據的傳送。在本實施例中,云端伺服系統100與200例如是由不同的供貨商(vendor)所提供,但本發明并不以此為限。其中,云端伺服系統200的貨柜210內的一計算節點210a運行有一超級管理器(hypervisor) 27。超級管理器27根據記錄在組態文件(configuration file)中關于各種虛擬硬件、虛擬韌體以及虛擬開機裝置的設定信息來仿真一虛擬機25。進一步來說,超級管理器27會模擬虛擬機25以供客體操作系統23運作。而云端伺服系統100的貨柜10中的所有節點均連接至由交換機30形成的局域網絡130,且上述節點依其功能被劃分為服務資源池(service resource pool) 110、儲存資源池(storage resource pool) 120,以及計算資源池(computing resource pool) 140。其中,屬于服務資源池的節點稱為服務節點,其可提供如實體安裝、記錄管理,或數據庫等各種服務。特別是,本實施例的服務節點可用以將執行于其他云端伺服系統的貨柜的虛擬機遷移至貨柜10。屬于計算資源池的節點稱為計算節點,其負責各種運算工作以產生提供給使用者終端的處理結果。而屬于儲存資源池的節點稱為儲存節點,用以負責數據的備份或復制等工作及用以儲存虛擬機的映像文件(image file)與組態文件。圖3是依照本發明的一實施例所示的虛擬機遷移方法的流程圖。請同時參閱圖2與圖3,以下是說明如何將一個已存在的虛擬機遷移到不同云端伺服系統來執行的詳細步驟。為了方便說明,本實施例假設要將運行于計算節點210a的超級管理器27所模擬的虛擬機25,從云端伺服系統200的貨柜210遷移到云端伺服系統100的貨柜10中執行。首先如步驟S310所示,云端伺服系統100的貨柜10中的服務節點IlOa將計算資源池140中的所有計算節點劃分為至少一計算節點群組,其中各計算節點群組系一對一對應至一種特定超級管理器類型。具體來說,服務節點IlOa是依照每一計算節點所運行的超級管理器的類型來進行分組。例如,計算節點N11至Nlk運行相同類型的超級管理器,因此被劃分為同一計算節點群組G1,而計算節點Nml至Nmp因運行相同類型的超級管理器,而被劃分為同一計算節點群組Gm(其中,m、k、p為正整數)。為了方便說明,以下將計算節點群組G1至Gm所個別對應的特定超級管理器類型稱的為超級管理器類型T1至Tm。
在步驟S320中,服務節點IlOa接收既有的虛擬機25所對應的映像文件與組態文件,其中映像文件是根據客體操作系統23所產生的。在本實施例中,對應虛擬機25的映像文件與組態文件是由云端伺服系統200透過公共網絡220而傳送至云端伺服系統100的服務節點110a。其中,映像文件與組態文件會被存入儲存節點120a。接下來如步驟S330所示,服務節點IlOa依據映像文件(或映像文件以及組態文件)來識別模擬虛擬機25的超級管理器27的類型。具體來說,由于大多數超級管理器所產生的映像文件的格式會隨 著超級管理器的類型而有所不同,因此服務節點IlOa可根據映像文件的文件頭(header)的內容以識別超級管理器27的類型,例如,根據映像文件的文件頭中的特定字段內容便可識別出超級管理器27的類型。再例如,若映像文件的文件頭中的magic字段的4個字節的值為‘Q’ ‘F’ ‘I’fb,則便可判定其映像文件格式為qcow,且由于KVM超級管理器所支持的虛擬機的映像文件格式為qcow,所以便可判定其超級管理器為KVM超級管理器。下表列出的是現今幾種常用的超級管理器與其所支持的虛擬機映像文件格式的對應關系:
權利要求
1.一種虛擬機遷移方法,用于一云端伺服系統,該云端伺服系統包括一貨柜,該貨柜包括一服務節點、一儲存節點以及多個計算節點,該虛擬機遷移方法包括: 由該服務節點將該些計算節點劃分為至少一計算節點群組,其中該至少一計算節點群組系一對一對應至少一特定超級管理器類型; 由該服務節點接收對應既有的一虛擬機的一映像文件與一組態文件,并儲存該映像文件與該組態文件至該儲存節點; 依據該映像文件識別模擬該虛擬機的一超級管理器的類型; 判斷在該至少一特定超級管理器類型中是否存在與該超級管理器的類型相同的特定超級管理器類型; 若是,則從與該超級管理器的類型相同的特定超級管理器類型所對應的計算節點群組中選擇一特定計算節點;以及 由該特定計算節點根據該映像文件與該組態文件模擬該虛擬機。
2.根據權利要求1所述的虛擬機遷移方法,其中依據該映像文件識別模擬該虛擬機的該超級管理器的類型的步驟包括: 根據該映像文件的一文件頭的內容以識別該超級管理器的類型。
3.根據權利要求2所述的虛擬機遷移方法,還包括: 若無法根據該文件頭的內容識別出該超級管理器的類型,則分析該組態文件的內容以識別該超級管理器的類型。
4.根據權利要求1所述的虛擬機遷移方法,還包括: 若否,則從該至少一計算節點群組中選出一特定計算節點群組; 根據該特定計算節點群組對應的特定超級管理器類型分別產生該映像文件及該組態文件的一等價映像文件與一等價組態文件; 在該特定計算節點群組中選擇該特定計算節點;以及 由該特定計算節點根據該等價映像文件與該等價組態文件模擬該虛擬機。
5.根據權利要求1所述的虛擬機遷移方法,其中對應于該虛擬機的該映像文件與該組態文件是一第二云端伺服系統通過一公共網絡傳送至該云端伺服系統。
6.—種云端伺服系統,包括: 一貨柜,包括: 多個計算節點; 一儲存節點,通過一局域網絡I禹接該些計算節點;以及 一服務節點,通過該局域網絡耦接該些計算節點與該儲存節點,其中該服務節點將該些計算節點劃分為至少一計算節點群組,且該至少一計算節點群組是一對一對應至少一特定超級管理器類型; 其中,該服務節點接收對應既有的一虛擬機的一映像文件與一組態文件,并將該映像文件與該組態文件儲存于該儲存節點,依據該映像文件識別模擬該虛擬機的一超級管理器的類型,并判斷在該至少一特定超級管理器類型中是否存在與該超級管理器的類型相同的特定超級管理器類型,若是,該服務節點從與該超級管理器的類型相同的特定超級管理器類型所對應的計算節點群組中選擇一特定計算節點以及由該特定計算節點根據該映像文件與該組態文件模擬該虛擬機。
7.根據權利要求6所述的云端伺服系統,其中該服務節點根據該映像文件的一文件頭的內容以識別該超級管理器的類型。
8.根據權利要求7所述的云端伺服系統,其中若該服務節點無法根據該文件頭的內容識別出該超級管理器的類型,則分析該組態文件的內容以識別該超級管理器的類型。
9.根據權利要求6所述的云端伺服系統,其中若在該至少一特定超級管理器類型中不存在與該超級管理器的類型相同的特定超級管理器類型,則該服務節點從該至少一計算節點群組中選出一特定計算節點群組,并根據該特定計算節點群組對應的特定超級管理器類型分別產生該映像文件及該組態文件的一等價映像文件與一等價組態文件以及在該特定計算節點群組中選擇該特定計算節點,并由該特定計算節點根據該等價映像文件與該等價組態文件模擬該虛擬機。
10.根據權利要求6所述的云端伺服系統,其中對應于該虛擬機的該映像文件與該組態文件是一第二云端伺服系統通過一公共網絡傳送至該云端伺服系統。
全文摘要
一種虛擬機遷移方法與云端伺服系統,此云端伺服系統的貨柜包括服務節點、儲存節點與數個計算節點,此方法由服務節點將所有計算節點劃分為至少一計算節點群組,各計算節點群組是一對一對應至一種特定超級管理器類型;在服務節點接收對應既有的虛擬機的映像文件與組態文件后,其依據映像文件與組態文件識別模擬此虛擬機的超級管理器的類型,并判斷在所有特定超級管理器類型中是否存在與模擬此虛擬機的超級管理器相同的類型;若是,則從對應此特定超級管理器類型的計算節點群組中選出一特定計算節點,由特定計算節點根據映像文件與組態文件模擬虛擬機。
文檔編號G06F9/48GK103186423SQ20111044633
公開日2013年7月3日 申請日期2011年12月28日 優先權日2011年12月28日
發明者盧盈志 申請人:英業達股份有限公司