本發(fā)明涉及通信技術(shù)領域,特別是涉及到一種dma隊列切換方法和系統(tǒng)。
背景技術(shù):
現(xiàn)有的虛擬化管理系統(tǒng)如圖1所示,包括虛擬化管理平臺、網(wǎng)卡和虛擬化實體,虛擬化實體可以是虛擬機、容器(container)等。網(wǎng)卡中高速物理接口、虛擬硬交換、流分類器、直接內(nèi)存訪問(directmemoryaccess,dma)隊列、虛擬功能(virtualfunction,vf)(或物理功能(physicalfunction,pf))組成數(shù)據(jù)通路,其中,每一個dma隊列服務一個虛擬化實體,如dma隊列1、dma隊列2和dma隊列3分別服務于虛擬化實體1、虛擬化實體2和虛擬化實體3。數(shù)據(jù)報從局域網(wǎng)進入網(wǎng)卡后,網(wǎng)卡中的內(nèi)置交換邏輯和流分類器確定數(shù)據(jù)報要去的dma隊列的隊列號,并且該隊列號被添加為數(shù)據(jù)報的一個屬性域。數(shù)據(jù)報在網(wǎng)卡的數(shù)據(jù)通路中繼續(xù)被處理,當處理結(jié)束后,數(shù)據(jù)報被輸出網(wǎng)卡的數(shù)據(jù)通路,寫回虛擬化實體所在的物理服務器的內(nèi)存。數(shù)據(jù)報輸出網(wǎng)卡的數(shù)據(jù)通路后,虛擬化實體有兩種工作模式:一種是數(shù)據(jù)報通過虛擬化管理平臺的虛擬軟交換轉(zhuǎn)發(fā)給虛擬化實體,如圖1中的虛擬化實體3;一種是虛擬化實體直接擁有dma隊列,也就是說,數(shù)據(jù)報直接從網(wǎng)卡流向虛擬化實體,不經(jīng)由虛擬化管理平臺轉(zhuǎn)發(fā),如圖1中的虛擬化實體1和虛擬化實體2,單根輸入/輸出虛擬化(sr‐iov)和container直接操作dma隊列就屬于這種模式。
在數(shù)據(jù)報傳輸過程中,有時需要進行虛擬化實體的熱遷移。虛擬化實體的熱遷移是指在保證虛擬化實體服務正常運行的同時,將虛擬化實體在不同的物理服務器之間進行遷移。為了保證熱遷移過程中虛擬化實體服務的可用,熱遷移過程僅有非常短暫的停機時間。熱遷移的前面階段,服務在源服務器上運行,當熱遷移進行到一定階段,目的服務器已經(jīng)具備了運行系統(tǒng)的必須資源,經(jīng)過一個非常短暫的切換,源服務器將控制權(quán)轉(zhuǎn)移到目的服務器,服務在目的服務器上繼續(xù)運行。對于服務本身而言,由于切換的時間非常短暫,用戶感覺不到服務的中斷,因而熱遷移過程對用戶是透明的。
雖然上述切換的時間非常短暫,然而,在熱遷移過程中,一部分數(shù)據(jù)報已經(jīng)進入網(wǎng)卡的緩存,當虛擬化實體短暫宕機時,這部分數(shù)據(jù)報由于無法到達虛擬化實體而丟失。這可能引起系統(tǒng)應用的可靠性問題,而丟失數(shù)據(jù)報后導致的數(shù)據(jù)報重傳會加大瞬時的網(wǎng)絡負載。
隨著網(wǎng)卡技術(shù)的發(fā)展,設計者把越來越多的數(shù)據(jù)報處理功能集成進網(wǎng)卡,來加速主機cpu。這需要網(wǎng)卡緩存一部分數(shù)據(jù)報來進行報文處理。特別隨著網(wǎng)絡功能虛擬化(networkfunctionvirtualization,nfv)技術(shù)的發(fā)展,業(yè)界正著力把特征匹配、深度包解析、數(shù)據(jù)去冗余等功能遷移到帶有可編程器件的智能網(wǎng)卡(smartnic)上,這進一步加大了數(shù)據(jù)報的緩存需求。當虛擬化實體宕機的時候,這些緩存的數(shù)據(jù)報可能因為到達不了虛擬化實體而丟失。
為了解決上述問題,現(xiàn)有技術(shù)中提出了一種虛擬化實體遷移方法,通過虛擬化管理平臺將待遷移的虛擬化實體的流量重定向至網(wǎng)絡遷移輔助實體來實現(xiàn)虛擬化實體的無縫遷移,該方案要求在發(fā)起切換命令之前,數(shù)據(jù)報都送往待遷移的虛擬化實體;在發(fā)起切換命令后,數(shù)據(jù)報都送往網(wǎng)絡遷移輔助程序。而且,必須保證既不能把切換命令后的數(shù)據(jù)報再發(fā)往待遷移的虛擬化實體,又不能把切換命令前的數(shù)據(jù)報發(fā)往網(wǎng)絡遷移輔助程序。
然而,上述方案只能適用于數(shù)據(jù)流通過虛擬化管理平臺的應用場景(如圖1中的虛擬化實體3的工作模式),此時虛擬化管理平臺才可以對數(shù)據(jù)流進行重定向操作。但是,對于數(shù)據(jù)流不通過虛擬化管理平臺的應用場景(如圖1中虛擬化實體1和2的工作模式),比如sr‐iov和container直接操作dma隊列的情形,虛擬化管理平臺就無法對數(shù)據(jù)流進行重定向,無法實現(xiàn)虛擬化實體的無縫遷移。
綜上所述,現(xiàn)有的虛擬化實體遷移方案,適用范圍窄,無法對數(shù)據(jù)流不通過虛擬化管理平臺的應用場景實現(xiàn)虛擬化實體的無縫遷移。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的為提供一種dma隊列切換方法和系統(tǒng),旨在解決現(xiàn)有技術(shù)中無法對數(shù)據(jù)流不通過虛擬化管理平臺的應用場景實現(xiàn)虛擬化實體的無縫遷移的技術(shù)問題。
為達以上目的,本發(fā)明提出一種dma隊列切換方法,所述方法包括以下步驟:
虛擬化管理平臺向網(wǎng)卡側(cè)的切換模塊發(fā)送切換命令;
所述切換模塊根據(jù)所述切換命令執(zhí)行切換操作,以將所述網(wǎng)卡的數(shù)據(jù)通路中擬傳輸至待遷移的虛擬化實體的數(shù)據(jù)報導向預置的服務于網(wǎng)絡遷移輔助實體的熱備dma隊列;
當切換完成后,所述虛擬化管理平臺對所述虛擬化實體進行宕機操作。
進一步地,所述切換模塊根據(jù)所述切換命令進行切換操作的步驟包括:
所述切換模塊接收到所述切換命令后,判斷當前是否有數(shù)據(jù)報傳輸至所述虛擬化實體;
若是,則待所述數(shù)據(jù)報傳輸完畢后才執(zhí)行切換操作;
若否,則立即執(zhí)行切換操作。
進一步地,所述切換模塊設于所述數(shù)據(jù)通路的末端,所述方法還包括:
當所述數(shù)據(jù)報全部通過所述切換模塊所在位置時,所述切換模塊則判決所述數(shù)據(jù)報傳輸完畢。
進一步地,所述切換模塊設于所述數(shù)據(jù)通路的中部,所述方法還包括:
當所述數(shù)據(jù)報通過所述切換模塊所在位置時,所述切換模塊記錄所述數(shù)據(jù)報的標記;
根據(jù)所述標記跟蹤所述數(shù)據(jù)報,當所述數(shù)據(jù)報全部輸出所述數(shù)據(jù)通路時,所述切換模塊則判決所述數(shù)據(jù)報傳輸完畢。
進一步地,所述切換模塊根據(jù)所述切換命令執(zhí)行切換操作的步驟之后還包括:
所述切換模塊通知所述虛擬化管理平臺切換完成。
本發(fā)明同時提出一種dma隊列切換系統(tǒng),所述系統(tǒng)包括虛擬化管理平臺和網(wǎng)卡側(cè)的切換模塊,其中:
所述虛擬化管理平臺,用于向所述切換模塊發(fā)送切換命令;
所述切換模塊,用于根據(jù)所述切換命令執(zhí)行切換操作,以將所述網(wǎng)卡的數(shù)據(jù)通路中擬傳輸至待遷移的虛擬化實體的數(shù)據(jù)報導向預置的服務于網(wǎng)絡遷移輔助實體的熱備dma隊列;
所述虛擬化管理平臺還用于:當切換完成后,對所述虛擬化實體進行宕機操作。
進一步地,所述切換模塊用于:
接收到所述切換命令后,判斷當前是否有數(shù)據(jù)報傳輸至所述虛擬化實體;若是,則待所述數(shù)據(jù)報傳輸完畢后才執(zhí)行切換操作;若否,則立即執(zhí)行切換操作。
進一步地,所述切換模塊設于所述數(shù)據(jù)通路的末端,所述切換模塊還用于:當所述數(shù)據(jù)報全部通過所述切換模塊所在位置時,判決所述數(shù)據(jù)報傳輸完畢。
進一步地,所述切換模塊設于所述數(shù)據(jù)通路的中部,所述切換模塊還用于:
當所述數(shù)據(jù)報通過所述切換模塊所在位置時,記錄所述數(shù)據(jù)報的標記;根據(jù)所述標記跟蹤所述數(shù)據(jù)報,當所述數(shù)據(jù)報全部輸出所述數(shù)據(jù)通路時,判決所述數(shù)據(jù)報傳輸完畢。
進一步地,所述切換模塊還用于:當執(zhí)行切換操作后,通知所述虛擬化管理平臺切換完成。
本發(fā)明實施例所提供的一種dma隊列切換方法,通過在網(wǎng)卡側(cè)設置切換模塊,并預置服務于網(wǎng)絡遷移輔助實體的熱備dma隊列,由切換模塊根據(jù)虛擬化管理平臺的切換命令執(zhí)行切換操作,從而將網(wǎng)卡的數(shù)據(jù)通路中擬傳輸至待遷移的虛擬化實體的數(shù)據(jù)報導向預置的熱備dma隊列,并經(jīng)由熱備dma隊列將數(shù)據(jù)報導向網(wǎng)絡遷移輔助實體。從而,即使在數(shù)據(jù)流不通過虛擬化管理平臺的應用場景下,虛擬化管理平臺也能在網(wǎng)卡硬件的協(xié)助下,將待遷移的虛擬化實體的流量重定向至網(wǎng)絡遷移輔助實體,實現(xiàn)虛擬化實體的無縫遷移,使得虛擬化實體的熱遷移在網(wǎng)絡連接上更加平滑,解決了熱遷移過程中網(wǎng)卡中的數(shù)據(jù)報丟失的問題。
本發(fā)明實施例的dma隊列切換方法,不受虛擬化實體工作模式的限制,無論是數(shù)據(jù)流通過/不通過虛擬化管理平臺的應用場景,均能實現(xiàn)虛擬化實體的無縫遷移,擴大了適用范圍;而且,不需要虛擬化管理平臺上的軟件參與數(shù)據(jù)通路,而只需要參與控制,大大節(jié)省了cpu的開銷;并且,占用硬件邏輯少,實現(xiàn)方式簡單,實現(xiàn)成本低。
附圖說明
圖1是現(xiàn)有技術(shù)中虛擬化管理系統(tǒng)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明第一實施例的dma隊列切換方法的流程圖;
圖3是本發(fā)明第二實施例的dma隊列切換方法的流程圖;
圖4是實現(xiàn)本發(fā)明實施例的dma隊列切換方法一可選的虛擬化管理系統(tǒng)的結(jié)構(gòu)示意圖;
圖5是本發(fā)明第三實施例的dma隊列切換系統(tǒng)的模塊示意圖。
本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
具體實施方式
應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本技術(shù)領域技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復數(shù)形式。應該進一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應該理解,當我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關聯(lián)的列出項的全部或任一單元和全部組合。
本技術(shù)領域技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學術(shù)語),具有與本發(fā)明所屬領域中的普通技術(shù)人員的一般理解相同的意義。還應該理解的是,諸如通用字典中定義的那些術(shù)語,應該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。
實施例一
參照圖2,提出本發(fā)明第一實施例的dma隊列切換方法,所述方法包括以下步驟:
s11、虛擬化管理平臺向網(wǎng)卡側(cè)的切換模塊發(fā)送切換命令。
本發(fā)明實施例中,在網(wǎng)卡側(cè)設置了切換模塊,該切換模塊的位置可以靈活設置,如可以設于網(wǎng)卡的數(shù)據(jù)通路的末端(即輸出端),也可以設于數(shù)據(jù)通路的中部(即數(shù)據(jù)通路的輸入端與輸出端的任意位置)。可選地,可以為每一個待遷移的dma隊列配置一個切換模塊。
具體實施時,虛擬化管理平臺可以通過配置硬件寄存器的方式來向待遷移的dma隊列對應的切換模塊發(fā)送切換命令,例如,通過置寄存器的值為“1”或“0”的方式來發(fā)送切換命令。此外,也可以通過向網(wǎng)卡側(cè)的切換模塊發(fā)送控制信號或控制消息等方式來發(fā)送切換命令。
s12、切換模塊根據(jù)切換命令執(zhí)行切換操作,以將網(wǎng)卡的數(shù)據(jù)通路中擬傳輸至待遷移的虛擬化實體的數(shù)據(jù)報導向預置的服務于網(wǎng)絡遷移輔助實體的熱備dma隊列。
本發(fā)明實施例中,虛擬化管理平臺預先為待遷移的虛擬化實體(如虛擬機、容器等)配置了網(wǎng)絡遷移輔助實體(或稱網(wǎng)絡遷移輔助程序),并配置網(wǎng)卡,為每一個服務于待遷移的虛擬化實體的待遷移的dma隊列指定熱備dma隊列,該熱備dma隊列服務于網(wǎng)絡遷移輔助實體,后續(xù)熱備dma隊列中的數(shù)據(jù)報將傳輸至網(wǎng)絡遷移輔助實體。一個待遷移的dma隊列可以對應一個熱備dma隊列,或者至少兩個待遷移的dma隊列共享同一個熱備dma隊列。可選地,可以通過將隊列號配置到硬件寄存器上的方式來指定熱備dma隊列,其中隊列號可以任意指定。
本步驟s12中,切換模塊接收到切換命令后,根據(jù)切換命令執(zhí)行切換操作,以將網(wǎng)卡的數(shù)據(jù)通路中擬傳輸至待遷移的虛擬化實體的數(shù)據(jù)報導向預置的服務于網(wǎng)絡遷移輔助實體的熱備dma隊列。網(wǎng)絡遷移輔助實體配置網(wǎng)卡,把本來應流向待遷移的虛擬化實體的網(wǎng)絡流量經(jīng)由熱備dma隊列無縫導入到自己的緩沖池中。
本發(fā)明實施例中,切換模塊接收到切換命令后,首先判斷當前是否有數(shù)據(jù)報傳輸至虛擬化實體;若是,則將當前的數(shù)據(jù)報作為流向待遷移的虛擬化實體的最后一個數(shù)據(jù)報,待該數(shù)據(jù)報全部傳輸完畢后才執(zhí)行切換操作,改變硬件狀態(tài)到切換完成狀態(tài);若否,則立即執(zhí)行切換操作,改變硬件狀態(tài)到切換完成狀態(tài),其中,切換模塊可以將切換完成狀態(tài)記錄在硬件寄存器中。從而,防止數(shù)據(jù)報傳輸一部分時被打斷,保證了數(shù)據(jù)的完整性。
具體實施時,如果切換模塊設于網(wǎng)卡的數(shù)據(jù)通路的末端,只要當前的數(shù)據(jù)報全部通過切換模塊所在位置,切換模塊則判決流向待遷移的虛擬化實體的最后一個數(shù)據(jù)報傳輸完畢,執(zhí)行切換操作。
如果切換模塊設于數(shù)據(jù)通路的中部,當數(shù)據(jù)報通過切換模塊所在位置時,切換模塊則記錄數(shù)據(jù)報的標記,根據(jù)標記通過待遷移的dma隊列跟蹤該數(shù)據(jù)報,當該數(shù)據(jù)報全部輸出數(shù)據(jù)通路時,判決流向待遷移的虛擬化實體的最后一個數(shù)據(jù)報傳輸完畢。所述數(shù)據(jù)報的標記可以是數(shù)據(jù)報的一個屬性控制位,也可以是附加于該數(shù)據(jù)報的特征數(shù)據(jù)報,該特征數(shù)據(jù)報為內(nèi)部產(chǎn)生和使用的特征數(shù)據(jù)報。
當然,切換模塊也可以在接收到切換命令后不進行任何判斷,直接執(zhí)行切換操作。
進一步地,當執(zhí)行完切換操作后,切換模塊則及時通知虛擬化管理平臺切換完成??蛇x地,切換模塊可以采用中斷方式或者發(fā)送消息的方式通知虛擬化管理平臺。
s13、當切換完成后,虛擬化管理平臺對待遷移的虛擬化實體進行宕機操作。
虛擬化管理平臺可以通過中斷事件或者輪詢切換模塊發(fā)送的消息的方式來了解切換完成事件。此外,虛擬化管理平臺也可以通過數(shù)據(jù)報的狀態(tài)來了解切換完成事件,例如,當切換模塊設于網(wǎng)卡的數(shù)據(jù)通路的末端時,一旦網(wǎng)絡遷移輔助實體接收到第一個數(shù)據(jù)報時,虛擬化管理平臺則認定切換完成。
當?shù)弥W(wǎng)卡側(cè)的切換模塊切換完成后,虛擬化管理平臺才對待遷移的虛擬化實體進行宕機操作,暫時關掉待遷移的虛擬化實體,并進行內(nèi)存遷移。虛擬化管理平臺對虛擬化實體的宕機操作與現(xiàn)有技術(shù)相同,本發(fā)明對此不再贅述。
本發(fā)明實施例的dma隊列切換方法,通過在網(wǎng)卡側(cè)設置切換模塊,并預置服務于網(wǎng)絡遷移輔助實體的熱備dma隊列,由切換模塊根據(jù)虛擬化管理平臺的切換命令執(zhí)行切換操作,從而將網(wǎng)卡的數(shù)據(jù)通路中擬傳輸至待遷移的虛擬化實體的數(shù)據(jù)報導向預置的熱備dma隊列,并經(jīng)由熱備dma隊列將數(shù)據(jù)報導向網(wǎng)絡遷移輔助實體。從而,即使在數(shù)據(jù)流不通過虛擬化管理平臺的應用場景下,虛擬化管理平臺也能在網(wǎng)卡硬件的協(xié)助下,將待遷移的虛擬化實體的流量重定向至網(wǎng)絡遷移輔助實體,實現(xiàn)虛擬化實體的無縫遷移,使得虛擬化實體的熱遷移在網(wǎng)絡連接上更加平滑,解決了熱遷移過程中網(wǎng)卡中的數(shù)據(jù)報丟失的問題。
本發(fā)明實施例的dma隊列切換方法,不受虛擬化實體工作模式的限制,無論是數(shù)據(jù)流通過/不通過虛擬化管理平臺的應用場景,均能實現(xiàn)虛擬化實體的無縫遷移,擴大了適用范圍;而且,不需要虛擬化管理平臺上的軟件參與數(shù)據(jù)通路,而只需要參與控制,大大節(jié)省了cpu的開銷;并且,占用硬件邏輯少,實現(xiàn)方式簡單,實現(xiàn)成本低。
實施例二
參照圖3、圖4,提出本發(fā)明第二實施例的dma隊列切換方法,所述方法包括以下步驟:
s21、虛擬化管理平臺為每個服務于待遷移的虛擬化實體的待遷移的dma隊列指定一個熱備dma隊列。
如圖4所示,虛擬化實體1為待遷移的虛擬化實體,服務于該虛擬化實體1的dma隊列1為待遷移的dma隊列,連接外部局域網(wǎng)的高速物理接口、虛擬硬交換、流分類器、dma隊列1和虛擬功能1構(gòu)成網(wǎng)卡的數(shù)據(jù)通路,切換模塊10設于網(wǎng)卡的數(shù)據(jù)通路的末端,即虛擬功能1的末端。虛擬化管理平臺為dma隊列1指定一個熱備dma隊列,該熱備dma隊列服務于虛擬化管理平臺預置的網(wǎng)絡遷移輔助實體。
在某些實施例中,切換模塊10也可以設于數(shù)據(jù)通路的中部,如設于圖4所示的流分類器的位置。
s22、虛擬化管理平臺為每個待遷移的dma隊列對應的切換模塊發(fā)送切換命令并等待。
s23、切換模塊接收切換命令,根據(jù)切換命令執(zhí)行切換操作,以將網(wǎng)卡的數(shù)據(jù)通路中擬傳輸至待遷移的虛擬化實體的數(shù)據(jù)報導向指定的熱備dma隊列。
如圖4所示,當流向虛擬化實體1的最后一個數(shù)據(jù)報全部通過切換模塊10所在位置時,說明切換命令之前的所有數(shù)據(jù)報都已發(fā)往待遷移的虛擬化實體1,此時切換模塊10才執(zhí)行切換操作,硬件變成切換完成狀態(tài),切換完成狀態(tài)可以記錄在硬件寄存器中。當硬件完成切換完成狀態(tài)后,dma隊列1中的數(shù)據(jù)報流向熱備dma隊列,再經(jīng)由熱備dma隊列流向網(wǎng)絡遷移輔助實體。
s24、切換完成后,切換模塊通知虛擬化管理平臺。可以通過中斷或發(fā)送消息的方式進行通知。
s25、虛擬化管理平臺接收到切換完成的通知后,開始對待遷移的虛擬化實體進行宕機操作。
如圖4所示,虛擬化管理平臺暫時關掉虛擬化實體1,并進行內(nèi)存遷移。
采用本發(fā)明實施例的dma隊列切換方法,不受虛擬化實體工作模式的限制,無論是數(shù)據(jù)流通過/不通過虛擬化管理平臺的應用場景,均能實現(xiàn)虛擬化實體的無縫遷移,擴大了適用范圍;而且,不需要虛擬化管理平臺上的軟件參與數(shù)據(jù)通路,而只需要參與控制,大大節(jié)省了cpu的開銷;并且,占用硬件邏輯少,實現(xiàn)方式簡單,實現(xiàn)成本低。
實施例三
參照圖5,提出本發(fā)明第三實施例的dma隊列切換系統(tǒng),所述系統(tǒng)包括虛擬化管理平臺和網(wǎng)卡側(cè)的切換模塊,該切換模塊的位置可以靈活設置,如可以設于網(wǎng)卡的數(shù)據(jù)通路的末端(即輸出端),也可以設于數(shù)據(jù)通路的中部(即數(shù)據(jù)通路的輸入端與輸出端的任意位置)??蛇x地,可以為每一個待遷移的dma隊列(如dma隊列)配置一個切換模塊。其中:
虛擬化管理平臺:用于向切換模塊發(fā)送切換命令,當切換完成后,對虛擬化實體進行宕機操作。
具體實施時,虛擬化管理平臺可以通過配置硬件寄存器的方式來向待遷移的dma隊列對應的切換模塊發(fā)送切換命令,例如,通過置寄存器的值為“1”或“0”的方式來發(fā)送切換命令。此外,虛擬化管理平臺也可以通過向網(wǎng)卡側(cè)的切換模塊發(fā)送控制信號或控制消息等方式來發(fā)送切換命令。
虛擬化管理平臺可以通過中斷事件或者輪詢切換模塊發(fā)送的消息的方式來了解切換完成事件。此外,虛擬化管理平臺也可以通過數(shù)據(jù)報的狀態(tài)來了解切換完成事件,例如,當切換模塊設于網(wǎng)卡的數(shù)據(jù)通路的末端時,一旦網(wǎng)絡遷移輔助實體接收到第一個數(shù)據(jù)報時,虛擬化管理平臺則認定切換完成。
當?shù)弥W(wǎng)卡側(cè)的切換模塊切換完成后,虛擬化管理平臺才對待遷移的虛擬化實體進行宕機操作,暫時關掉待遷移的虛擬化實體,并進行內(nèi)存遷移。虛擬化管理平臺對虛擬化實體的宕機操作與現(xiàn)有技術(shù)相同,本發(fā)明對此不再贅述。
切換模塊:用于根據(jù)切換命令執(zhí)行切換操作,以將網(wǎng)卡的數(shù)據(jù)通路中擬傳輸至待遷移的虛擬化實體的數(shù)據(jù)報導向預置的服務于網(wǎng)絡遷移輔助實體的熱備dma隊列。網(wǎng)絡遷移輔助實體配置網(wǎng)卡,把本來應流向待遷移的虛擬化實體的網(wǎng)絡流量經(jīng)由熱備dma隊列無縫導入到自己的緩沖池中。
本發(fā)明實施例中,虛擬化管理平臺預先為待遷移的虛擬化實體(如虛擬機、容器等)配置了網(wǎng)絡遷移輔助實體(或稱網(wǎng)絡遷移輔助程序),并配置網(wǎng)卡,為每一個服務于待遷移的虛擬化實體的待遷移的dma隊列指定熱備dma隊列,該熱備dma隊列服務于網(wǎng)絡遷移輔助實體,后續(xù)熱備dma隊列中的數(shù)據(jù)報將傳輸至網(wǎng)絡遷移輔助實體。一個待遷移的dma隊列可以對應一個熱備dma隊列,或者至少兩個待遷移dma隊列共享同一個熱備dma隊列??蛇x地,可以通過將隊列號配置到硬件寄存器上的方式來指定熱備dma隊列,其中隊列號可以任意指定。
本發(fā)明實施例中,切換模塊接收到切換命令后,首先判斷當前是否有數(shù)據(jù)報傳輸至虛擬化實體;若是,則將當前的數(shù)據(jù)報作為流向待遷移的虛擬化實體的最后一個數(shù)據(jù)報,待該數(shù)據(jù)報全部傳輸完畢后才執(zhí)行切換操作,改變硬件狀態(tài)到切換完成狀態(tài);若否,則立即執(zhí)行切換操作,改變硬件狀態(tài)到切換完成狀態(tài),其中,切換模塊可以將切換完成狀態(tài)記錄在硬件寄存器中。從而,防止數(shù)據(jù)報傳輸一部分時被打斷,保證了數(shù)據(jù)的完整性。
具體實施時,如果切換模塊設于網(wǎng)卡的數(shù)據(jù)通路的末端,只要當前的數(shù)據(jù)報全部通過切換模塊所在位置,切換模塊則判決流向待遷移的虛擬化實體的最后一個數(shù)據(jù)報傳輸完畢,執(zhí)行切換操作。
如果切換模塊設于數(shù)據(jù)通路的中部,當數(shù)據(jù)報通過切換模塊所在位置時,切換模塊則記錄數(shù)據(jù)報的標記,根據(jù)標記通過待遷移的dma隊列跟蹤該數(shù)據(jù)報,當該數(shù)據(jù)報全部輸出數(shù)據(jù)通路時,判決流向待遷移的虛擬化實體的最后一個數(shù)據(jù)報傳輸完畢。所述數(shù)據(jù)報的標記可以是數(shù)據(jù)報的一個屬性控制位,也可以是附加于該數(shù)據(jù)報的特征數(shù)據(jù)報,該特征數(shù)據(jù)報為內(nèi)部產(chǎn)生和使用的特征數(shù)據(jù)報。
當然,切換模塊也可以在接收到切換命令后不進行任何判斷,直接執(zhí)行切換操作。
進一步地,當執(zhí)行完切換操作后,切換模塊則及時通知虛擬化管理平臺切換完成??蛇x地,切換模塊可以采用中斷方式或者發(fā)送消息的方式通知虛擬化管理平臺。
本發(fā)明實施例的dma隊列切換系統(tǒng),通過在網(wǎng)卡側(cè)設置切換模塊,并預置服務于網(wǎng)絡遷移輔助實體的熱備dma隊列,由切換模塊根據(jù)虛擬化管理平臺的切換命令執(zhí)行切換操作,從而將網(wǎng)卡的數(shù)據(jù)通路中擬傳輸至待遷移的虛擬化實體的數(shù)據(jù)報導向預置的熱備dma隊列,并經(jīng)由熱備dma隊列將數(shù)據(jù)報導向網(wǎng)絡遷移輔助實體。從而,即使在數(shù)據(jù)流不通過虛擬化管理平臺的應用場景下,虛擬化管理平臺也能在網(wǎng)卡硬件的協(xié)助下,將待遷移的虛擬化實體的流量重定向至網(wǎng)絡遷移輔助實體,實現(xiàn)虛擬化實體的無縫遷移,使得虛擬化實體的熱遷移在網(wǎng)絡連接上更加平滑,解決了熱遷移過程中網(wǎng)卡中的數(shù)據(jù)報丟失的問題。
本發(fā)明實施例的dma隊列切換系統(tǒng),不受虛擬化實體工作模式的限制,無論是數(shù)據(jù)流通過/不通過虛擬化管理平臺的應用場景,均能實現(xiàn)虛擬化實體的無縫遷移,擴大了適用范圍;而且,不需要虛擬化管理平臺上的軟件參與數(shù)據(jù)通路,而只需要參與控制,大大節(jié)省了cpu的開銷;并且,占用硬件邏輯少,實現(xiàn)方式簡單,實現(xiàn)成本低。
本領域技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請中所述操作中的一項或多項的設備。這些設備可以為所需的目的而專門設計和制造,或者也可以包括通用計算機中的已知設備。這些設備具有存儲在其內(nèi)的計算機程序,這些計算機程序選擇性地激活或重構(gòu)。這樣的計算機程序可以被存儲在設備(例如,計算機)可讀介質(zhì)中或者存儲在適于存儲電子指令并分別耦聯(lián)到總線的任何類型的介質(zhì)中,所述計算機可讀介質(zhì)包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、cd‐rom、和磁光盤)、rom(read‐onlymemory,只讀存儲器)、ram(randomaccessmemory,隨機存儲器)、eprom(erasableprogrammableread‐onlymemory,可擦寫可編程只讀存儲器)、eeprom(electricallyerasableprogrammableread‐onlymemory,電可擦可編程只讀存儲器)、閃存、磁性卡片或光線卡片。也就是,可讀介質(zhì)包括由設備(例如,計算機)以能夠讀的形式存儲或傳輸信息的任何介質(zhì)。
本技術(shù)領域技術(shù)人員可以理解,可以用計算機程序指令來實現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本技術(shù)領域技術(shù)人員可以理解,可以將這些計算機程序指令提供給通用計算機、專業(yè)計算機或其他可編程數(shù)據(jù)處理方法的處理器來實現(xiàn),從而通過計算機或其他可編程數(shù)據(jù)處理方法的處理器來執(zhí)行本發(fā)明公開的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個框中指定的方案。
本技術(shù)領域技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進一步地,具有本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關的技術(shù)領域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。