虛擬機熱遷移方法、裝置、系統、存儲介質及設備與流程
2023-04-24 18:27:52 3

本發明涉及虛擬化計算機系統,具體地,涉及虛擬機熱遷移的方法、裝置、系統、存儲介質及設備。
背景技術:
在kvm(kernel-basedvirtualmachine,基於內核虛擬機)虛擬化中,服務運行在虛擬機上,並且一個或多個虛擬機可同時運行在一個物理機上。
熱遷移,又稱為實時遷移(livemigration)。是指在保證虛擬機上服務正常運行的同時,虛擬機在不同的物理主機之間進行遷移。當前的熱遷移流程在啟動遷移工作之後,會先遷移虛擬機的磁碟到目標物理機,然後再遷移虛擬機的內存到目標物理機。之後,目標端虛擬機就具備所有源端虛擬機的數據,並具備和用戶直接進行交互的能力,此時,源端虛擬機將控制權轉移到目標端虛擬機,服務在目標端虛擬機上繼續運行。對於服務本身而言,由於切換的時間非常短暫,用戶感覺不到服務的中斷,用戶可以持續得和虛擬機進行交互。在線遷移適用於對服務可用性要求很高的場景。
但是在現有熱遷移過程中,如果用戶虛擬機的磁碟數據很大,特別是如果用戶虛擬機正在運行高i/o(input/output,輸入/輸出)負載服務時,虛擬機的磁碟數據會被反覆更新,會導致磁碟遷移過程遲遲無法結束,遷移時間被無限地放大,最終導致遷移失敗。因此,在實際工作環境中,對於當物理機負載高和/或資源緊張的情況下觸發的熱遷移,無法及時地降低物理機負載並緩解物理機的內存和/或cpu(centralprocessingunit,中央處理器)的壓力。
技術實現要素:
考慮到熱遷移過程中,磁碟遷移的時間佔據了絕大部分時間,而內存等其他資源的遷移花銷時間相對較少,而及時緩解內存、cpu和磁碟的壓力是熱遷移的一個重要作用,為此需要設計跳過磁碟遷移、直接先進行內存遷移的實時遷移方案。
本發明實施例提供了一種實現虛擬機熱遷移的方法、裝置、系統、存儲介質及設備,以便能快速降低物理機負載,從而避免高負載導致虛擬機性能下降和觸發物理機宕機。
第一方面,本發明實施例提供了一種實現虛擬機熱遷移的方法,該方法包括:共享步驟,將源物理機上的源虛擬機的源磁碟數據共享到目標物理機,在所述目標物理機上形成所述源磁碟數據的虛擬鏡像;建立步驟,在所述目標物理機上建立目標虛擬機,其中所述目標虛擬機和所述源虛擬機兩者的配置相同;遷移步驟,將所述源虛擬機的內存數據和狀態數據遷移到所述目標物理機;啟動步驟,根據所述虛擬鏡像、所述內存數據和所述狀態數據,啟動所述目標虛擬機。
結合第一方面,本發明實施例提供了一種實現虛擬機熱遷移的方法還可以進一步包括:根據所述目標物理機和所述目標虛擬機的運行狀態,判斷所述目標物理機和所述目標虛擬機的負載是否高於閾值,如果所述負載高於閾值,則重新選擇新的目標物理機,並執行上述共享步驟,如果所述負載不高於閾值,則維持當前所述目標物理機;根據所述虛擬鏡像,在所述目標物理機上設立所述共享鏡像的磁碟快照,所述磁碟快照用於存儲所述目標虛擬機產生的目標磁碟數據;將所述源虛擬機的所述源磁碟數據合併到所述目標虛擬機的所述磁碟快照中;在所述源物理機和所述目標物理機上移除所述共享存儲技術的相應設置。
第二方面,本發明實施例提供了一種實現虛擬機熱遷移的裝置,該裝置包括:共享模塊,用於將源物理機上的源虛擬機的源磁碟數據共享到目標物理機,在所述目標物理機上形成所述源磁碟數據的虛擬鏡像;建立模塊,用於在所述目標物理機上建立目標虛擬機,其中所述目標虛擬機和所述源虛擬機兩者的配置相同;遷移模塊,將所述源虛擬機的內存數據和狀態數據遷移到所述目標物理機;啟動模塊,用於根據所述虛擬鏡像、所述內存數據和所述狀態數據,啟動所述目標虛擬機。
結合第二方面,本發明實施例提供的一種實現虛擬機熱遷移的裝置還可以進一步包括:判斷模塊,用於根據所述目標物理機和所述目標虛擬機的運行狀態,判斷所述目標物理機和所述目標虛擬機的負載是否高於閾值,如果所述負載高於閾值,則重新選擇新的目標物理機,並返回共享模塊,如果所述負載不高於閾值,則維持當前所述目標物理機;設立模塊,用於根據所述虛擬鏡像,在所述目標物理機上設立所述共享鏡像的磁碟快照,所述磁碟快照用於存儲所述目標虛擬機產生的目標磁碟數據;合併模塊,用於將所述源虛擬機的所述源磁碟數據合併到所述目標虛擬機的所述磁碟快照中;移除模塊,用於在所述源物理機和所述目標物理機上移除所述共享存儲技術的相應設置。
第三方面,本發明實施例提供了一種實現虛擬機熱遷移的系統,該系統包括第二方面或結合第二方面的虛擬機熱遷移裝置以及上述各方面中任一種可能的源物理機和目標物理機。
第四方面,本發明實施例提供了一種非易失性存儲介質,該非易失性存儲介質具有存儲在其中的指令,當該指令被執行時,使得處理器執行虛擬機熱遷移方法,具體的,該指令包括:共享指令,將源物理機上的源虛擬機的源磁碟數據共享到目標物理機,在所述目標物理機上形成所述源磁碟數據的虛擬鏡像;建立指令,在所述目標物理機上建立目標虛擬機,其中所述目標虛擬機和所述源虛擬機兩者的配置相同;遷移指令,將所述源虛擬機的內存數據和狀態數據遷移到所述目標物理機;啟動指令,根據所述虛擬鏡像、所述內存數據和所述狀態數據,啟動所述目標虛擬機。
結合第四方面,本發明實施例提供的一種非易失性存儲介質還可以進一步包括,判斷指令,根據所述目標物理機和所述目標虛擬機的運行狀態,判斷所述目標物理機和所述目標虛擬機的負載是否高於閾值,如果所述負載高於閾值,則重新選擇新的目標物理機,並返回執行共享指令,如果所述負載不高於閾值,則維持當前所述目標物理機;設立指令,用於根據虛擬鏡像,在目標物理機上設立共享鏡像的磁碟快照,磁碟快照用於存儲目標虛擬機產生的目標磁碟數據;合併指令,用於將源虛擬機的源磁碟數據合併到目標虛擬機的磁碟快照中;移除指令,用於在源物理機和目標物理機上移除共享存儲技術的相應設置。
第五方面,本發明實施例提供了一種設備,包括存儲器,存儲有計算機可執行指令,處理器,處理器被配置為執行指令以實施虛擬機熱遷移的過程,該過程包括:共享步驟,將源物理機上的源虛擬機的源磁碟數據共享到目標物理機,在所述目標物理機上形成所述源磁碟數據的虛擬鏡像;建立步驟,在所述目標物理機上建立目標虛擬機,其中所述目標虛擬機和所述源虛擬機兩者的配置相同;遷移步驟,將所述源虛擬機的內存數據和狀態數據遷移到所述目標物理機;啟動步驟,根據所述虛擬鏡像、所述內存數據和所述狀態數據,啟動所述目標虛擬機。
結合第五方面,本發明實施例提供的一種設備,該設備的處理器所執行的進程還可以進一步包括,判斷步驟,根據所述目標物理機和所述目標虛擬機的運行狀態,判斷所述目標物理機和所述目標虛擬機的負載是否高於閾值,如果所述負載高於閾值,則重新選擇新的目標物理機,如果所述負載不高於閾值,則維持當前所述目標物理機;設立步驟,用於根據虛擬鏡像,在目標物理機上設立共享鏡像的磁碟快照,磁碟快照用於存儲目標虛擬機產生的目標磁碟數據;合併步驟,用於將源虛擬機的源磁碟數據合併到目標虛擬機的磁碟快照中;移除步驟,用於在源物理機和目標物理機上移除共享存儲技術的相應設置。
基於上述方案,本發明的技術方案能夠快速降低物理機的負載,改善用戶虛擬機之間的資源競爭,避免高負載導致虛擬機性能下降和觸發物理機宕機。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1a是根據本發明第一實施例的虛擬機熱遷移方法100的流程圖。
圖1b是根據本發明第一實施例的變型的虛擬機熱遷移方法100』的流程圖。
圖2是根據本發明第二實施例的虛擬機熱遷移方法200的流程圖。
圖3a是根據本發明實施例的虛擬機熱遷移裝置300的示意性框圖。
圖3b是根據本發明實施例的變型的虛擬機熱遷移裝置300』的示意性框圖。
圖4是根據本發明實施例的虛擬機熱遷移裝置400的示意性框圖。
圖5是根據本發明實施例的虛擬機熱遷移的系統500的示意性框圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明實施方式作進一步地詳細描述。本文中所描述的說明性系統和方法實施例並非意圖進行限制。
本發明實施例的技術方案可以應用於如下場景,包括但不限於:當物理機的負載在一定時間內一直保持較高水平時,物理機上運行的虛擬機的性能會下降,此時通過執行本發明的技術方案能夠快速地降低物理機負載,實現物理機負載均衡;其次,當物理機的負載一直保持較高水平時,物理機宕機的概率就很大,為了避免觸發物理機宕機,進而使在物理機上運行的虛擬機受到不利影響,可以通過本發明的技術方案快速地將虛擬機遷移到其他物理機上,這樣既可以降低物理機宕機概率,又可以保證虛擬機不會受到宕機的影響;此外,當物理機需要進行虛擬化相關軟體或相關內核模塊的升級,以便修復漏洞、提高性能或引入新特性等時,可以通過本發明的技術方案,在保證虛擬機上服務正常運行的同時,完成相關升級。
第一實施例
圖1a是根據本發明第一實施例的虛擬機熱遷移方法100的流程圖。該方法100可以由物理機上的虛擬機熱遷移裝置執行。
如圖1a所示,在步驟s101、通過共享存儲技術,將源物理機上的源虛擬機的源磁碟數據以虛擬鏡像的方式共享到目標物理機。
可選的,可以使用諸如iscsi(internetsmallcomputersysteminterface,網際網路小型計算機系統接口)或者nbd(networkblockdevice,網絡塊存儲)等共享存儲技術。作為一個實例,首先,需要在源物理機將待共享的源虛擬機的本地磁碟導出為磁碟鏡像,該磁碟鏡像的文件格式可以是諸如qcow2、raw等虛擬化系統支持的鏡像文件格式。然後,該磁碟鏡像文件作為共享鏡像文件,通過iscsi或nbd等共享協議將目標物理機上連結到該磁碟鏡像文件,即將磁碟鏡像文件映射到目標物理機,此時該磁碟鏡像被源物理機和目標物理機所共享。之後,在目標物理機系統的設備目錄,例如/dev目錄中,會出現共享的磁碟鏡像文件。為該共享的磁碟鏡像文件虛擬一個連結名稱和路徑都與源端的磁碟鏡像文件的名稱和路徑完全一致的連結,這樣在目標物理機上虛擬出源虛擬機的磁碟鏡像的虛擬鏡像。虛擬鏡像的優點在於,虛擬鏡像和源物理機上的磁碟鏡像相同,並不存在依賴關係。所謂依賴關係是指,新建的鏡像要依賴於下層鏡像或原始鏡像才能運行,這種依賴關係一般由鏡像創建工具例如「qemu-img」等實現。因為本發明的技術方案使用虛擬鏡像而非依賴鏡像,所以在本發明的另一實施例中,可以調整目標物理機的選擇。
在步驟s102、根據虛擬鏡像的配置信息,在目標物理機上建立目標虛擬機,其中目標虛擬機和源虛擬機兩者的配置相同。
根據本發明的實施例,當虛擬鏡像在目標物理機生成後,目標物理機可以通過源端磁碟鏡像的路徑和文件名訪問源端的磁碟鏡像文件。然後,虛擬機熱遷移裝置根據該虛擬鏡像的包含上述路徑與文件名稱的配置信息,在目標物理機建立目標虛擬機,其中目標虛擬機的配置與源虛擬機的配置相同。需要說明的是,每個虛擬機都有對應的配置文件,通常這些配置文件保存在虛擬機所在的物理機上,為了能夠使用源虛擬機的配置文件在目標物理機建立一個與源虛擬機配置相同的目標虛擬機,在磁碟配置上,需要虛擬鏡像的配置信息作為目標虛擬機磁碟的配置信息,使與源虛擬機配置相同的目標虛擬機能夠正常建立。
接下來,在步驟s103、通過遷移指令,將源虛擬機的內存數據和狀態數據遷移到目標物理機。
在本發明的實施例中,可以通過虛擬化系統組件中的遷移命令選擇上述共享存儲協議將源虛擬機的內存數據和狀態數據遷移到目標虛擬機物理機。作為一個實例,在kvm虛擬化系統中,可以使用「virshmigration」命令選擇共享存儲協議進行遷移。由於無需進行磁碟數據遷移,該步驟花費時間非常短。
當內存數據和狀態數據被遷移到目標物理機後,目標虛擬機具備了與源虛擬機相同的內存數據和狀態數據,因此目標虛擬機啟動所需要的數據已足夠。
在步驟s104、根據虛擬鏡像、內存數據和狀態數據,啟動目標虛擬機。
在本發明實施例中,目標虛擬機在目標物理機上啟動之後,如果目標虛擬機要訪問磁碟數據,可以通過虛擬鏡像從源物理機讀寫磁碟鏡像數據來實現。在這種情況下,對於目標虛擬機來說,源物理機上的磁碟鏡像相當於目標物理機上的本地磁碟。同時,源物理機上的源虛擬機就可以關閉,物理機的內存和cpu資源就可以釋放,但是磁碟鏡像還需保留一段時間。此時,源物理機的cpu、內存和磁碟i/o的利用率得以降低,物理機的負載被快速地降低及均衡。
在步驟s104之後,目標虛擬機運行產生的磁碟數據將通過共享存儲協議被保存在源物理機上的磁碟鏡像中。當源物理機的負載不高並且需要進行虛擬化相關軟體或相關內核模塊的升級,以便修復漏洞、提高性能或引入新特性等時,目標虛擬機產生的數據無需保存在目標物理機,當源物理機完成相關升級後,可直接將目標虛擬機重新遷回源物理機,遷回步驟與上述遷移步驟原理相同,在此省略詳細描述。
因此,根據本發明的實施例,物理機能夠在保證虛擬機上服務正常運行的同時,完成相關升級。並且由於無需遷移磁碟數據,節約了物理機資源。
第一實施例變型
圖1b是根據本發明第一實施例的變型的虛擬機熱遷移方法100』的流程圖。
如圖1b所示,方法100』中,步驟s101』至s104』與方法100的步驟s101至s104相同,為了簡略,在此省略具體描述。
在步驟s104』之後,目標虛擬機運行產生的磁碟數據也可以被保存在目標物理機上。因此進一步的,在步驟s105』、根據虛擬鏡像,在目標物理機上設立共享鏡像的磁碟快照,磁碟快照用於存儲目標虛擬機產生的目標磁碟數據。
根據目標物理機上的虛擬鏡像設立磁碟快照。該快照是相對於源物理機上的磁碟鏡像的外部快照,該快照是磁碟鏡像的關聯鏡像,並且依賴於目標物理機上的虛擬鏡像。其中,外部快照是相對於內部快照而言,外部快照是相對於磁碟鏡像的獨立文件,而內部快照通常包含在磁碟鏡像中,在一些情況下,內部快照與磁碟鏡像生成為一個文件。
作為一個實例,目標物理機上的磁碟快照在設立時為增量的文件,除了一些基本信息之外並沒有數據。並且,與其他用於備份的快照不同,本發明實施例中的磁碟快照具有特殊的配置。該配置特殊在於,目標虛擬機能夠基於快照運行。具體的,磁碟快照是源物理機上的磁碟鏡像的關聯鏡像,當目標虛擬機需要讀取磁碟鏡像的數據時,該虛擬機可通過磁碟快照所依賴的虛擬鏡像從磁碟鏡像讀取數據。因此,當磁碟鏡像設立後,目標虛擬機會在磁碟快照讀寫數據,即,源虛擬機的磁碟數據通過磁碟快照從源物理機上的磁碟鏡像讀取,新產生的數據將直接寫入磁碟快照中。這樣能夠有效地降低了源物理機的負載。
在磁碟快照設立後,源物理機上的磁碟鏡像不會產生數據的寫入或更新操作,這時可以執行步驟s106』、將源虛擬機的源磁碟數據合併到目標虛擬機的磁碟快照中。
具體地,通過使用虛擬化系統中諸如「blockstream」方法從源物理機將磁碟鏡像中的數據提取並合併到目標物理機上的磁碟快照中。同時,根據源物理機和目標物理機的網絡狀態及所述運行狀態,例如,網絡收發率和磁碟的i/o負載等,動態地控制數據的提取及合併的速度,確保不會影響物理機的性能和/或增加物理機的負載壓力。
在完成磁碟數據的合併之後,目標虛擬機就可以完全獨立運行,不再對源物理機上的磁碟鏡像有任何依賴。此時,執行步驟s107』、在源物理機和目標物理機上移除共享存儲技術的相應設置。目標虛擬機中虛擬鏡像將會被自動刪除,目標虛擬機將不再訪問源物理機上的磁碟鏡像。
在本發明的實施例中,通過採用上述快速遷移的方法,雖然整個完整的遷移過程所需的時間,和傳統的遷移方法所需的時間相當。但是遷移過程中,內存數據和狀態數據的遷移過程非常短暫,使得可以在目標物理機上快速啟動虛擬機,迅速降低源物理機的負載,改善用戶虛擬機之間的資源競爭,避免高負載導致虛擬機性能下降和觸發物理機宕機。
上文結合圖1a和圖1b詳細描述了根據本發明第一實施例的虛擬機熱遷移方法100和變型100』,下面將結合圖2詳細描述根據本發明第二實施例的虛擬機熱遷移方法200。
第二實施例
圖2是根據本發明第二實施例的虛擬機熱遷移方法200的流程圖。如圖2所示,在方法200中,步驟s201-s204、s207-s209與方法100』中步驟s101』-s107』的技術特徵相同,因此在此省略方法200中相同步驟的具體描述。下面將詳細描述步驟s205和s206。
步驟s205、根據所述目標物理機和所述目標虛擬機的運行狀態,判斷所述目標物理機和所述目標虛擬機的負載是否高於閾值,如果所述負載高於閾值,則重新選擇新的目標物理機,如果所述負載不高於閾值,則維持當前所述目標物理機。
在一些情況下,當目標虛擬機啟動之後,由於目標物理機上原有服務的需求增加和/或資源競爭等原因,目標物理機的負載可能會出乎預料地增大,這時非常有必要重新選擇新的目標物理機。
如圖2所示,步驟s205由步驟s205a和s205b組成。當目標虛擬機啟動之後,步驟s205a首先會被執行。具體地,虛擬機熱遷移裝置會根據目標物理機的運行狀態例如cpu、內存、磁碟i/o的利用率等判斷物理機的負載是否不高於預先設定的閾值。如果目標物理機的負載高於預先設定的閾值(s205a中「否」),則重新選擇新的目標物理機;如果目標物理機的負載低於或等於預先設定的閾值(s205b中「是」)則繼續執行步驟s205b。在步驟s205b,需要進一步判斷目標虛擬機的負載是否不高於預先設定的閾值,如果目標虛擬機的負載高於預先設定的閾值(s205b中「否」),則重新選擇新的目標物理機;如果目標虛擬機的負載低於或等於預先設定的閾值(s205b中),則維持使用當前物理機。
其中,重新選擇新的目標物理機需要執行步驟s206、在與源物理機具有網絡連接的多個物理機中,根據多個物理機的運行狀態,選擇目標物理機。在本發明的實施例中,物理機的運行狀態主要包括該物理機及其上運行的虛擬機的負載信息,例如,cpu、內存、磁碟i/o的利用率或網絡收發速率等。在步驟s206中,虛擬機熱遷移裝置會根據每個物理機的負載信息,選擇cpu、內存和磁碟i/o的利用率最小的物理機作為熱遷移的目標物理機。
需要說明的是,根據本發明的實施例,在步驟s206之前,目標物理機上只有虛擬鏡像、內存數據和狀態數據。其中,虛擬鏡像只是源物理機上磁碟鏡像在目標物理機的一種映射,而非依賴鏡像。此外,目標虛擬機產生的數據沒有保存在目標物理機上,還保存在源物理機的磁碟鏡像上。因此,如果選擇的目標物理機負載增大,則可以再次執行步驟s206選擇其他負載低的物理機進行二次或多次遷移。
因此,本發明實施例的虛擬機熱遷移方法,通過對目標物理機的多次選擇和連續地快速遷移,能夠應對物理機的各種突發狀況,還可以尋找到最優負載的目標物理機,滿足降低物理機負載的需求。
上文中結合圖1和圖2,詳細描述了根據本發明實施例的虛擬機熱遷移方法,下面將結合圖3至圖5,描述根據本發明實施例的虛擬機熱遷移裝置和虛擬機熱遷移系統。
圖3a是根據本發明實施例的虛擬機熱遷移裝置300的示意性框圖。如圖3a所示,該虛擬機熱遷移裝置300包括:
共享模塊301,用於將源物理機上的源虛擬機的源磁碟數據共享到目標物理機,在目標物理機上形成源磁碟數據的虛擬鏡像;
建立模塊302,用於在目標物理機上建立目標虛擬機,其中目標虛擬機和源虛擬機兩者的配置相同;
遷移模塊303,將源虛擬機的內存數據和狀態數據遷移到目標物理機;
啟動模塊304,用於根據虛擬鏡像、內存數據和狀態數據,啟動目標虛擬機。
圖3b是根據本發明實施例的變型的虛擬機熱遷移裝置300』的示意性框圖。如圖3b所示,虛擬機熱遷移裝置300』的模塊301』-304』與裝置300的模塊301-304相同,在此省略模塊301』-304』的具體描述。
裝置300』還進一步包括:
設立模塊305』,用於根據虛擬鏡像,在目標物理機上設立共享鏡像的磁碟快照,磁碟快照用於存儲目標虛擬機產生的目標磁碟數據;
合併模塊306』,用於將源虛擬機的源磁碟數據合併到目標虛擬機的磁碟快照中;
移除模塊307』,用於在源物理機和目標物理機上移除共享存儲技術的相應設置。
可以理解地,本發明實施例的虛擬機熱遷移裝置300和300』可對應於本發明實施例中的虛擬機熱遷移裝置,並且裝置300和300』中的各個模塊的上述功能和/或其他操作分別為了實現圖1a和圖1b中方法的相應流程,為了簡介,在此省略詳細描述。
因此,本發明實施例的虛擬機熱遷移裝置300,能夠在保證虛擬機上服務正常運行的同時,完成相關升級。並且由於無需遷移磁碟數據,節約了物理機資源。本發明實施例的虛擬機熱遷移裝置300』,通過虛擬機快速遷移的方式,雖然整個完整的遷移過程所需的時間,和傳統的遷移方法所需的時間相當。但是遷移過程中,內存數據和狀態數據的遷移過程非常短暫,使得可以在目標物理機上快速啟動虛擬機,迅速降低源物理機的負載,改善用戶虛擬機之間的資源競爭,避免高負載導致虛擬機性能下降和觸發物理機宕機。
圖4示出了根據本發明實施例的虛擬機熱遷移裝置400的示意性框圖。如圖4所示,該虛擬機熱遷移裝置400包括:
共享模塊401,用於將源物理機上的源虛擬機的源磁碟數據共享到目標物理機,在目標物理機上形成源磁碟數據的虛擬鏡像;
建立模塊402,用於在目標物理機上建立目標虛擬機,其中目標虛擬機和源虛擬機兩者的配置相同;
遷移模塊403,將源虛擬機的內存數據和狀態數據遷移到目標物理機;
啟動模塊404,用於根據虛擬鏡像、內存數據和狀態數據,啟動目標虛擬機;
判斷模塊405,用於根據目標物理機和目標虛擬機的運行狀態,判斷目標物理機和目標虛擬機的負載是否高於閾值,如果負載高於閾值,則重新選擇新的目標物理機,如果負載不高於閾值,則維持當前目標物理機;
設立模塊406,用於根據虛擬鏡像,在目標物理機上設立共享鏡像的磁碟快照,磁碟快照用於存儲目標虛擬機產生的目標磁碟數據;
合併模塊407,用於將源虛擬機的源磁碟數據合併到目標虛擬機的磁碟快照中;
移除模塊408,用於在源物理機和目標物理機上移除共享存儲技術的相應設置。
可以理解地,本發明實施例的虛擬機熱遷移裝置400可對應於本發明實施例中的虛擬機熱遷移裝置,並且裝置400中的各個模塊的上述功能和/或其他操作分別為了實現圖2中方法的相應流程,為了簡介,在此省略詳細描述。
因此,本發明實施例的虛擬機熱遷移裝置,通過對目標物理機的多次選擇和連續地快速遷移,能夠應對物理機的各種突發狀況,還可以尋找到最優負載的目標物理機,滿足降低物理機負載的需求。
圖5是根據本發明實施例的虛擬機熱遷移的系統500的示意性框圖。如圖5所示,該系統500包括:虛擬機熱遷移裝置501、源物理機502和目標物理機503,其中,該虛擬機熱遷移裝置501可以是圖3至圖4中描述的任意一種虛擬機熱遷移裝置,該源物理機502和目標物理機503是上述方法及裝置中的源物理機和目標物理機。
進一步地,根據本發明的實施例,還提供一種非易失性存儲介質,該非易失性存儲介質具有存儲在其中的指令,當該指令被執行時,使得處理器執行虛擬機熱遷移方法,具體的,該指令包括:共享指令,將源物理機上的源虛擬機的源磁碟數據共享到目標物理機,在所述目標物理機上形成所述源磁碟數據的虛擬鏡像;建立指令,在所述目標物理機上建立目標虛擬機,其中所述目標虛擬機和所述源虛擬機兩者的配置相同;遷移指令,將所述源虛擬機的內存數據和狀態數據遷移到所述目標物理機;啟動指令,根據所述虛擬鏡像、所述內存數據和所述狀態數據,啟動所述目標虛擬機。
可選地,根據本發明的另一實施例,該存儲介質還可以包括判斷指令,根據所述目標物理機和所述目標虛擬機的運行狀態,判斷所述目標物理機和所述目標虛擬機的負載是否高於閾值,如果所述負載高於閾值,則重新選擇新的目標物理機,如果所述負載不高於閾值,則維持當前所述目標物理機;設立指令,用於根據虛擬鏡像,在目標物理機上設立共享鏡像的磁碟快照,磁碟快照用於存儲目標虛擬機產生的目標磁碟數據;合併指令,用於將源虛擬機的源磁碟數據合併到目標虛擬機的磁碟快照中;移除指令,用於在源物理機和目標物理機上移除共享存儲技術的相應設置。
進一步的,根據本發明的另一實施例,還提供一種設備,包括存儲器,存儲有計算機可執行指令,處理器,處理器被配置為執行指令以實施虛擬機熱遷移的過程,該過程包括:共享步驟,將源物理機上的源虛擬機的源磁碟數據共享到目標物理機,在所述目標物理機上形成所述源磁碟數據的虛擬鏡像;建立步驟,在所述目標物理機上建立目標虛擬機,其中所述目標虛擬機和所述源虛擬機兩者的配置相同;遷移步驟,將所述源虛擬機的內存數據和狀態數據遷移到所述目標物理機;啟動步驟,根據所述虛擬鏡像、所述內存數據和所述狀態數據,啟動所述目標虛擬機。
可選地,根據本發明的另一實施例,該過程還可以包括判斷步驟,根據所述目標物理機和所述目標虛擬機的運行狀態,判斷所述目標物理機和所述目標虛擬機的負載是否高於閾值,如果所述負載高於閾值,則重新選擇新的目標物理機,如果所述負載不高於閾值,則維持當前所述目標物理機;設立步驟,用於根據虛擬鏡像,在目標物理機上設立共享鏡像的磁碟快照,磁碟快照用於存儲目標虛擬機產生的目標磁碟數據;合併步驟,用於將源虛擬機的源磁碟數據合併到目標虛擬機的磁碟快照中;移除步驟,用於在源物理機和目標物理機上移除共享存儲技術的相應設置。
需要說明的是,對於前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明並不受所描述的動作順序的限制,因為依據本發明,某些步驟可以採用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬於優選實施例,所涉及的動作和模塊並不一定是本發明所必須的。
儘管本文已公開了各種方面和實施例,但其它方面和實施例對於本領域技術人員而言將是明顯的。本文公開的各種方面和實施例是為了說明的目的,而不意在進行限制,真實的範圍應當由所附權利要求以及這樣的權利要求所被授權的等效物的全部範圍指示。還要理解,本文中使用的術語僅是為了描述特定實施例的目的,而不意在進行限制。
因為可以對所描述的示例作出細節上的很多修改、變化和改變,但是意圖在於前面的描述和附圖中所示的所有事項被解釋為說明性的,而不是限制的意思。