圖1LinuxBridge内部轉發流程随着計算機網絡和通信行業的發展,“智慧校園”和“綠色節能”雙目标對高校數據中心的建設或升級改造提出了更高的要求。傳統高校數據中心已經無法滿足“智慧校園”的需求,主要存在資源利用率低、運維成本高、應用部署緩慢和管理策略分散等方面不足。
為了解決傳統數據中心的缺陷,虛拟化和雲計算作為一種新的共享基礎架構方法,将各項資源進行整合,利用數據中心網絡連接在一起,形成一個巨大資源池。根據業務系統的實際需求,統一分配各項硬件資源,并按照業務系統的實際運行需求進行調整。
雲數據中心可以根據實際,提供可用、便捷、按需的系統資源。KVM作為開源的系統虛拟化模塊,在服務器虛拟化過程中得到了廣泛的應用;vRoute虛拟路由是基于網絡的純軟件操作系統,運行于主流的虛拟平台上。本文根據高校雲數據中心的實際建設過程中發現的問題,結合KVM和軟件化的虛拟路由器,搭建安全穩定的虛拟網絡構架,給出了三種KVM平台與vRoute網絡互連配置方法。
雲計算的相關技術KVM
KVM(Kernel-basedVirtualMachine)是一個開源的系統虛拟化模塊,自Linux2.6.20版本發行之後,該功能模塊都集成于Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,相對于Xen,其核心源碼很少,因此KVM已成為學術界主流的VMM之一。
KVM虛拟化需要硬件支持,它是基于硬件的完全虛拟化。而Xen早期是基于軟件模拟的ParaVirtualization,新版本則是基于硬件支持的完全虛拟化。但是,由于Xen有自己的進程調度器、存儲管理模塊等,所以代碼較為龐大,在兼容、擴展等方面表現稍遜。
LinuxBridge
Linux系統的網絡功能是通過直接或間接配置系統文件來實現的。Bridge是Linux系統用來實現TCP/IP二層協議交換的虛拟設備,功能類似于交換機。Bridge設備實例可以與Linux内其它虛拟網絡設備實例互連。當數據傳輸至Bridge時,Bridge會根據報文中的MAC信息進行廣播、轉發、丢棄處理等操作處理。
LinuxBridge内部轉發流程如圖1所示。Bridge的功能主要在内核裡實現。當一台邏輯設備與Bridge相互連接後,内核程序裡netdev_rx_handler_register()函數被調用,一個用于接受數據的回調函數被注冊。之後邏輯設備接收到數據,通過調用該函數,将數據轉發至Bridge。Bridge接收到此數據時,br_handle_frame()函數被調用,進行類似交換機功能處理過程:判斷包的類别(廣播/單點),查找内部MAC端口映射表,定位目标端口号,将數據轉發到目标端口或丢棄,自動更新内部MAC端口映射表以自我學習。
Bridge與實體二層交換機存在一個區别,圖1中左側說明了這種區别情況:數據流是被直接發到Bridge内,而不是從其中一個邏輯端口接受。該情況可以認為Bridge自身擁有一個MAC地址可以主動發送報文,或者認為Bridge自帶了一個隐藏端口和寄主Linux系統自動連接,Linux系統内的程序可以直接從該邏輯端口向Bridge内的其它端口發數據。因此,當一個Bridge與一台邏輯網絡設備互連後,兩者擁有兩個有效MAC地址,兩者之間就可以進行數據流傳輸。
在實際項目實施過程中,通過分析問題,關于Bridge有兩點需要注意:
(1)當前Bridge的實現存在一個限制:當一個邏輯設備互連至Bridge時,該設備的IP地址會失效,Linux系統不再使用該IP在邏輯三層接受數據。
(2)需要注意的是數據流的方向。對于一個互連到Bridge上的邏輯網絡設備來說,隻有它收到數據時,此包數據才會被轉發到Bridge上,進而完成查表廣播等後續操作。當請求是發送類型時,數據是不會被轉發到Bridge上的,它會尋找下一個發送出口。這一現象同實體交換機是不同的。
虛拟路由器(vRoute)
vRoute虛拟路由器是基于網絡的純軟件操作系統,運行在主流的虛拟平台上,主要用于虛拟私有雲,充當虛拟私有雲網關,提供和物理路由器相同的功能和體驗,功能主要包括路由、防火牆、VPN、QOS、及配置管理等,建立安全、統一、可擴展的混合雲,或用于虛拟分支,以精簡分支基礎設施。雲計算平台虛拟化邏輯架構如圖2所示。
圖2雲計算平台虛拟化邏輯架構vRoute是部署在數據中心或容災機房服務器虛拟機上的網絡連接,通過創建一個或多個虛拟WAN口,并通過vSwitch連接到物理廣域網。同時也可以創建一個或多個虛拟LAN口,通過vSwitch連接其它應用系統虛拟機或物理局域網絡。
KVM平台虛拟網絡互連配置方案
如圖3所示,VM的Bridge為一個虛拟的邏輯二層交換機,其綁定的物理網卡作為上行口連接物理網絡,而圖中的A、B、C和D便是虛拟交換機的下行邏輯端口,用于連接VM虛拟網口,Bridge主要實現VM與物理網絡之間的數據交換,vRoute的數據報文通過Bridge的上行口轉發到實際的物理網絡中。
圖3KVM平台虛拟網絡部署邏輯通過研究及相關經驗可知,vRoute配合KVM的Bridge進行網絡連接時一般情況可以使用以下三種組網方式:
(1)vRoute接口和主機網絡接口直接綁定;
(2)vRoute多個接口共用一個主機網絡接口(通過虛拟交換機vlan隔離);
(3)vRoute使用子接口,接收/發送帶vlan報文;
針對以上三種組網方案,本文給出相關應用及配置思路。
方案1
vRoute接口和主機網絡接口直接綁定,主機網絡接口接收到的數據報文會上送到vRoute對應的接口。典型配置組網如圖4所示。
圖4VSR接口直接綁定主機網絡接口vRoute的G1/0口連接到局域網;G2/0口連接廣域網。
(1)vRoute虛拟網卡可以使用LinuxBridge方式。使用Bridge方式典型組網配置思路:創建兩個橋口br0和br1,分别橋接到物理服務器的eno3和eno4口;VSR添加兩塊虛拟網卡,網卡1綁定在橋接口br0上,網卡2綁定在橋接口br1上。
(2)VSR使用G1/0口通過橋口br0連接到模拟局域網;使用G2/0口通過橋口br1連接模拟廣域網。
方案2
vRoute多個接口共用一個主機網絡接口(通過虛拟交換機vlan隔離)。
LinuxKVM使用vlan接口進行vlan隔離,處理流程如下:
綁定vlan接口的虛拟網卡發送報文,KVM将報文在同一個vlan中轉發,并添加對應的vlantag後從綁定的物理接口發出;物理接口收到帶vlantag的報文後,根據vlantag在對應的vlan中轉發,發送時會去掉對應的vlantag(虛拟機連接的接口為Access口)。典型配置組網如圖5所示。
Vlan11為物理廣域網絡,Vlan10為内部局域網絡,VSR的G2/0口連接到物理廣域網;G1/0口連接其它虛拟機或物理局域網絡。
(1)vRoute虛拟網卡用Bridge方式。使用Bridge方式典型配置組網說明:
eno3口添加兩個vlan接口eno3.10和eno3.11,分别對應vlan10和vlan11;創建兩個橋口br0.10和br0.11,分别橋接到eno3.10和eno3.11上;VSR添加兩塊虛拟網卡,網卡1綁定在橋接口br3.10上,網卡2綁定在橋接口br3.11上;物理交換機連接虛拟服務器的網口配置為trunk口,允許vlan10和vlan11通過。交換機上建立兩個vlaninterfacevlan-10和vlaninterfacevlan-11,模拟局域網和廣域網。
(2)vRoute使用G1/0口通過橋口br0.10連接到物理局域網;使用G2/0口通過橋口br0.11連接物理廣域網。
方案3
vRoute使用子接口,接收/發送帶vlan報文。vRoute使用子接口時需要配置vlan終結,vRoute收到帶vlantag的報文後,根據vlantag匹配到不同的子接口,vRoute子接口發出的報文也會攜帶相應的vlantag。
vRoute使用子接口時,虛拟網卡隻能使用Bridge方式,并且主機上對應的接口不能創建vlan接口。這樣從物理接口接收的帶vlantag的報文可以直接轉發到vRoute的虛拟網卡上,vRoute虛拟網卡發送的帶vlantag的報文也可以直接通過物理接口發出。典型配置組網如圖6所示。
vRoute的G1/0口連接到物理局域網,Loopback1模拟物理廣域網絡。
(1)典型組網配置思路:創建一個橋口br0,橋接到eth3;VSR添加一塊虛拟網卡,網卡1綁定在橋接口br0上;物理交換機連接虛拟服務器eth1/0/11的網口配置為trunk口,允許vlan10和vlan11通過。
(2)vRoute使用Gig1/0口通過橋口br0連接到局域網;使用Loopback1模拟廣域網服務器,地址配置為12.0.0.,物理局域網絡通過vlan劃分不同的子網,連接Gig1/0不同的子接口。
應用和效果
目前,根據本文提出的第二套方案,北京幾所高校已經通過虛拟化形成統一的資源池,分别應用于學校教務系統、選課系統以及招生就業系統。
通過數據中心網管軟件監控系統信息顯示,服務器CPU、内存使用效率方面都有很大地提升,并且解決了之前該校選課期間系統由于高并發導緻系統崩潰的現象,師生反映良好,現在選課期間系統運轉順暢,不需要學生錯峰選課。學校招生期間,無任何由于招生就業系統産生的問題,招生工作順暢。
所以,雲數據中心不僅降低了學校信息化方面的各項投入,簡化了網絡運維管理工作,提升了數據中心資源利用率,也實現了節能減排目标。實踐證明,依據上述方法并根據設備情況采取最優的配置方式,實現KVM雲計算平台的網絡最優,能提升雲計算平台的效能和穩定性。
(責編:陶春)
(作者單位為中央民族大學)
圖5VSR多個接口共用一個主機網絡接口
圖6VSR使用子接口組網