一種虛擬機遷移控制方法及裝置的制造方法
【技術領域】
[0001] 本發(fā)明實施例涉及計算機技術領域,尤其涉及一種虛擬機遷移控制方法及裝置。
【背景技術】
[0002] 虛擬化技術是在軟、硬件之間引入一個虛擬層,將底層物理機(Physical Machine, PM)虛擬成多個虛擬機(Virtual Machine, VM),每個虛擬機通過虛擬層的統(tǒng)一調 度實現(xiàn)對物理機的多路復用。虛擬機遷移是虛擬化技術的一個主要特色,虛擬機遷移是指 在兩個或多個物理主機之間遷移它們的虛擬機,即在保證應用不中斷的情況下,完成虛擬 機的操作系統(tǒng)、內存數據和虛擬機狀態(tài)的轉移,具有零停機的特點,能夠保證不同物理平臺 的硬件資源的充分利用,提高系統(tǒng)的工作效率。
[0003] 當前的虛擬機遷移處理一般是從硬件層面(例如內存、網絡等)進行考慮的。例如, 存在一個雙機應用A,在初始形態(tài)下,雙機應用A的主備機分別運行于VM與VMB上,而VM 與VMB又分別運行于物理機PMA與PMB上。當PMA異常時,主備機制啟動,通過虛擬機遷移 操作將運行在PMA上的VMA遷移到PMB上,此時VMA與VMB均運行在PMB上,一旦PMB發(fā)生 異常,主備機制就無法啟動,造成應用的可靠性降低。同樣,當應用為集群時也會存在類似 問題,一旦遷移之后一個PM上同時存在同一集群的多個VM,應用的可靠性也會降低,因此, 有必要提供一種新的方法解決上述問題。
【發(fā)明內容】
[0004] 本發(fā)明實施例提供了一種虛擬機遷移控制方法及裝置,能夠保證在虛擬機遷移的 過程中應用的可靠性不受影響。
[0005] 本發(fā)明實施例第一方面提供的虛擬機遷移控制裝置,包括:
[0006] 獲取單元,用于獲取第一虛擬機上運行的應用的信息并發(fā)送給確定單元,所述第 一虛擬機運行在第一主機上;
[0007] 所述確定單元,用于接收所述獲取單元發(fā)送的所述第一虛擬機上運行的應用的信 息,根據所述應用的信息確定第二虛擬機上是否運行有與所述第一虛擬機上運行的應用相 關聯(lián)的應用,并將確定結果發(fā)送給遷移控制單元,所述第二虛擬機為運行在第二主機上的 所有虛擬機;
[0008] 所述遷移控制單元,用于接收所述確定單元發(fā)送的確定結果,當所述確定結果為 所述第二主機上沒有運行與所述第一虛擬機上運行的應用相關聯(lián)的應用時,將所述第一虛 擬機遷移到所述第二主機上。
[0009] 結合本發(fā)明實施例的第一方面,在本發(fā)明實施例的第一方面的第一種實施方式 中,所述獲取單元獲取的所述第一虛擬機上運行的應用的信息包括應用的類型,所述應用 的類型包括普通、雙機或集群。
[0010] 結合本發(fā)明實施例第一方面的第一種實施方式,在本發(fā)明實施例的第一方面的第 二種實施方式中,所述確定單元包括: toon] 第一確定單元,用于當所述第一虛擬機上運行的應用的類型為普通時,確定所述 第二虛擬機上沒有運行與所述第一虛擬機上運行的應用相關聯(lián)的應用。
[0012] 結合本發(fā)明實施例第一方面的第一種實施方式,在本發(fā)明實施例的第一方面的第 三種實施方式中,當所述第一虛擬機上運行的應用的類型為雙機或集群時,所述應用的信 息中還包括應用的標識,所述確定單元包括:第二確定單元,用于當所述第一虛擬機上運行 的應用的類型為雙機或集群時,確定所述第二虛擬機上運行的應用的標識中是否有與所述 第一虛擬機上運行的應用的標識匹配的;若沒有,則確定所述第二虛擬機上沒有運行與所 述第一虛擬機上運行的應用相關聯(lián)的應用。
[0013] 結合本發(fā)明實施例的第一方面,或第一方面的第一種實施方式,或第一方面的第 二種實施方式,或第一方面的第三種實施方式,在本發(fā)明實施例的第一方面的第四種實施 方式中,所述裝置還包括:
[0014] 檢測單元,用于檢測所述第二主機剩余的資源量并將檢測結果發(fā)送給觸發(fā)單元;
[0015] 所述觸發(fā)單元,用于接收所述檢測單元發(fā)送的檢測結果,當所述檢測結果為所述 第二主機剩余的資源量大于或等于預設的閾值時,觸發(fā)所述獲取單元獲取所述第一虛擬機 上運行的應用。
[0016] 本發(fā)明是實施例第二方面提供的虛擬機遷移控制方法,包括:
[0017] 獲取第一虛擬機上運行的應用的信息,所述第一虛擬機運行在第一主機上;
[0018] 根據所述應用的信息確定第二虛擬機上是否運行有與所述第一虛擬機上運行的 應用相關聯(lián)的應用,所述第二虛擬機為運行在第二主機上的所有虛擬機;
[0019] 若沒有,則將所述第一虛擬機遷移到所述第二主機上。
[0020] 結合本發(fā)明實施例的第二方面,在本發(fā)明實施例的第二方面的第一種實施方式 中,所述第一虛擬機上運行的應用的信息包括應用的類型,所述應用的類型包括普通、雙機 或集群。
[0021] 結合本發(fā)明實施例第二方面的第一種實施方式,在本發(fā)明實施例的第二方面的第 二種實施方式中,所述確定所述第二虛擬機上是否運行有與所述第一虛擬機上運行的應用 相關聯(lián)的應用包括:
[0022] 若所述第一虛擬機上運行的應用的類型為普通,則確定所述第二虛擬機上沒有運 行與所述第一虛擬機上運行的應用相關聯(lián)的應用。
[0023] 結合本發(fā)明實施例第二方面的第一種實施方式,在本發(fā)明實施例的第二方面的第 三種實施方式中,所述確定所述第二虛擬機上是否運行有與所述第一虛擬機上運行的應用 相關聯(lián)的應用包括:
[0024] 若所述第一虛擬機上運行的應用的類型為雙機或集群,則所述應用的信息中還包 括應用的標識,則確定所述第二虛擬機上運行的應用的標識中是否有與所述第一虛擬機上 運行的應用的標識匹配的;
[0025] 若沒有,則確定所述第二虛擬機上沒有運行與所述第一虛擬機上運行的應用相關 聯(lián)的應用。
[0026] 結合本發(fā)明實施例的第二方面,或第二方面的第一種實施方式,或第二方面的第 二種實施方式,或第二方面的第三種實施方式,在本發(fā)明實施例的第二方面的第四種實施 方式中,在獲取第一虛擬機上運行的應用之前,還包括:
[0027] 檢測所述第二主機剩余的資源量;
[0028] 當所述第二主機剩余的資源量大于或等于預設的閾值時,觸發(fā)所述獲取第一虛擬 機上運行的應用的步驟。
[0029] 從以上技術方案可以看出,本發(fā)明實施例具有以下優(yōu)點:
[0030] 本發(fā)明實施例中,首先獲取第一虛擬機上運行的應用的信息,第一虛擬機運行在 第一主機上,根據所述應用的信息確定第二虛擬機上是否運行有與第一虛擬機上運行的應 用相關聯(lián)的應用,第二虛擬機為運行在第二主機上的所有虛擬機,若沒有,則將第一虛擬機 遷移到第二主機上。本發(fā)明實施例中,由于在將第一虛擬機遷移到第二主機之前,會先確定 運行在第二主機上的全部虛擬機上是否運行有與第一虛擬機上運行的應用相關聯(lián)的應用, 若沒有,才進行虛擬機遷移,避免遷移之后運行了相關聯(lián)的應用的不同虛擬機運行在同一 主機上,保證了遷移之后原有應用的可靠性。
【附圖說明】
[0031] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據這些附圖獲得其他的附圖。
[0032] 圖1為本發(fā)明虛擬機遷移控制裝置一個實施例示意圖;
[0033] 圖2為本發(fā)明虛擬機遷移控制裝置另一實施例示意圖;
[0034] 圖3為本發(fā)明虛擬機遷移控制裝置另一實施例示意圖;
[0035] 圖4為本發(fā)明虛擬機遷移控制方法另一實施例示意圖;
[0036] 圖5為本發(fā)明虛擬機遷移控制方法另一實施例示意圖。
【具體實施方式】
[0037] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行描述,顯 然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實 施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬 于本發(fā)明保護的范圍。
[0038] 本發(fā)明實施例提供了一種虛擬機遷移控制方法及裝置,能夠保證在虛擬機遷移的 過程中應用的可靠性不受影響。
[0039]