本發(fā)明涉及集群領(lǐng)域,特別是涉及一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法及裝置。
背景技術(shù):
隨著計算機的飛速發(fā)展,數(shù)據(jù)中心中不斷增加升級換代的服務(wù)器,而各服務(wù)器的cpu型號千差萬別,各自支持的操作指令集也是不同的,具有不同型號cpu的多個服務(wù)器組成了異構(gòu)cpu服務(wù)器集群。虛擬機在異構(gòu)cpu服務(wù)器集群中的應(yīng)用非常廣泛,其應(yīng)用過程中,會遇到虛擬機進行熱遷移的情況。由于cpu型號不同,其操作指令集也不相同,導(dǎo)致虛擬機在熱遷移過程中,往往會因為操作指令集的不同造成遷移失敗,影響用戶設(shè)置的集群資源調(diào)度策略,降低了集群的穩(wěn)定性。
由此可見,如何保證虛擬機在熱遷移過程中不受異構(gòu)cpu的影響而自由遷移是本領(lǐng)域技術(shù)人員亟待解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法及裝置,用于保證虛擬機在熱遷移過程中不受異構(gòu)cpu的影響而自由遷移。
為解決上述技術(shù)問題,本發(fā)明提供一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法,包括:
獲取當前集群中全部cpu的操作指令集;
計算出全部所述操作指令集的最大交集以作為當前集群的cpu指令集基線;
在所述cpu指令集基線范圍內(nèi)選取一個目標虛擬機操作指令集,指定給各所述虛擬機以啟動當前集群中的各虛擬機;
當接收到熱遷移指令時,控制目標虛擬機遷移至目標服務(wù)器中。
優(yōu)選地,當有新的虛擬機加入當前集群時,還包括:
判斷所述新的虛擬機的操作指令集是否在所述cpu指令集基線范圍內(nèi);
如果是,則允許所述新的虛擬機遷入當前集群中,否則,禁止所述新的虛擬機遷入當前集群中。
優(yōu)選地,還包括:將所述目標虛擬機操作指令集指定給所述新的虛擬機。
優(yōu)選地,當有新的服務(wù)器加入當前集群時,還包括:
獲取所述新的服務(wù)器的cpu的操作指令集;
重新計算全部所述操作指令集的最大交集以得到新的最大交集;
判斷所述新的最大交集是否大于或等于所述目標虛擬機操作指令集;
如果是,則允許所述新的服務(wù)器遷入當前集群中,否則,禁止所述新的服務(wù)器遷入當前集群中。
優(yōu)選地,還包括:
判斷所述目標虛擬機是否遷移至所述目標服務(wù)器;
如果否,則輸出遷移失敗信息。
為解決上述技術(shù)問題,本發(fā)明提供一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移裝置,包括:
獲取單元,用于獲取當前集群中全部cpu的操作指令集;
計算單元,用于計算出全部所述操作指令集的最大交集以作為當前集群的cpu指令集基線;
啟動單元,用于在所述cpu指令集基線范圍內(nèi)選取一個目標虛擬機操作指令集,指定給各所述虛擬機以啟動當前集群中的各虛擬機;
控制單元,用于當接收到熱遷移指令時,控制目標虛擬機遷移至目標服務(wù)器中。
優(yōu)選地,當有新的虛擬機加入當前集群時,還包括:
第一判斷單元,用于判斷所述新的虛擬機的操作指令集是否在所述cpu指令集基線范圍內(nèi),如果是,則允許所述新的虛擬機遷入當前集群中,否則,禁止所述新的虛擬機遷入當前集群中。
優(yōu)選地,所述啟動單元還用于將所述目標虛擬機操作指令集指定給所述新的虛擬機。
優(yōu)選地,當有新的服務(wù)器加入當前集群時,還包括:第二判斷單元;
所述獲取單元,還用于獲取所述新的服務(wù)器的cpu的操作指令集;
所述計算單元,還用于重新計算全部所述操作指令集的最大交集以得到新的最大交集;
所述第二判斷單元,用于判斷所述新的最大交集是否大于或等于所述目標虛擬機操作指令集,如果是,則允許所述新的服務(wù)器遷入當前集群中,否則,禁止所述新的服務(wù)器遷入當前集群中。
優(yōu)選地,還包括:
第三判斷單元,用于判斷所述目標虛擬機是否遷移至所述目標服務(wù)器,如果否,則輸出遷移失敗信息。
本發(fā)明所提供的異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法,包括:獲取當前集群中全部cpu的操作指令集;計算出全部所述操作指令集的最大交集以作為當前集群的cpu指令集基線;在所述cpu指令集基線范圍內(nèi)選取一個目標虛擬機操作指令集,指定給各所述虛擬機以啟動當前集群中的各虛擬機;當接收到熱遷移指令時,控制目標虛擬機遷移至目標服務(wù)器中。由此可見,當虛擬機在熱遷移時,不需要考慮目標遷移服務(wù)器對應(yīng)的cpu操作指令集,可以直接進行熱遷移,避免了由于異構(gòu)cpu而造成的遷移失敗的問題,從而提高集群的穩(wěn)定性。此外,本發(fā)明還公開一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移裝置,效果如上所述。
附圖說明
為了更清楚地說明本發(fā)明實施例,下面將對實施例中所需要使用的附圖做簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法的流程圖;
圖2為本發(fā)明實施例提供的一種cpu指令集基線的設(shè)置示意圖;
圖3為本發(fā)明實施例提供的另一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法的流程圖;
圖4為本發(fā)明實施例提供的另一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法的流程圖;
圖5為本發(fā)明實施例提供的一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移裝置的結(jié)構(gòu)圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下,所獲得的所有其他實施例,都屬于本發(fā)明保護范圍。
本發(fā)明的核心是提供一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法及裝置,用于保證虛擬機在熱遷移過程中不受異構(gòu)cpu的影響而自由遷移。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步的詳細說明。
圖1為本發(fā)明實施例提供的一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法的流程圖。如圖1所示,該方法包括:
s10:獲取當前集群中全部cpu的操作指令集。
在具體實施中,當前集群包含有多個服務(wù)器,每個服務(wù)器均有自己的cpu,通常情況下,cpu的類型并不是完全相同,因此當前集群中cpu的操作指令集就會有多種類型。圖2為本發(fā)明實施例提供的一種cpu指令集基線的設(shè)置示意圖。如圖2所示,當前集群有3個服務(wù)器,分別為服務(wù)器a,服務(wù)器b和服務(wù)器c,各自的cpu的型號均不相同,對應(yīng)的cpu的操作指令集也不相同。每個服務(wù)器上均設(shè)置有虛擬機,分別為虛擬機a,虛擬機b和虛擬機c,每個服務(wù)器的cpu的操作指令集如圖2所示。
s11:計算出全部操作指令集的最大交集以作為當前集群的cpu指令集基線。
本步驟中,計算出3個操作指令集的最大交集,這個最大交集就是當前集群的cpu指令集基線。
s12:在cpu指令集基線范圍內(nèi)選取一個目標虛擬機操作指令集,指定給各虛擬機以啟動當前集群中的各虛擬機。
可以理解的是,目標虛擬機操作指令集小于或等于cpu指令集基線范圍,將目標虛擬機操作指令集指定給各集群中各虛擬機,從而實現(xiàn)每個虛擬機的啟動。需要說明的是,各虛擬機不使用交集外的指令集,從而保證虛擬機可以在集群內(nèi)部任意遷移,且當前集群中的全部虛擬機都是統(tǒng)一到cpu指令集基線。
s13:當接收到熱遷移指令時,控制目標虛擬機遷移至目標服務(wù)器中。
當接收到遷移指令時,需要解析遷移指令的內(nèi)容,即得到目標虛擬機和目標服務(wù)器,例如,目標虛擬機為虛擬機a,目標服務(wù)器為服務(wù)器b,就是將虛擬機a由服務(wù)器a遷移到服務(wù)器b上。
由于集群內(nèi)部不同服務(wù)器上運行的虛擬機,均擁有統(tǒng)一的目標虛擬機操作指令集,因此,虛擬機就可以進行集群內(nèi)部異構(gòu)cpu服務(wù)器之間的熱遷移,同時,基于熱遷移的動態(tài)資源調(diào)度等工作,也可以順利執(zhí)行。
本實施例提供的異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法,通過計算得到集群中全部cpu的操作指令集的最大交集,并作為當前集群的cpu指令集基線,然后在該基線范圍內(nèi)選取一個目標虛擬機操作指令集作為當前集群中每個虛擬機的統(tǒng)一指令集。由此可見,當虛擬機在熱遷移時,不需要考慮目標遷移服務(wù)器對應(yīng)的cpu操作指令集,可以直接進行熱遷移,避免了由于異構(gòu)cpu而造成的遷移失敗的問題,從而提高集群的穩(wěn)定性。
圖3為本發(fā)明實施例提供的另一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法的流程圖。如圖3所示,在上述實施例的基礎(chǔ)上,當有新的虛擬機加入當前集群時,還包括:
s30:判斷新的虛擬機的操作指令集是否在cpu指令集基線范圍內(nèi),如果是,則進入s31,否則進入s32。
s31:允許新的虛擬機遷入當前集群中。
s32:禁止新的虛擬機遷入當前集群中。
可以理解的是,在正常運行中,當前集群有可能有虛擬機退出,也有可能有新的虛擬機遷入,而新的虛擬機需要與集群中的其他虛擬機具有同樣的目標虛擬機操作指令集,否則該虛擬機在進行熱遷移操作時,可能出現(xiàn)遷移失敗的問題。因此,只有新的虛擬機的操作指令集在cpu指令集基線范圍內(nèi),才能保證為新的虛擬機設(shè)定目標虛擬機操作指令集不與其自身的操作指令集相矛盾。
作為優(yōu)選地實施方式,還包括:
s33:將目標虛擬機操作指令集指定給新的虛擬機。
當運行新的虛擬機加入當前集群后,為了保證在相應(yīng)的服務(wù)器上的正常運行,需要將目標虛擬機操作指令集指定給新的虛擬機,從而使新的虛擬機啟動,以及進行后續(xù)的熱遷移操作。
圖4為本發(fā)明實施例提供的另一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法的流程圖。如圖4所示,在上述實施例的基礎(chǔ)上,當有新的服務(wù)器加入當前集群時,還包括:
s40:獲取新的服務(wù)器的cpu的操作指令集。
s41:重新計算全部操作指令集的最大交集以得到新的最大交集。
s32:判斷新的最大交集是否大于或等于目標虛擬機操作指令集,如果是,則進入s43,否則進入s44。
s43:允許新的服務(wù)器遷入當前集群中。
s44:禁止新的服務(wù)器遷入當前集群中。
可以理解的是,在正常運行中,當前集群有可能有服務(wù)器退出,也有可能有新的服務(wù)器遷入,而新的服務(wù)器的cpu有可能與當前集群中的其它cpu的型號不同,導(dǎo)致對應(yīng)的操作指令集也不相同。因此,需要重新計算當前集群的新的最大交集,如果這個新的最大交集大于或等于目標虛擬機操作指令集,說明將當前集群中的虛擬機運行在這個新的服務(wù)器上能夠?qū)崿F(xiàn)正常的熱遷移,且當前集群中的各虛擬機不需要變動統(tǒng)一的操作指令集;否則,說明目標虛擬機操作指令集不再適合當前集群中的各虛擬機,為了保證集群的穩(wěn)定性,則禁止新的服務(wù)器遷入。
在上述實施例的基礎(chǔ)上,還包括:
判斷目標虛擬機是否遷移至目標服務(wù)器。
如果否,則輸出遷移失敗信息。
在集群運行過程中,不定時的有熱遷移操作,為了能夠?qū)崟r掌握熱遷移操作的過程,本實施例中,當目標虛擬機未成功遷移至目標服務(wù)器時,輸出遷移失敗信息,從而提醒用戶再次遷移??梢岳斫獾氖?,如何將目標虛擬機遷移至目標服務(wù)器,為本領(lǐng)域技術(shù)人員所熟知的技術(shù),本發(fā)明不再贅述。
在上文中,對異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法的實施例進行了詳細說明,本發(fā)明還提供一種與該方法對應(yīng)的異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移裝置。由于裝置部分的實施例與方法部分的實施例相互對應(yīng),因此裝置部分的實施例請參見方法部分的實施例的描述,這里暫不贅述。
圖5為本發(fā)明實施例提供的一種異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移裝置的結(jié)構(gòu)圖。如圖5所示,該裝置包括:
獲取單元10,用于獲取當前集群中全部cpu的操作指令集;
計算單元11,用于計算出全部操作指令集的最大交集以作為當前集群的cpu指令集基線;
啟動單元12,用于在cpu指令集基線范圍內(nèi)選取一個目標虛擬機操作指令集,指定給各虛擬機以啟動當前集群中的各虛擬機;
控制單元13,用于當接收到熱遷移指令時,控制目標虛擬機遷移至目標服務(wù)器中。
本實施例提供的異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移裝置,通過計算得到集群中全部cpu的操作指令集的最大交集,并作為當前集群的cpu指令集基線,然后在該基線范圍內(nèi)選取一個目標虛擬機操作指令集作為當前集群中每個虛擬機的統(tǒng)一指令集。由此可見,當虛擬機在熱遷移時,不需要考慮目標遷移服務(wù)器對應(yīng)的cpu操作指令集,可以直接進行熱遷移,避免了由于異構(gòu)cpu而造成的遷移失敗的問題,從而提高集群的穩(wěn)定性。
作為優(yōu)選地實施方式,當有新的虛擬機加入當前集群時,還包括:
第一判斷單元,用于判斷新的虛擬機的操作指令集是否在cpu指令集基線范圍內(nèi),如果是,則允許新的虛擬機遷入當前集群中,否則,禁止新的虛擬機遷入當前集群中。
作為優(yōu)選地實施方式,啟動單元還用于將目標虛擬機操作指令集指定給新的虛擬機。
作為優(yōu)選地實施方式,當有新的服務(wù)器加入當前集群時,還包括:第二判斷單元;
獲取單元10,還用于獲取新的服務(wù)器的cpu的操作指令集;
計算單元11,還用于重新計算全部操作指令集的最大交集以得到新的最大交集;
第二判斷單元,用于判斷新的最大交集是否大于或等于目標虛擬機操作指令集,如果是,則允許新的服務(wù)器遷入當前集群中,否則,禁止新的服務(wù)器遷入當前集群中。
作為優(yōu)選地實施方式,還包括:
第三判斷單元,用于判斷目標虛擬機是否遷移至目標服務(wù)器,如果否,則輸出遷移失敗信息。
以上對本發(fā)明所提供的異構(gòu)cpu服務(wù)器集群中虛擬機的熱遷移方法及裝置進行了詳細介紹。說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。
還需要說明的是,在本說明書中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。