本技術涉及虛擬化,尤其涉及一種計算系統(tǒng)、虛擬化實例熱遷移方法及相關設備。
背景技術:
1、隨著虛擬化技術的發(fā)展,虛擬化實例的應用也越來越廣泛。比如,在包括多個計算設備的集群中(如數(shù)據(jù)中心等),可以部署多個虛擬機,該多個虛擬機在運行過程中可以提供相應的業(yè)務服務。
2、實際應用場景中,經(jīng)常需要將虛擬化實例在不同計算設備之間進行遷移。比如,部分計算設備可能需要下電維護、或者部分計算設備上的運行的虛擬化實例過多等,因此,需要將該計算設備上的虛擬化實例遷移至其它計算設備上運行。
3、目前,通常是采用熱遷移的方式將虛擬化實例在不同計算設備之間進行遷移,以減少虛擬化實例的業(yè)務中斷時間,降低用戶對于虛擬化實例發(fā)生遷移的感知。但是,在將計算設備1上的虛擬化實例熱遷移至計算設備2的過程中,通常需要將計算設備1中分配給虛擬化實例的內存所存儲的數(shù)據(jù),通過網(wǎng)絡傳輸至計算設備2,以便虛擬化實例在計算設備2上基于傳輸?shù)膬却鏀?shù)據(jù)恢復業(yè)務。通常情況下,內存數(shù)據(jù)從計算設備1遷移至計算設備2所需的耗時較長,這會導致虛擬化實例的業(yè)務中斷時間過長,從而導致用戶能夠明顯的感知到業(yè)務發(fā)生中斷,降低用戶體驗。
技術實現(xiàn)思路
1、本技術提供了一種計算系統(tǒng),用于縮短虛擬化實例的業(yè)務中斷時長,提高用戶體驗。此外,本技術還提供了一種虛擬化實例熱遷移方法、裝置、計算機可讀存儲介質以及計算機程序產(chǎn)品。
2、第一方面,本技術提供了一種計算系統(tǒng),該計算系統(tǒng)包括多個計算設備以及共享內存,該多個計算設備中的第一計算設備以及第二計算設備能夠訪問該共享內存,并且,第一計算設備上運行第一虛擬化實例,該第一虛擬化實例對應的內存空間位于該共享內存。第一計算設備用于響應遷移請求,該遷移請求例如可以是用戶可以客戶端發(fā)送給該第一計算設備等,以請求第一計算設備對其上的第一虛擬化實例進行熱遷移,在響應該遷移請求時,將第一虛擬化實例的狀態(tài)信息、配置信息以及第一虛擬化實例對應的內存空間的信息發(fā)送至第二計算設備。其中,狀態(tài)信息例如可以是包括支持第一虛擬化實例運行的處理器的運行狀態(tài)以及第一虛擬化實例針對虛擬設備的使用狀態(tài)等;配置信息可以包括第一虛擬化實例的資源配置信息以及第一虛擬化實例用于向內存空間進行尋址所相關的信息等;內存空間的信息,例如可以包括內存空間的物理地址、尺寸等信息。第二計算設備,用于根據(jù)接收到的狀態(tài)信息、配置信息以及內存空間的信息,啟動第二虛擬化實例,該第二虛擬化實例的狀態(tài)(對于處理器以及虛擬設備的使用狀態(tài)信息)與第一虛擬化實例的狀態(tài)相同、第二虛擬化實例的配置(資源配置、尋址配置等)與第一虛擬化實例的配置相同,且第二虛擬化實例對應的內存空間與第一虛擬化實例對應的內存空間相同(即第一虛擬化實例與第二虛擬化實例分配到共享內存中的同一內存空間)。
3、由于第二計算設備也能訪問共享內存中分配給第一虛擬化實例的內存空間,因此,第一計算設備僅需將第一虛擬化實例的狀態(tài)信息、配置信息以及內存空間的信息發(fā)送給第二計算設備,無需向第二計算設備發(fā)送內存空間中的數(shù)據(jù),并且,狀態(tài)信息、配置信息以及內存空間的信息的數(shù)據(jù)量通常較小,這可以有效縮短第一虛擬化實例在第一計算設備與第二計算設備之間進行熱遷移的耗時,也即可以縮減第一虛擬化實例的業(yè)務中斷時長,從而可以有效降低用戶對于第一虛擬化實例的業(yè)務中斷感知,提高用戶體驗。實際應用時,虛擬化實例的業(yè)務中斷時長可以被縮減至秒級甚至百毫秒級別,這可以實現(xiàn)用戶無感知第一虛擬化實例的熱遷移過程。另外,第二計算設備通過訪問共享內存,即可獲得第一虛擬化實例在運行過程中所需讀寫的數(shù)據(jù),這不僅可以保障第二計算設備獲取該數(shù)據(jù)的成功率,也即提高第一虛擬化實例熱遷移的成功率(避免大量的內存數(shù)據(jù)在不同計算設備之間發(fā)生傳輸失敗),而且,第二計算設備訪問共享內存中數(shù)據(jù)的時延較低,這可以保證遷移至第二計算設備上的虛擬化實例在運行時的性能。
4、在一種可能的實施方式中,計算系統(tǒng)中的共享內存通過總線分別與第一計算設備、第二計算設備連接,并且,第一計算設備與第二計算設備通過該總線能夠直接訪問共享內存中的內存空間。如此,第一計算設備或者第二計算設備通過該總線訪問共享內存的時延保持在較低的水平,如訪問共享內存的時延保持在百毫秒級別。
5、在一種可能的實施方式中,第一虛擬化實例包括虛擬機、或者容器。
6、在一種可能的實施方式中,第一虛擬化示例對應的內存空間的信息包括該內存空間的物理地址,則,第二計算設備在根據(jù)狀態(tài)信息、配置信息、及內存空間的信息啟動第二虛擬化實例時,具體為根據(jù)該配置信息以及內存空間的信息,建立第二虛擬化實例訪問內存時的虛擬地址與該內存空間的物理地址之間的映射,該映射能夠使得第二虛擬化實例訪問得到內存空間中存儲的數(shù)據(jù),從而第二計算設備根據(jù)該狀態(tài)信息以及所建立的映射,啟動第二虛擬化實例。如此,第二虛擬化實例能夠基于第一虛擬化實例在中斷時所具有的狀態(tài)以及所讀寫的內存數(shù)據(jù),繼續(xù)執(zhí)行第一虛擬化實例所中斷的業(yè)務,以此可以實現(xiàn)虛擬化實例的熱遷移。
7、第二方面,本技術提供一種計算系統(tǒng),該計算系統(tǒng)包括多個計算設備,該多個計算設備中的第一計算設備包括共享內存,并且,該多個計算設備中的第二計算設備能夠訪問該共享內存,第一計算設備上運行第一虛擬化實例,該第一虛擬化實例對應的內存空間位于該共享內存。第一計算設備用于響應遷移請求,該遷移請求例如可以是用戶可以客戶端發(fā)送給該第一計算設備等,以請求第一計算設備對其上的第一虛擬化實例進行熱遷移,在響應該遷移請求時,將第一虛擬化實例的狀態(tài)信息、配置信息以及第一虛擬化實例對應的內存空間的信息發(fā)送至第二計算設備。其中,狀態(tài)信息例如可以是包括支持第一虛擬化實例運行的處理器的運行狀態(tài)以及第一虛擬化實例針對虛擬設備的使用狀態(tài)等;配置信息可以包括第一虛擬化實例的資源配置信息以及第一虛擬化實例用于向內存空間進行尋址所相關的信息等;內存空間的信息,例如可以包括內存空間的物理地址、尺寸等信息。第二計算設備,用于根據(jù)接收到的狀態(tài)信息、配置信息以及內存空間的信息,啟動第二虛擬化實例,該第二虛擬化實例的狀態(tài)(對于處理器以及虛擬設備的使用狀態(tài)信息)與第一虛擬化實例的狀態(tài)相同、第二虛擬化實例的配置(資源配置、尋址配置等)與第一虛擬化實例的配置相同,且第二虛擬化實例對應的內存空間與第一虛擬化實例對應的內存空間相同(即第一虛擬化實例與第二虛擬化實例分配到共享內存中的同一內存空間)。
8、由于第二計算設備也能訪問共享內存中分配給第一虛擬化實例的內存空間,因此,第一計算設備僅需將第一虛擬化實例的狀態(tài)信息、配置信息以及內存空間的信息發(fā)送給第二計算設備,無需向第二計算設備發(fā)送內存空間中的數(shù)據(jù),并且,狀態(tài)信息、配置信息以及內存空間的信息的數(shù)據(jù)量通常較小,這可以有效縮短第一虛擬化實例在第一計算設備與第二計算設備之間進行熱遷移的耗時,也即可以縮減第一虛擬化實例的業(yè)務中斷時長,從而可以有效降低用戶對于第一虛擬化實例的業(yè)務中斷感知,提高用戶體驗。實際應用時,虛擬化實例的業(yè)務中斷時長可以被縮減至秒級甚至百毫秒級別,這可以實現(xiàn)用戶無感知第一虛擬化實例的熱遷移過程。另外,第二計算設備通過訪問共享內存,即可獲得第一虛擬化實例在運行過程中所需讀寫的數(shù)據(jù),這不僅可以保障第二計算設備獲取該數(shù)據(jù)的成功率,也即提高第一虛擬化實例熱遷移的成功率(避免大量的內存數(shù)據(jù)在不同計算設備之間發(fā)生傳輸失敗),而且,第二計算設備訪問共享內存中數(shù)據(jù)的時延較低,這可以保證遷移至第二計算設備上的虛擬化實例在運行時的性能。
9、第三方面,本技術提供一種虛擬化實例熱遷移方法,該方法應用于計算系統(tǒng),該計算系統(tǒng)包括第一計算設備、第二計算設備、共享內存,并且,第一計算設備以及第二計算設備能夠訪問共享內存,該第一計算設備上運行第一虛擬化實例,該第一虛擬化實例對應的內存空間位于共享內存;其中,在遷移虛擬化實例的過程中,第一計算設備響應遷移請求,將第一虛擬化實例的狀態(tài)信息、配置信息、及內存空間的信息發(fā)送至第二計算設備;第二計算設備根據(jù)狀態(tài)信息、配置信息、及內存空間的信息啟動第二虛擬化實例,第二虛擬化實例的狀態(tài)與第一虛擬化實例的狀態(tài)相同、第二虛擬化實例的配置與第一虛擬化實例的配置相同,且第二虛擬化實例對應的內存空間與第一虛擬化實例對應的內存空間相同。
10、在一種可能的實施方式中,共享內存通過總線分別與第一計算設備、第二計算設備連接,第一計算設備與第二計算設備通過該總線直接訪問共享內存中的內存空間。
11、在一種可能的實施方式中,第一虛擬化實例包括虛擬機、或者容器。
12、在一種可能的實施方式中,內存空間的信息包括內存空間的物理地址;則,第二計算設備根據(jù)狀態(tài)信息、配置信息、及內存空間的信息啟動第二虛擬化實例,包括:第二計算設備根據(jù)配置信息以及內存空間的信息,建立第二虛擬化實例訪問內存時的虛擬地址與內存空間的物理地址之間的映射,并根據(jù)該狀態(tài)信息、所建立的映射,啟動第二虛擬化實例。
13、第三方面提供的虛擬化實例熱遷移方法,對應于第一方面提供的計算系統(tǒng),故第三方面以及第三方面任一種可能實現(xiàn)方式中的虛擬化實例熱遷移方法所具有的技術效果,可以參照第一方面以及第一方面中相應實現(xiàn)方式所具有的技術效果,在此不做贅述。
14、第四方面,本技術提供一種虛擬化實例熱遷移方法,該方法應用于計算系統(tǒng),該計算系統(tǒng)包括第一計算設備、第二計算設備,第一計算設備包括共享內存,第二計算設備能夠訪問共享內存,第一計算設備上運行第一虛擬化實例,第一虛擬化實例對應的內存空間位于共享內存;在對虛擬化實例進行熱遷移的過程中,第一計算設備響應遷移請求,將第一虛擬化實例的狀態(tài)信息、配置信息以及內存空間的信息發(fā)送至第二計算設備;第二計算設備根據(jù)狀態(tài)信息、配置信息、及內存空間的信息啟動第二虛擬化實例,第二虛擬化實例的狀態(tài)與第一虛擬化實例的狀態(tài)相同、第二虛擬化實例的配置與第一虛擬化實例的配置相同,且第二虛擬化實例對應的內存空間與第一虛擬化實例對應的內存空間相同。
15、第四方面提供的虛擬化實例熱遷移方法,對應于第二方面提供的計算系統(tǒng),故第四方面中的虛擬化實例熱遷移方法所具有的技術效果,可以參照第二方面中相應實現(xiàn)方式所具有的技術效果,在此不做贅述。
16、第五方面,本技術提供一種虛擬化實例熱遷移裝置,該虛擬化實例熱遷移裝置應用于計算系統(tǒng),計算系統(tǒng)包括第一計算設備、第二計算設備、共享內存,第一計算設備以及第二計算設備能夠訪問共享內存,第一計算設備上運行第一虛擬化實例,第一虛擬化實例對應的內存空間位于共享內存;虛擬化實例熱遷移裝置包括:
17、發(fā)送模塊,用于響應遷移請求,將第一虛擬化實例的狀態(tài)信息、配置信息、及內存空間的信息發(fā)送至第二計算設備;
18、啟動模塊,用于根據(jù)狀態(tài)信息、配置信息、及內存空間的信息啟動第二虛擬化實例,第二虛擬化實例的狀態(tài)與第一虛擬化實例的狀態(tài)相同、第二虛擬化實例的配置與第一虛擬化實例的配置相同,且第二虛擬化實例對應的內存空間與第一虛擬化實例對應的內存空間相同。
19、在一種可能的實施方式中,共享內存通過總線分別與第一計算設備、第二計算設備連接,第一計算設備與第二計算設備通過總線直接訪問共享內存中的內存空間。
20、在一種可能的實施方式中,第一虛擬化實例包括虛擬機、或者容器。
21、在一種可能的實施方式中,內存空間的信息包括內存空間的物理地址;則,啟動模塊,具體用于根據(jù)配置信息以及內存空間的信息,建立第二虛擬化實例訪問內存時的虛擬地址與內存空間的物理地址之間的映射,并根據(jù)該狀態(tài)信息、所建立的映射,啟動第二虛擬化實例。
22、第六方面,本技術提供一種虛擬化實例熱遷移裝置,該虛擬化實例熱遷移裝置應用于計算系統(tǒng),計算系統(tǒng)包括第一計算設備、第二計算設備,第一計算設備包括共享內存,第二計算設備能夠訪問共享內存,第一計算設備上運行第一虛擬化實例,第一虛擬化實例對應的內存空間位于共享內存;虛擬化實例熱遷移裝置包括:發(fā)送模塊,用于響應遷移請求,將第一虛擬化實例的狀態(tài)信息、配置信息以及內存空間的信息發(fā)送至第二計算設備;啟動模塊,用于根據(jù)狀態(tài)信息、配置信息、及內存空間的信息啟動第二虛擬化實例,第二虛擬化實例的狀態(tài)與第一虛擬化實例的狀態(tài)相同、第二虛擬化實例的配置與第一虛擬化實例的配置相同,且第二虛擬化實例對應的內存空間與第一虛擬化實例對應的內存空間相同。
23、第七方面,本技術提供一種計算機可讀存儲介質,所述計算機可讀存儲介質中存儲有指令,當其在計算設備上運行時,使得計算設備執(zhí)行上述第一方面或第一方面的任一種實現(xiàn)方式所述的方法,或者使得計算設備執(zhí)行上述第二方面所述的方法。
24、第八方面,本技術提供了一種包含指令的計算機程序產(chǎn)品,當其在計算設備上運行時,使得計算設備執(zhí)行上述第一方面或第一方面的任一種實現(xiàn)方式所述的方法,或者使得計算設備執(zhí)行上述第二方面所述的方法。
25、本技術在上述各方面提供的實現(xiàn)方式的基礎上,還可以進行進一步組合以提供更多實現(xiàn)方式。