虛擬機實體熱遷移網路平滑切換的方法及裝置與流程
2023-10-27 17:50:52 1

本發明涉及網絡技術領域,特別涉及一種虛擬機實體熱遷移網路平滑切換的方法及裝置。
背景技術:
VM(虛擬機)和container(容器)是現在常用的虛擬化技術,在它們上面都開發了熱遷移技術。在本文中用虛擬機實體來同時指代虛擬機和容器。
虛擬機實體熱遷移是把正在服務的虛擬機實體從一臺物理伺服器遷移至新的物理伺服器。
虛擬機實體的熱遷移技術是指在保證虛擬機實體上服務正常運行的同時,虛擬機實體在不同的物理伺服器之間進行遷移。熱遷移的優點在於簡化系統維護管理,提高系統負載均衡,增強系統錯誤容忍度和優化系統電源管理。虛擬機實體熱遷移廣泛用於計算機共享,資料庫備份,環境重現,系統硬體維護等應用場合。
為了保證遷移過程中虛擬機實體服務的可用,遷移過程僅有非常短暫的停機時間。遷移的前面階段,服務在源物理伺服器運行,當遷移進行到一定階段,目標物理伺服器已經具備了運行系統的必須資源,經過一個非常短暫的切換,源物理伺服器將控制權轉移到目標物理伺服器,服務在目標物理伺服器上繼續運行。對於服務本身而言,由於切換的時間非常短暫,用戶感覺不到服務的中斷,因而遷移過程對用戶是透明的。在線遷移適用於對服務可用性要求很高的場景。
雖然上述切換的時間非常短暫,而由於網絡路由的切換和虛擬機實體暫時的宕機,原來網絡路由上的報文可能因為無法找到虛擬機實體而丟失。這可能引起系統應用的可靠性問題。而丟失數據報文後導致的數據報重傳會加大瞬時的網絡負載。
現有技術中,試圖利用SDN(軟體定義網絡)交換機、SDN控制器和熱遷移平臺組成的網絡解決上述問題。然而,該方法只能保證在交換通路上的數據報不丟失,卻不能解決物理伺服器內部網卡上已經緩存的數據報丟失問題,SDN控制器是集中式的控制平面,是SDN網絡的瓶頸,利用SDN控制器來緩存數據包可能引起資源競爭;特別在有多個虛擬機實體同時遷移時,資源競爭可能最終導致一些虛擬機實體無法得到服務。
技術實現要素:
本發明的主要目的為提供一種虛擬機實體熱遷移網路平滑切換的方法及裝置,克服熱遷移過程中數據報文丟失的問題,且可以適用於任何形式的乙太網網絡。
本發明提出一種虛擬機實體熱遷移網路平滑切換的方法,包括以下步驟:
虛擬機實體從源物理伺服器熱遷移至目標物理伺服器進入最後階段,虛擬機實體關掉之前,啟動網絡遷移輔助程序緩存發向源物理伺服器上虛擬機實體的數據報;
獲取到虛擬機實體在目標物理伺服器上開機狀態信息後,將緩存的數據報轉發至目標物理伺服器上的虛擬機實體。
進一步地,所述網絡遷移輔助程序獨立於虛擬機實體運行,其包括進程、線程、應用、容器、或者另一虛擬機實體中的至少一種。
進一步地,所述啟動網絡遷移輔助程序緩存發向源物理伺服器上虛擬機實體的數據報的步驟包括:
通過網絡遷移輔助程序配置網卡和/或通過過濾數據報,將發往虛擬機實體的數據報重導向,導入緩衝池中。
進一步地,所述將緩存的數據報發送至目標物理伺服器上的虛擬機實體的步驟包括:
通過網絡遷移輔助程序使用源物理伺服器和目標物理伺服器之間建立的網絡連接轉發緩存的數據報至目標物理伺服器上的虛擬機實體。
進一步地,所述虛擬機實體從源物理伺服器熱遷移至目標物理伺服器的過程中包括:
採用網絡隧道技術搭建網絡架構,並且將虛擬機實體熱遷移的內存拷貝進程、網絡遷移輔助程序共享源物理伺服器和目標物理伺服器通訊的隧道。
本發明還提供了一種虛擬機實體熱遷移網路平滑切換的裝置,包括:
緩存單元,虛擬機實體從源物理伺服器熱遷移至目標物理伺服器進入最後階段,虛擬機實體關掉之前,啟動網絡遷移輔助程序緩存發向源物理伺服器上虛擬機實體的數據報;
轉發單元,獲取到虛擬機實體在目標物理伺服器上開機狀態信息後,將緩存的數據報轉發至目標物理伺服器上的虛擬機實體。
進一步地,所述網絡遷移輔助程序獨立於虛擬機實體運行,其包括進程、線程、應用、容器、或者另一虛擬機實體中的至少一種。
進一步地,所述啟動網絡遷移輔助程序緩存發向源物理伺服器上虛擬機實體的數據報具體包括:
通過網絡遷移輔助程序配置網卡和/或通過過濾數據報,將發往虛擬機實體的數據報重導向,導入緩衝池中。
進一步地,所述轉發單元包括:
轉發子單元,通過網絡遷移輔助程序使用源物理伺服器和目標物理伺服器之間建立的網絡連接轉發緩存的數據報至目標物理伺服器上的虛擬機實體。
進一步地,所述緩存單元還用於:
採用網絡隧道技術搭建網絡架構,並且將虛擬機實體熱遷移的內存拷貝進程、網絡遷移輔助程序共享源物理伺服器和目標物理伺服器通訊的隧道。
本發明中提供的虛擬機實體熱遷移網路平滑切換的方法及裝置,具有以下有益效果:
本發明中提供的虛擬機實體熱遷移網路平滑切換的方法及裝置,虛擬機實體從源物理伺服器熱遷移至目標物理伺服器的過程中,緩存發向源物理伺服器上虛擬機實體的數據報;在熱遷移完成之後,將緩存的數據報轉發至目標物理伺服器上的虛擬機實體,使得熱遷移過程中數據報文不會丟失,且可以適用於任何形式的乙太網網絡;通過網絡遷移輔助程序配置網卡和/或通過過濾數據報,將發往虛擬機實體的數據報重導向,導入緩衝池中,使得物理伺服器內部網卡上已經緩存的數據報也不會丟失;採用網絡隧道技術搭建網絡架構,並且將虛擬機實體熱遷移網路平滑切換的內存拷貝進程、網絡遷移輔助程序共享源物理伺服器和目標物理伺服器通訊的隧道,可以省掉動態產生新路由的時間。
附圖說明
圖1是本發明一實施例中虛擬機實體熱遷移網路平滑切換的原理示意圖;
圖2是本發明一實施例中虛擬機實體熱遷移網路平滑切換的方法步驟示意圖;
圖3是本發明一實施例中虛擬機實體熱遷移網路平滑切換的裝置結構示意圖。
本發明目的的實現、功能特點及優點將結合實施例,參照附圖做進一步說明。
具體實施方式
應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
本技術領域技術人員可以理解,除非特意聲明,這裡使用的單數形式「一」、「一個」、「所述」「上述」和「該」也可包括複數形式。應該進一步理解的是,本發明的說明書中使用的措辭「包括」是指存在所述特徵、整數、步驟、操作、元件、單元、模塊和/或組件,但是並不排除存在或添加一個或多個其他特徵、整數、步驟、操作、元件、單元、模塊、組件和/或它們的組。應該理解,當我們稱元件被「連接」或「耦接」到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這裡使用的「連接」或「耦接」可以包括無線連接或無線耦接。這裡使用的措辭「和/或」包括一個或更多個相關聯的列出項的全部或任一單元和全部組合。
本技術領域技術人員可以理解,除非另外定義,這裡使用的所有術語(包括技術術語和科學術語),具有與本發明所屬領域中的普通技術人員的一般理解相同的意義。還應該理解的是,諸如通用字典中定義的那些術語,應該被理解為具有與現有技術的上下文中的意義一致的意義,並且除非像這裡一樣被特定定義,否則不會用理想化或過於正式的含義來解釋。
VM(虛擬機)和container(容器)是現在常用的虛擬化技術,在它們上面都開發了熱遷移技術。本發明中提供的方法及裝置適用於虛擬機和容器,為了行文方便,用虛擬機實體來同時指代虛擬機和容器。
虛擬機實體熱遷移是把正在服務的虛擬機實體從一臺物理伺服器遷移至新的物理伺服器。
參照圖1,為本發明實施例中虛擬機實體熱遷移網路平滑切換的原理示意圖。
在本實施例中,主要目的為將虛擬機實體從源物理伺服器熱遷移至目標物理伺服器,且保證遷移過程中數據報文不丟失。
源物理伺服器以及目標物理伺服器通過交換機連接伺服器X,該伺服器X可以為雲伺服器。在熱遷移管理平臺準備將源物理伺服器上的虛擬機實體熱遷移至目標物理伺服器上時,伺服器X此時與虛擬機實體A按照原網絡路由有數據通信。在熱遷移的過程中,虛擬機實體A在源物理伺服器上宕機前,網絡遷移輔助程序緩存發向虛擬機實體A的數據報,上述發向虛擬機實體A的數據報可以為伺服器X或者其它終端發向虛擬機實體A的數據報;當虛擬機實體A的所有內存都拷貝至目標物理伺服器後,虛擬機實體A在目標物理伺服器上開機(圖中虛擬機實體A』),網絡遷移輔助程序通過臨時轉發路由轉發緩存的數據報至目標物理伺服器上的虛擬機實體,保證數據報文不會丟失,伺服器X通過新網絡路由與虛擬機實體進行通信,保證網路平滑切換。本實施例中提出的方法使用於任何形式的乙太網網絡。
參照圖2,具體地,本發明實施例中提出的虛擬機實體熱遷移網路平滑切換的方法,包括以下步驟:
步驟S1,虛擬機實體從源物理伺服器熱遷移至目標物理伺服器進入最後階段,虛擬機實體關掉之前,啟動網絡遷移輔助程序緩存發向源物理伺服器上虛擬機實體的數據報。
具體地,通過熱遷移管理平臺發起虛擬機實體熱遷移後,當熱遷移進入最後階段,虛擬機實體宕機以前,在源物理伺服器上啟動網絡遷移輔助程序。上述網絡遷移輔助程序獨立於虛擬機實體運行,其包括進程、線程、應用、容器、或者另一虛擬機實體中的至少一種,通過簡單的編程即可實現上述進程、線程;網絡遷移輔助程序可以擁有自己獨立的網絡身份或者通過虛擬機實體管理器參與網絡通信;網絡遷移輔助程序與熱遷移管理平臺進行通信,得到控制和狀態信息;例如,熱遷移管理平臺將虛擬機實體從源物理伺服器遷移至目標物理伺服器,在遷移的最後階段,啟動網絡遷移輔助程序,通過網絡遷移輔助程序緩存發向源物理伺服器上虛擬機實體的數據報;當熱遷移管理平臺控制虛擬機實體在目標物理伺服器上開機後,將開機狀態信息發送至網路遷移輔助程序,網路遷移輔助程序接收開機狀態信息。在遷移的最後階段,虛擬機實體關掉之前,啟動網絡遷移輔助程序緩存發向源物理伺服器上虛擬機實體的數據報,防止數據報丟失,為之後的網路平滑切換打下基礎。
當熱遷移進入最後階段,虛擬機實體宕機以前,把去虛擬機實體的網絡流量無縫導入到自己的緩衝池中。不僅要考慮在網路上正在傳輸的數據報,還要考慮已經到達伺服器網卡,但是還在網卡緩存沒有到達虛擬機的數據報。
因此,當熱遷移進入最後階段,虛擬機實體宕機以前,通過網絡遷移輔助程序配置網卡和/或通過軟體過濾數據報,將發往虛擬機實體的數據報重導向,把去虛擬機實體的網絡流量無縫導入到自己的緩衝池中。具體地,如果網卡硬體支持無縫切換,網絡遷移輔助程序配置網卡,網卡需要在硬體上有相應支持,避免在網卡內的數據報被丟棄。如果沒有網卡硬體支持,可以在軟體上過濾數據報,把發往該虛擬機實體的數據報重導向。
進一步地,當網卡上的流量被重定向到網絡遷移輔助程序的緩衝池後,虛擬機實體宕機。
完成虛擬機實體內存從源物理伺服器拷貝至目標物理伺服器後,虛擬機實體在目標物理伺服器上開機。
當虛擬機實體的內存從源物理伺服器拷貝至目標物理伺服器後,虛擬機實體在目標物理伺服器上開機。此時,熱遷移管理平臺將開機信息通知網絡遷移輔助程序,網絡遷移輔助程序則可以獲取到虛擬機實體在目標物理伺服器上開機的狀態信息。
步驟S2,獲取到虛擬機實體在目標物理伺服器上開機狀態信息後,將緩存的數據報轉發至目標物理伺服器上的虛擬機實體。
虛擬機實體在目標物理伺服器上開機後,網絡遷移輔助程序使用源物理伺服器和目標物理伺服器之間建立的網絡連接轉發緩存的數據報至目標物理伺服器上的虛擬機實體。虛擬機實體重啟後,網絡路由也會進行更新,新產生的數據報將不會從原來的網絡通路去源物理伺服器,之後,虛擬機實體從新網絡路由上接收數據報。
在原來網絡通路上的數據報全部進入網絡遷移輔助程序的緩衝池,並轉發給目標物理伺服器上的虛擬機實體後,網絡遷移輔助程序退出服務。網絡遷移輔助程序可以等待一個足夠長的時間來保證沒有數據報被丟棄,也可以由虛擬管理平臺根據事件來通知網絡遷移輔助程序退出運行。
進一步地,在本實施例中,如果沒有使用隧道技術的網絡,當虛擬機實體在目標物理伺服器上重新開機後,虛擬機實體和網絡遷移輔助程序之間的網絡路由需要動態產生,將引起一定時延。因此,在本實施例中,在虛擬機實體從源物理伺服器熱遷移至目標物理伺服器的過程中,採用網絡隧道技術搭建網絡架構,並且將虛擬機實體熱遷移的內存拷貝進程、網絡遷移輔助程序共享源物理伺服器和目標物理伺服器通訊的隧道,便可以節省動態產生新路由的時間。這是因為內存拷貝進程進行通信的時間比網絡遷移輔助程序要早。網絡隧道可以是qinq(又稱double vlan,雙虛擬區域網標籤),overlay(網絡層疊加),或者其它類似技術。
為了進一步對本發明實施例中的方法進行說明,本發明實施例中還提出了一種虛擬機實體熱遷移網路平滑切換的裝置。
參照圖3,本發明實施例中還提供了一種虛擬機實體熱遷移網路平滑切換的裝置,具體包括:
緩存單元10,虛擬機實體從源物理伺服器熱遷移至目標物理伺服器進入最後階段,虛擬機實體關掉之前,啟動網絡遷移輔助程序緩存發向源物理伺服器上虛擬機實體的數據報。
具體地,通過熱遷移管理平臺發起虛擬機實體熱遷移後,當熱遷移進入最後階段,虛擬機實體宕機以前,在源物理伺服器上啟動網絡遷移輔助程序。上述網絡遷移輔助程序獨立於虛擬機實體運行,其包括進程、線程、應用、容器、或者另一虛擬機實體中的至少一種,網絡遷移輔助程序可以擁有自己獨立的網絡身份或者通過虛擬機實體管理器參與網絡通信;網絡遷移輔助程序與熱遷移管理平臺進行通信,得到控制和狀態信息。在遷移的最後階段,虛擬機實體關掉之前,啟動網絡遷移輔助程序緩存發向源物理伺服器上虛擬機實體的數據報,防止數據報丟失。
當熱遷移進入最後階段,虛擬機實體宕機以前,把去虛擬機實體的網絡流量無縫導入到自己的緩衝池中。不僅要考慮在網路上正在傳輸的數據報,還要考慮已經到達伺服器網卡,但是還在網卡緩存沒有到達虛擬機的數據報。
因此,當熱遷移進入最後階段,虛擬機實體宕機以前,通過網絡遷移輔助程序配置網卡和/或通過軟體過濾數據報,將發往虛擬機實體的數據報重導向,把去虛擬機實體的網絡流量無縫導入到自己的緩衝池中。具體地,如果網卡硬體支持無縫切換,網絡遷移輔助程序配置網卡,網卡需要在硬體上有相應支持,避免在網卡內的數據報被丟棄。如果沒有網卡硬體支持,可以在軟體上過濾數據報,把發往該虛擬機實體的數據報重導向。
進一步地,當網卡上的流量被重定向到網絡遷移輔助程序的緩衝池後,虛擬機實體宕機。
完成虛擬機實體內存從源物理伺服器拷貝至目標物理伺服器後,虛擬機實體在目標物理伺服器上開機。
當虛擬機實體的內存從源物理伺服器拷貝至目標物理伺服器後,虛擬機實體在目標物理伺服器上開機。此時,熱遷移管理平臺將開機信息通知網絡遷移輔助程序,網絡遷移輔助程序則可以獲取到虛擬機實體在目標物理伺服器上開機的狀態信息。
轉發單元20,獲取到虛擬機實體在目標物理伺服器上開機狀態信息後,將緩存的數據報轉發至目標物理伺服器上的虛擬機實體。
上述轉發單元20包括轉發子單元,虛擬機實體在目標物理伺服器上開機後,轉發子單元通過網絡遷移輔助程序使用源物理伺服器和目標物理伺服器之間建立的網絡連接轉發緩存的數據報至目標物理伺服器上的虛擬機實體。虛擬機實體重啟後,網絡路由也會進行更新,新產生的數據報將不會再從原來的網絡通路去源物理伺服器;之後,虛擬機實體從新網絡路由上接收伺服器發送的數據報。
在原來網絡通路上的數據報全部進入網絡遷移輔助程序的緩衝池,並轉發給目標物理伺服器上的虛擬機實體後,網絡遷移輔助程序退出服務。網絡遷移輔助程序可以等待一個足夠長的時間來保證沒有數據報被丟棄,也可以由虛擬管理平臺根據事件來通知網絡遷移輔助程序退出運行。
進一步地,在本實施例中,如果沒有使用隧道技術的網絡,當虛擬機實體在目標物理伺服器上重新開機後,虛擬機實體和網絡遷移輔助程序之間的網絡路由需要動態產生,將引起一定時延。因此,在本實施例中,在虛擬機實體從源物理伺服器熱遷移至目標物理伺服器的過程中,採用網絡隧道技術搭建網絡架構,並且將虛擬機實體熱遷移的內存拷貝進程、網絡遷移輔助程序共享源物理伺服器和目標物理伺服器通訊的隧道,便可以節省動態產生新路由的時間。這是因為內存拷貝進程進行通信的時間比網絡遷移輔助程序要早。網絡隧道可以是qinq(又稱double vlan,雙虛擬區域網標籤),overlay(網絡層疊加),或者其它類似技術。
綜上所述,為本發明實施例中提供的虛擬機實體熱遷移網路平滑切換的方法及裝置,虛擬機實體從源物理伺服器熱遷移至目標物理伺服器的過程中,緩存伺服器發向源物理伺服器上虛擬機實體的數據報;在熱遷移完成之後,將緩存的數據報轉發至目標物理伺服器上的虛擬機實體,使得熱遷移過程中數據報文不會丟失,網路切換平滑,且可以適用於任何形式的乙太網網絡;通過網絡遷移輔助程序配置網卡和/或通過過濾數據報,將發往虛擬機實體的數據報重導向,導入緩衝池中,使得物理伺服器內部網卡上已經緩存的數據報也不會丟失;採用網絡隧道技術搭建網絡架構,並且將虛擬機實體熱遷移的內存拷貝進程、網絡遷移輔助程序共享源物理伺服器和目標物理伺服器通訊的隧道,可以省掉動態產生新路由的時間。
本領域技術人員可以理解,本發明包括涉及用於執行本申請中所述操作中的一項或多項的設備。這些設備可以為所需的目的而專門設計和製造,或者也可以包括通用計算機中的已知設備。這些設備具有存儲在其內的電腦程式,這些電腦程式選擇性地激活或重構。這樣的電腦程式可以被存儲在設備(例如,計算機)可讀介質中或者存儲在適於存儲電子指令並分別耦聯到總線的任何類型的介質中,所述計算機可讀介質包括但不限於任何類型的盤(包括軟盤、硬碟、光碟、CD‐ROM和磁光碟)、ROM(Read‐Only Memory,只讀存儲器)、RAM(Random Access Memory,隨即存儲器)、EPROM(Erasable Programmable Read‐Only Memory,可擦寫可編程只讀存儲器)、EEPROM(Electrically Erasable Programmable Read‐Only Memory,電可擦可編程只讀存儲器)、快閃記憶體、磁性卡片或光線卡片。也就是,可讀介質包括由設備(例如,計算機)以能夠讀的形式存儲或傳輸信息的任何介質。
本技術領域技術人員可以理解,可以用電腦程式指令來實現這些結構圖和/或框圖和/或流圖中的每個框以及這些結構圖和/或框圖和/或流圖中的框的組合。本技術領域技術人員可以理解,可以將這些電腦程式指令提供給通用計算機、專業計算機或其他可編程數據處理方法的處理器來實現,從而通過計算機或其他可編程數據處理方法的處理器來執行本發明公開的結構圖和/或框圖和/或流圖的框或多個框中指定的方案。
本技術領域技術人員可以理解,本發明中已經討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進一步地,具有本發明中已經討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進一步地,現有技術中的具有與本發明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
以上所述僅為本發明的優選實施例,並非因此限制本發明的專利範圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護範圍內。