VXLAN實現裝置及其工作方法與流程
2023-05-29 08:40:16
本發明涉及虛擬化和雲領域,特別是指一種應用於虛擬化雲環境中的VXLAN實現裝置及其工作方法。
背景技術:
隨著雲計算以及大數據等業務應用的規模落地,以雲計算、虛擬化等技術為基礎的各種規模化運營的雲數據中心越來越多。傳統的VLAN(虛擬區域網)技術已經不能滿足應用要求,從而提出了VXLAN(Virtual extensible Local Area Network,虛擬可擴展區域網)技術。
在虛擬化雲環境中VXLAN相關功能是在伺服器上佔用CPU的資源(比如用開源虛擬交換機OVS)來實現的,所以存在性能瓶頸,無法滿足部分虛擬化主機(VM)高性能網絡通道的要求。
在虛擬化和雲領域,為了滿足VM的網絡性能要求,產生了採用輸入/輸出通道虛擬化(Single Root I/O Virtualization,SR-IOV)的技術,但這個技術當前只能應用在虛擬化雲環境中的VLAN網絡,而不能用在VXLAN網絡。
技術實現要素:
本發明要解決的技術問題是提供一種VXLAN實現裝置及其工作方法,能夠克服現有虛擬化雲環境中SR-IOV和VXLAN兩種技術不能融合使用的問題。
一方面,提供一種VXLAN實現裝置,應用於虛擬化雲環境中,包括:
接收模塊,用於接收虛擬區域網VLAN報文,所述VLAN報文是從虛擬機發出的,並通過輸入/輸出通道虛擬化SR-IOV網卡發送過來;
控制模塊,用於通知發送模塊,通過SR-IOV網卡發送過來的VLAN報文對應的VXLAN網絡;
所述發送模塊,用於將所述VLAN報文轉換成對應VXLAN網絡的報文,並將轉換後的VXLAN網絡的報文發送出去。
進一步地,還包括:
虛擬化模塊,用於在虛擬化環境中的伺服器上安裝SR-IOV驅動,生成虛擬機需要使用的虛擬網卡;
所述控制模塊具體用於在所述虛擬化模塊生成虛擬機需要使用的虛擬網卡後,設置SR-IOV通道的VLAN信息,並通過和所述虛擬化模塊的接口獲取VXLAN網絡的信息,形成SR-IOV通道的VLAN信息和VXLAN網絡信息的映射關係。
本發明實施例還提供了一種VXLAN實現裝置,應用於虛擬化雲環境中,包括:
接收模塊,用於接收VXLAN網絡的報文;
控制模塊,用於通知所述發送模塊所述VXLAN網絡的報文對應的VLAN;
所述發送模塊,用於將所述VXLAN網絡的報文轉換成VLAN報文,並通過SR-IOV網卡將所述VLAN報文發送至虛擬機。
進一步地,還包括:
虛擬化模塊,用於在虛擬化環境中的伺服器上安裝SR-IOV驅動,生成虛擬機需要使用的虛擬網卡;
所述控制模塊具體用於在所述虛擬化模塊生成虛擬機需要使用的虛擬網卡後,設置SR-IOV通道的VLAN信息,並通過和所述虛擬化模塊的接口獲取VXLAN網絡的信息,形成SR-IOV通道的VLAN信息和VXLAN網絡信息的映射關係。
本發明實施例還提供了一種VXLAN實現裝置的工作方法,所述VXLAN實現裝置應用於虛擬化雲環境中,所述方法包括:
接收虛擬區域網VLAN報文,所述VLAN報文是從虛擬機發出,並通過輸入/輸出通道虛擬化SR-IOV網卡發送過來的;
確定通過SR-IOV網卡發送過來的VLAN報文對應的VXLAN網絡;
將所述VLAN報文轉換成對應VXLAN網絡的報文,並將轉換後的 VXLAN網絡的報文發送出去。
進一步地,所述接收從虛擬機發出,通過SR-IOV網卡發送過來的VLAN報文之前還包括:
在虛擬化環境中的伺服器上安裝SR-IOV驅動,生成虛擬機需要使用的虛擬網卡;
設置SR-IOV通道的VLAN信息,並獲取VXLAN網絡的信息,形成SR-IOV通道的VLAN信息和VXLAN網絡信息的映射關係。
本發明實施例還提供了一種VXLAN實現裝置的工作方法,應用於虛擬化雲環境中,包括:
接收VXLAN網絡的報文;
確定所述VXLAN網絡的報文對應的VLAN;
將所述VXLAN網絡的報文轉換成VLAN報文,並通過SR-IOV網卡將所述VLAN報文發送至虛擬機。
進一步地,所述接收VXLAN網絡的報文之前還包括:
在虛擬化環境中的伺服器上安裝SR-IOV驅動,生成虛擬機需要使用的虛擬網卡;
設置SR-IOV通道的VLAN信息,並獲取VXLAN網絡的信息,形成SR-IOV通道的VLAN信息和VXLAN網絡信息的映射關係。
本發明的實施例具有以下有益效果:
本發明的技術方案能夠使得SR-IOV技術和VXLAN技術融合使用,克服現有虛擬化雲環境中SR-IOV和VXLAN兩種技術不能融合使用的問題,從而實現高性能VXLAN網絡。
附圖說明
圖1是本發明實施例VXLAN實現裝置的結構示意圖;
圖2是在OpenStack環境中VXLAN網絡與SR-IOV虛擬化主機的啟動交互示意圖;
圖3是本發明實施例一的交互流程示意圖;
圖4是本發明實施例二的交互流程示意圖;
圖5是本發明實施例三的框架圖;
圖6是本發明實施例三的交互流程示意圖。
具體實施方式
為使本發明的實施例要解決的技術問題、技術方案和優點更加清楚,下面將結合附圖及具體實施例進行詳細描述。
本發明的實施例針對現有技術中虛擬化雲環境中SR-IOV和VXLAN兩種技術不能融合使用的的問題,提供一種VXLAN實現裝置及其工作方法,能夠克服現有虛擬化雲環境中SR-IOV和VXLAN兩種技術不能融合使用的問題。
本發明實施例提供一種VXLAN實現裝置,應用於虛擬化雲環境中,如圖1所示,本實施例包括:
接收模塊,用於接收虛擬區域網VLAN報文,所述VLAN報文是從虛擬機發出的,並通過輸入/輸出通道虛擬化SR-IOV網卡發送過來;
控制模塊,用於通知發送模塊,通過SR-IOV網卡發送過來的VLAN報文對應的VXLAN網絡;
所述發送模塊,用於將所述VLAN報文轉換成對應VXLAN網絡的報文,並將轉換後的VXLAN網絡的報文發送出去。
本實施例的技術方案能夠使得SR-IOV技術和VXLAN技術融合使用,克服現有虛擬化雲環境中SR-IOV和VXLAN兩種技術不能融合使用的問題,從而實現高性能VXLAN網絡。
其中,接收模塊和發送模塊可以位於外部硬體加速設備上。
進一步地,所述裝置還包括:
虛擬化模塊,用於在虛擬化環境中的伺服器上安裝SR-IOV驅動,生成虛擬機需要使用的虛擬網卡;
所述控制模塊具體用於在所述虛擬化模塊生成虛擬機需要使用的虛擬網卡後,設置SR-IOV通道的VLAN信息,並通過和所述虛擬化模塊的接口獲取VXLAN網絡的信息,形成SR-IOV通道的VLAN信息和VXLAN網絡信息 的映射關係。
具體地,虛擬化模塊負責伺服器系統的虛擬化技術,控制模塊負責控制發送模塊和接收模塊對SR-IOV網卡送出的報文和VXLAN網絡報文直接進行轉換。讓整個虛擬化系統呈現一個高性能VXLAN網絡,控制模塊還將VXLAN技術的處理從伺服器卸載到外部硬體加速設備,進一步加速VXLAN報文頭處理的效率和性能。
在工作過程中,虛擬化模塊先將VXLAN網絡類型創建起來,控制模塊預規劃SR-IOV通道VLAN的信息,並通過和虛擬化模塊的接口獲取VXLAN網絡的信息,從而形成SR-IOV通道VLAN信息和VXLAN信息的映射關係。當租戶(虛擬化環境的用戶)要在某個VXLAN上面創建一個虛擬機時,虛擬化模塊向控制模塊查詢VXLAN網絡和SR-IOV通道VLAN的對應關係,從而能將虛擬機創建在SR-IOV網卡上。控制模塊發送控制命令給硬體加速設備,通知它這個虛擬機使用的SR-IOV網口發送過來的報文其VLAN和VXLAN的映射信息。虛擬機有報文發送時,通過虛擬化模塊和硬體加速設備之間的接口,將報文發送到硬體加速設備,硬體加速設備根據控制模塊下發的控制命令,對報文進行VLAN到VXLAN的轉換後發送出去。
本發明實施例還提供了一種VXLAN實現裝置,應用於虛擬化雲環境中,包括:
接收模塊,用於接收VXLAN網絡的報文;
控制模塊,用於通知所述發送模塊所述VXLAN網絡的報文對應的VLAN;
所述發送模塊,用於將所述VXLAN網絡的報文轉換成VLAN報文,並通過SR-IOV網卡將所述VLAN報文發送至虛擬機。
其中,接收模塊和發送模塊可以位於外部硬體加速設備上。
進一步地,所述裝置還包括:
虛擬化模塊,用於在虛擬化環境中的伺服器上安裝SR-IOV驅動,生成虛擬機需要使用的虛擬網卡;
所述控制模塊具體用於在所述虛擬化模塊生成虛擬機需要使用的虛擬網卡後,設置SR-IOV通道的VLAN信息,並通過和所述虛擬化模塊的接口獲 取VXLAN網絡的信息,形成SR-IOV通道的VLAN信息和VXLAN網絡信息的映射關係。
本實施例的技術方案能夠使得SR-IOV技術和VXLAN技術融合使用,克服現有虛擬化雲環境中SR-IOV和VXLAN兩種技術不能融合使用的問題,從而實現高性能VXLAN網絡。
具體地,虛擬化模塊負責伺服器系統的虛擬化技術,控制模塊負責控制發送模塊和接收模塊對SR-IOV網卡送出的報文和VXLAN網絡報文直接進行轉換。讓整個虛擬化系統呈現一個高性能VXLAN網絡,控制模塊還將VXLAN技術的處理從伺服器卸載到外部硬體加速設備,進一步加速VXLAN報文頭處理的效率和性能。
在工作過程中,虛擬化模塊先將VXLAN網絡類型創建起來,控制模塊預規劃SR-IOV通道VLAN的信息,並通過和虛擬化模塊的接口獲取VXLAN網絡的信息,從而形成SR-IOV通道VLAN信息和VXLAN信息的映射關係。當租戶(虛擬化環境的用戶)要在某個VXLAN上面創建一個虛擬機時,虛擬化模塊向控制模塊查詢VXLAN網絡和SR-IOV通道VLAN的對應關係,從而能將虛擬機創建在SR-IOV網卡上。控制模塊發送控制命令給硬體加速設備,通知它這個虛擬機使用的SR-IOV網口發送過來的報文其VLAN和VXLAN的映射信息。虛擬機有報文發送時,通過虛擬化模塊和硬體加速設備之間的接口,將報文發送到硬體加速設備,硬體加速設備根據控制模塊下發的控制命令,對報文進行VLAN到VXLAN的轉換後發送出去。
本發明實施例還提供了一種VXLAN實現裝置的工作方法,所述VXLAN實現裝置應用於虛擬化雲環境中,所述方法包括:
接收虛擬區域網VLAN報文,所述VLAN報文是從虛擬機發出,並通過輸入/輸出通道虛擬化SR-IOV網卡發送過來的;
確定通過SR-IOV網卡發送過來的VLAN報文對應的VXLAN網絡;
將所述VLAN報文轉換成對應VXLAN網絡的報文,並將轉換後的VXLAN網絡的報文發送出去。
本實施例的技術方案能夠使得SR-IOV技術和VXLAN技術融合使用,克 服現有虛擬化雲環境中SR-IOV和VXLAN兩種技術不能融合使用的問題,從而實現高性能VXLAN網絡。
進一步地,所述接收從虛擬機發出,通過SR-IOV網卡發送過來的VLAN報文之前還包括:
在虛擬化環境中的伺服器上安裝SR-IOV驅動,生成虛擬機需要使用的虛擬網卡;
設置SR-IOV通道的VLAN信息,並獲取VXLAN網絡的信息,形成SR-IOV通道的VLAN信息和VXLAN網絡信息的映射關係。
本發明實施例還提供了一種VXLAN實現裝置的工作方法,應用於虛擬化雲環境中,包括:
接收VXLAN網絡的報文;
確定所述VXLAN網絡的報文對應的VLAN;
將所述VXLAN網絡的報文轉換成VLAN報文,並通過SR-IOV網卡將所述VLAN報文發送至虛擬機。
本實施例的技術方案能夠使得SR-IOV技術和VXLAN技術融合使用,克服現有虛擬化雲環境中SR-IOV和VXLAN兩種技術不能融合使用的問題,從而實現高性能VXLAN網絡。
進一步地,所述接收VXLAN網絡的報文之前還包括:
在虛擬化環境中的伺服器上安裝SR-IOV驅動,生成虛擬機需要使用的虛擬網卡;
設置SR-IOV通道的VLAN信息,並獲取VXLAN網絡的信息,形成SR-IOV通道的VLAN信息和VXLAN網絡信息的映射關係。
下面結合具體的實施例對本發明的技術方案進行進一步介紹:
實施例一
圖2為本實施例應用於OpenStack的虛擬化主機啟動過程中的交互示意圖,其中,虛擬化模塊包括圖中的nova-compute(計算伺服器)和neutron-server,硬體加速設備為圖中的VXLAN GW(網關),控制模塊為圖中的SDN(軟體定義網絡)Controller(控制器)。
如圖2所示,虛擬化模塊獲取虛擬化主機需要使用的埠網絡(VXLAN)信息,並且虛擬化模塊向控制模塊獲取網絡(VLAN)信息,控制模塊向硬體加速設備同步網絡(VXLAN和VLAN ID)映射信息。
如圖3所示,本實施例的VXLAN實現裝置的工作方法包括以下步驟:
步驟1:nova-compute開始啟動虛擬化主機,虛擬化主機綁定埠過程中,首先攜帶虛擬化主機的標識(Instance ID)到neutron-server上獲取該虛擬化主機對應的埠網絡信息;
步驟2:neutron-server根據虛擬化主機標識查詢資料庫中該虛擬化主機對應的埠網絡信息,並傳遞給nova-compute,對於VXLAN網絡上的虛擬化主機,攜帶的網絡信息是包含VNI(虛擬區域網標識)的;
步驟3:nova-compute獲取到VNI信息後,向SDN Controller獲取SR-IOV驅動所需的VLAN Id;
步驟4:SDN Controller根據VNI,計算獲取一個VLAN ID,並發送給nova-compute;
步驟5:SDN Controller將VNI和VLAN ID的映射關係同步給VXLAN GW;
步驟6:nova-compute收到VLAN ID之後,將該VLAN ID設置到SR-IOV埠上。
其中步驟3到步驟6是本實施例所特有步驟。
實施例二
如圖2所示,虛擬化模塊獲取虛擬化主機需要使用的埠網絡(VXLAN)信息,並且虛擬化模塊向控制模塊獲取網絡(VLAN)信息,控制模塊向硬體加速設備同步網絡(VXLAN和VLAN ID)映射信息。
如圖4所示,本實施例的VXLAN實現裝置的工作方法包括以下步驟:
步驟1:nova-compute開始啟動虛擬化主機,虛擬化主機綁定埠過程中,首先攜帶虛擬化主機的標識(Instance ID)到neutron-server上獲取該虛擬化主機對應的埠網絡信息;
步驟2:neutron-server根據虛擬化主機標識查詢資料庫中該虛擬化主機對應的埠網絡信息,並傳遞給nova-compute,對於VXLAN網絡上的虛擬化主 機,攜帶的網絡信息是包含VNI的;
步驟3:nova-compute獲取到VNI信息後,根據VNI,計算獲取一個VLAN ID,將該VLAN ID設置到SR-IOV埠上;
步驟4:nova-compute將VNI和VLAN ID的映射關係同步給SDN Controller;
步驟5:SDN Controller將VNI和VLAN ID的映射關係同步給VXLAN GW。
其中步驟3到步驟5是本實施例所特有步驟。
實施例三
圖5所示為虛擬化模塊內部的交互示意圖,虛擬化模塊從虛擬網絡獲取虛擬化主機需要使用的埠網絡(VLAN)信息,虛擬化模塊向控制模塊同步(VXLAN和VLAN ID)映射信息,控制模塊向硬體加速設備同步網絡(VXLAN和VLAN ID)映射信息。
如圖6所示,本實施例的VXLAN實現裝置的工作方法包括以下步驟:
步驟1:nova-compute開始啟動虛擬化主機,虛擬化主機綁定埠過程中,首先攜帶虛擬化主機的標識(Instance ID)到neutron-server上獲取該虛擬化主機對應的埠網絡信息;
步驟2:neutron-server根據虛擬化主機標識查詢資料庫中該虛擬化主機對應的埠網絡信息,並根據網絡信息中的VNI,計算獲取VLAN ID,傳遞給nova-compute;
步驟3:nova-compute獲取VLAN ID之後,設置到SR-IOV埠上;
步驟4:neutron-server將VNI和VLAN ID的映射關係同步給SDN Controller;
步驟5:SDN Controller將VNI和VLAN ID的映射關係同步給VXLAN GW;
通過上述實施例,本發明的技術方案使得SR-IOV技術和VXLAN技術能融合使用,從而實現高性能VXLAN網絡。
此說明書中所描述的許多功能部件都被稱為模塊,以便更加特別地強調其實現方式的獨立性。
本發明實施例中,模塊可以用軟體實現,以便由各種類型的處理器執行。 舉例來說,一個標識的可執行代碼模塊可以包括計算機指令的一個或多個物理或者邏輯塊,舉例來說,其可以被構建為對象、過程或函數。儘管如此,所標識模塊的可執行代碼無需物理地位於一起,而是可以包括存儲在不同物理上的不同的指令,當這些指令邏輯上結合在一起時,其構成模塊並且實現該模塊的規定目的。
實際上,可執行代碼模塊可以是單條指令或者是許多條指令,並且甚至可以分布在多個不同的代碼段上,分布在不同程序當中,以及跨越多個存儲器設備分布。同樣地,操作數據可以在模塊內被識別,並且可以依照任何適當的形式實現並且被組織在任何適當類型的數據結構內。所述操作數據可以作為單個數據集被收集,或者可以分布在不同位置上(包括在不同存儲設備上),並且至少部分地可以僅作為電子信號存在於系統或網絡上。
在模塊可以利用軟體實現時,考慮到現有硬體工藝的水平,所以可以以軟體實現的模塊,在不考慮成本的情況下,本領域技術人員都可以搭建對應的硬體電路來實現對應的功能,所述硬體電路包括常規的超大規模集成(VLSI)電路或者門陣列以及諸如邏輯晶片、電晶體之類的現有半導體或者是其它分立的元件。模塊還可以用可編程硬體設備,諸如現場可編程門陣列、可編程陣列邏輯、可編程邏輯設備等實現。
在本發明各方法實施例中,所述各步驟的序號並不能用於限定各步驟的先後順序,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,對各步驟的先後變化也在本發明的保護範圍之內。
以上所述是本發明的優選實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明所述原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護範圍。