本發明涉及云計算中的網絡虛擬化技術領域,尤其涉及一種在數據中心的計算節點間實現高速分布式路由的方法。
背景技術:
數據中心中的云計算系統由控制節點、計算節點、網絡節點等多個節點組成。計算節點負責運行向外提供服務虛擬機以響應用戶請求,網絡節點為云計算系統提供對外及對內的各種網絡服務,控制節點則負責云計算系統的正常運行。隨著越來越多的業務和數據遷移到云計算系統,如果不能在數據中心實現高效的數據路由,將會給用戶帶來不可估量的損失。
目前,數據中心的路由技術主要包括:集中式路由技術和分布式路由技術。集中式路由技術是通過網絡節點里的虛擬路由器實現計算節點的東西向和南北向的數據通路。集中式路由技術能夠簡化數據中心的拓撲結構,便于網絡數據流的集中控制,但存在網絡節點負擔過重,因此難以實現較高的網絡速度,并存在網絡延遲較大的缺陷。同時,由于集中式路由技術使得任何計算節點之間的聯通必須通過網絡節點,因此不能有效減少數據中心的網絡負載。
分布式路由技術是通過讓計算節點自己來處理原先的大量東西向流量和非SNAT南北向流量(由被分配Floating IP的虛擬機與外部數據中心進行通信)。網絡節點只需要處理占到一部分的SNAT流量,降低了數據中心的網絡負載和整個云計算系統對網絡節點的依賴。分布式路由技術雖然能夠減輕網絡節點的壓力,但是由于依然使用網絡命名空間(Network Name Space)技術來模擬路由器并對數據進行路由,使計算節點上拓撲結構過于復雜,從而無法有效減少整個網絡延遲(Latency),且會影響計算節點的計算性能。
有鑒于此,有必要對現有技術中的數據中心的路由技術予以改進,以解決上述問題。
技術實現要素:
本發明的目的在于公開一種在數據中心的計算節點間實現高速分布式路由的方法,用以簡化數據中心的拓撲結構,降低網絡延遲,實現對計算節點上網絡流量的監控及對數據的高速路由,減少數據中心的網絡負載。
為實現上述發明目的,本發明提供了一種在數據中心的計算節點間實現高速分布式路由的方法,包括:
在計算節點及網絡節點上安裝用于對外提供網絡服務的OVS虛擬交換機,并僅在計算節點上安裝用于監控所述OVS虛擬交換機流量的高速分布式路由控制器,并通過所述高速分布式路由控制器更新通道網橋,各計算節點上所部署的高速分布式路由控制器被控制節點集中控制;
用戶通過API向高速分布式路由控制器下發自定義配置,所述自定義配置為成對的兩個計算節點之間的網絡流量閾值,當兩個計算節點之間的網絡流量超過網絡流量閾值后,由高速分布式路由控制器動態規劃各計算節點間的網絡拓撲。
作為本發明的進一步改進,所述通道網橋設置為Flow模式。
作為本發明的進一步改進,所述方法還包括:對至少兩個計算節點間成對的兩個不同網絡設置不同的自定義配置。
作為本發明的進一步改進,所述高速分布式路由控制器對通道網橋上的三層路由流表、二層交換流表及二層交換流表與通道網橋的接入點之間所形成的數據通道執行添加、刪除或者修改操作。
作為本發明的進一步改進,所述方法還包括:網絡節點實時更新已經建立連接的網絡的路由信息上報并保存至控制節點。
作為本發明的進一步改進,所述網絡流量閾值不超過與通道網橋連接的物理網卡的最大傳輸速度。
作為本發明的進一步改進,所述動態規劃各計算節點間的網絡拓撲具體為:隨已經建立網絡連接的成對的兩個計算節點間的網絡流量的變化,將高于網絡流量閾值的成對的兩個計算節點通過計算節點中與OVS虛擬交換機連接的物理網卡直接連通。
與現有技術相比,本發明的有益效果是:在本發明中,實現了對計算節點上網絡流量的監控,并通過網絡節點和計算節點實現了網絡路由功能,既簡化了整個數據中心的拓撲結構又能夠顯著減少網絡節點的網絡吞吐壓力,提高了數據中心整體的網絡性能。
附圖說明
圖1為示出了具有多個計算節點的Openstack系統的架構圖;
圖2為非高速分布式路由模式下在計算節點上的網絡服務控制圖;
圖3為高速分布式路由模式下在計算節點上的網絡服務控制圖;
圖4為圖1中的計算節點A與計算節點B間不實現直接互聯的網絡拓撲圖;
圖5為圖1中的計算節點A與計算節點B間實現直接互聯的網絡拓撲圖。
具體實施方式
下面結合附圖所示的各實施方式對本發明進行詳細說明,但應當說明的是,這些實施方式并非對本發明的限制,本領域普通技術人員根據這些實施方式所作的功能、方法、或者結構上的等效變換或替代,均屬于本發明的保護范圍之內。
在詳細闡述本發明之前,首先對具體實施方式中的主要技術術語作出簡要闡述或者定義。
術語“數據鏈路”是指,已經建立網絡連接的網絡與網絡之間在接收和發送數據時所形成的路徑。
術語“網絡”是指,計算節點中開啟的一個或者多個虛擬機所共同組成的網絡,該網絡可用于響應用戶發起操作請求。
術語“外網”是指:互聯網或者另一個數據中心,具體的,外網可以被配置為一臺計算機或者一個集群服務器甚至是物理態的路由器。
請參圖1至圖5所示出的發明一種在數據中心的計算節點間實現高速分布式路由的方法的一種實施例。本實施例所示出的方法不使用網絡命名空間技術來模擬路由器并進行路由,因此可簡化計算節點的拓撲結構;同時,在本發明中,可根據計算節點中所創建的網絡之間因數據傳輸過程中所產生的不同規格數據流量,而根據預先設定的網絡流量閾值,選擇是否通過網絡節點40進行數據的轉發。
具體的,該一種在數據中心的計算節點間實現高速分布式路由的方法,該方法主要包括以下步驟。
參圖1所示,首先:部署至少包含兩個計算節點的云計算系統。在本實施方式中,該云計算系統可選用Openstack系統30。Openstack系統30中包括:計算節點A、計算節點B、網絡節點40及控制節點50。網絡節點40、計算節點A與計算節點B接入數據網絡交換機10。其中,計算節點A通過物理網卡A03接入數據網絡交換機10,計算節點B通過物理網卡B03接入數據網絡交換機10。網絡節點40接入外網,控制節點50分別連接網絡節點40、計算節點A與計算節點B。上述每個節點占用一臺物理機。計算節點A與計算節點B部署虛擬機,并通過虛擬機向用戶提供云服務。
參圖2所示,然后,將Openstack系統30的二層網絡服務設置以開放虛擬交換機(Openvswitch,OVS虛擬交換機)為驅動,將三層網絡服務模式設置為高速分布式路由模式(Fast-DVR)。在計算節點A上安裝并啟動開放虛擬交換機(OVS虛擬交換機)A02。通過高速分布式路由控制器70(即Fast-DVR控制器)更新計算節點A的通道網橋(br-tun)。同理所述,在計算節點B上安裝并啟動開放虛擬交換機(OVS虛擬交換機)B02,通過高速分布式路由控制器70更新計算節點B的通道網橋(br-tun)。計算節點A與計算節點B被控制節點50集中控制。
計算節點A開啟與開放虛擬交換機(即OVS虛擬交換機)A02邏輯上耦聯的虛擬機VM-i……虛擬機VM-J、虛擬機VM-j1,并與物理網卡A03連接。計算節點B上開啟與開放虛擬交換機(OVA)B02邏輯上耦聯的虛擬機VM-1…..虛擬機VM-m、虛擬機VM-o,并與物理網卡B03連接。物理網卡A03與物理網卡B03同時接入數據網絡交換機10,并通過數據網絡交換機10對計算節點A與計算節點B中所形成的網絡進行組網。
網絡節點40中配置有虛擬路由器401及OVS虛擬交換機402,并通過物理網卡403接入數據網絡交換機10。任何一個計算節點中的虛擬機藕接集成網橋(br-int),并通過集成網橋(br-int)與通道網橋(br-tun)連接。通道網橋(br-tun)設置為Flow模式。
在本實施方式中,為了簡化表示,計算節點A中的虛擬機VM-j與虛擬機VM-j1組成網絡X,計算節點B中的虛擬機VM-m與虛擬機VM-o組成網絡Y。開放虛擬交換機(Openvswitch,OVS虛擬交換機)主要功能為:傳遞位于不同計算節點之間的網絡X與網絡Y之間的數據包,以及,網絡X及網絡Y中所包含的虛擬機與外網之間的通信。
在本實施方式中,高速分布路由模式是指,通過網絡節點40與計算節點A和/或計算節點B共同來實現Openstack系統30的網絡路由功能。網絡節點40實時更新和上報網絡X與網絡Y的路由信息,計算節點A與計算節點B使用高速分布式路由控制器(Fast-DVR控制器)70監控從OVS虛擬交換機A02、OVS虛擬交換機B02進出的網絡流量,并更新OVS虛擬交換機A02、OVS虛擬交換機B02上的三層路由流表、二層交換流表以及二層交換流表與通道網橋的接入點之間所形成的數據通道。所謂計算節點間的網絡流量是指從一個計算節點的OVS虛擬交換機向另一個計算節點的OVS虛擬交換機進行數據包分發廣播過程中所形成的流量。
同時,在本實施方式中,還包括網絡節點40實時更新已經建立的網絡的路由信息,并上報至控制節點40中,從而是實現了整個Openstack系統30內部的網絡拓撲動態規劃的透明性,使得控制節點40能夠靈活的在不同計算節點之間需要建立網絡連接的不同虛擬機之間制定不同的網絡流量閾值,以更好的響應用戶發起個性化請求所導致的數據流量的差異,在不降低用戶體驗的前提下又能夠提高整個Openstack系統30的性能,避免網絡節點40出現擁塞的現象。
例如,當啟動Openstack系統30中的各個節點上的網絡服務后,用戶可通過API(Openstack系統30的應用程序接口)向Openstack系統30下發如下自定義配置:
192.168.1.0/24:192.168.2.0/24:1M
在本實施例中,以計算節點A與計算節點B之間形成不同規格的數據鏈路舉例說明。該條自定義配置表示:當計算節點A上的內網網段為192.168.1.0/24網絡X與計算節點B上的內網網段為192.168.2.0/24的網絡Y進行通信時所形成的網絡流速低于1Mb/s時,計算節點A上的內網網段為192.168.1.0/24的網絡X的虛擬機必須借助網絡節點40,以實現與計算節點B上內網網段為192.168.2.0/24的網絡Y的虛擬機進行通信。當網絡流速高于1Mb/s時,該計算節點A上的內網網段為192.168.1.0/24的網絡X的虛擬機可以不借助網絡節點40,而能夠直接與計算節點B上的內網網段為192.168.2.0/24的網絡Y的虛擬機進行通信。
當計算節點A與計算節點B之間的網絡流量超過網絡流量閾值后,可通過高速分布式路由控制器(Fast-DVR控制器)70操作OVS虛擬交換機上的路由和交換規則以及數據通道等,實現動態規劃各計算節點之間的網絡拓撲。
在Openstack系統30中創建網絡X(內網網段:192.168.1.0/24)及網絡Y(內網網段:192.168.2.0/24),并在每個計算節點上都創建若干屬于該兩個網絡的虛擬機。為簡化表示,網絡X與網絡Y均包含兩臺虛擬機。
初始時,Openstack系統30內的網絡X與網絡Y之間的網絡流量較小,不同計算節點A的網絡X與計算節點B的網絡Y之間的網絡流量沒有到達上述用戶配置的自定義配置出的成對的兩個計算節點之間的網絡流量閾值。這段時間Openstack系統30內的內部網絡拓撲如圖4所示。其中,黑色粗虛線表示位于不同計算節點的網絡X與網絡Y之間進行網絡通信所形成的數據鏈路需要通過網絡節點40以到達對端的計算節點。
結合圖4及圖5所示,同時,作為本發明的一種重要變形例,還可對至少兩個計算節點間成對的兩個不同網絡設置不同的自定義配置。例如,還可對計算節點A與計算節點B之間的兩個不同網絡設置不同的自定義配置,甚至是可在計算節點A與計算節點B所形成的不同網絡之間建立成對的網絡連接時設置不同的自定義配置。
例如,在計算節點A中將內網網段不同的一個或者多個虛擬機組成兩個不同的網絡(例如網絡C和網絡D),在計算節點B中將內網網段不同的一個或者多個虛擬機組成兩個不同的網絡(例如網絡E和網絡F)。此時,用戶可通過下發不同的自定義配置,在網絡C與網絡E之間配置網絡流量閾值為T的自定義配置,在網絡D和網絡F之間配置網絡流量閾值為G的自定義配置,且網絡流量閾值T與網絡流量閾值為G可為不同的設定值,當然也可為相同的網絡流量閾值的設定值。從而為整個數據中心在計算節點間由于網絡流量的變化而實現更加靈活的拓撲調整,從而進一步的簡化了整個數據中心的拓撲結構,顯著的減少了網絡節點40的網絡吞吐壓力,提高了數據中心整體的網絡性能。
當不同計算節點間網絡X與網絡Y間的網絡流量超過到上述用戶配置的自定義配置出的成對的兩個計算節點之間的網絡流量閾值時,Openstack系統30的內部網絡拓撲會發生變化,變化后的拓撲圖如圖5所示。其中,黑色粗虛線表示位于不同計算節點的網絡X與網絡Y進行網絡通信所形成的數據鏈路。
在此種情形下,網絡X與網絡Y進行分發的數據包不需要通過網絡節點40,而直接通過數據網絡交換機10直接對數據包進行轉發并達到對端的計算節點中,從而避免了占用網絡節點40的網絡資源。在本實施方式中,網絡拓撲可隨各計算節點間網絡流量的變化而不斷變化,以追求在不影響計算節點性能的前提下,有效減輕網絡節點40的負擔,并提高Openstack系統30的性能,顯著減少了網絡節點40的數據吞吐壓力,提高了數據中心整體的網絡性能。
計算節點A及計算節點B可以按照以下順序操作網絡拓撲動態配置的相關服務:
(1)配置網絡服務:使用Openvswitch虛擬交換機(OVS虛擬交換機)作為網絡服務的驅動,配置通道網橋(br-tun)和集成網橋(br-int);
(2)啟動Openvswitch服務;
(3)啟動Fast-DVR控制器70;
(4)啟動Neutron-Openvswitch-Agent服務并加載至Fast-DVR控制器70。
自定義配置規則有以下約束:
(1)一條自定義配置只能設置不同計算節點間的某兩個不同網絡間的網絡流量閾值。
(2)當多條自定義配置對應相同的兩個不同網絡時(先后順序不一致不算相同),后下發的自定義配置將覆蓋先下發的自定義配置。
(2)網絡流量閾值設置在一個合理范圍內,理論上必須大于0Mb/S,小于物理網卡的最大限速,具體運行時應參照網絡環境設置合理網絡流量閾值。在本實施方式中,網絡流量閾值不超過與通道網橋連接的物理網卡的最大傳輸速度。所述物理網卡包括計算節點A與計算節點B中的物理網卡。
同時,本實施方式中的所述動態規劃各計算節點間的網絡拓撲可以包含但不限于以下幾種操作:
鏈路切換:當某一計算節點與其他計算節點的不同網絡間的流量高于或低于某一自定義配置所包含的網絡流量閾值時,該計算節點將創建或刪除到其他計算節點或網絡節點40間的數據鏈路。以實現計算節點間東西方向的數據鏈路與計算節點和網絡節點40間的南北方向的數據鏈路的切換。
鏈路分配:當某一計算節點與其他計算節點的不同網絡間的流量超過某一自定義閾值所包含的網絡流量閾值時,該計算節點將在到其他計算節點或網絡節點40的數據鏈路上分配不同比例的網絡流量。
具體的,結合圖2至圖5所示,本實施方式中,計算節點A與計算節點B之間的網絡拓撲的動態規劃操作具體如下所述。
在本實施方式中,可隨已經建立網絡連接的成對的兩個計算節點間的網絡流量的變化,將高于網絡流量閾值的成對的兩個計算節點通過計算節點中與OVS虛擬交換機連接的物理網卡直接連通,并將數據通過數據網絡交換機10到達對端的計算節點中的網絡(例如上文所述的網絡X與網絡Y)。具體的,網絡節點40實時上報本節點(即網絡節點40)最新的網絡路由信息。用戶通過API向Fast-DVR控制器70下發自定義配置后,計算節點上的Fast-DVR控制器70將實時監控從OVS虛擬交換機流出的網絡流量。
當監測到網絡流量觸發用戶下發的自定義配置中的網絡流量閾值后,Fast-DVR控制器70會及時更新OVS虛擬交換機上的二層交換流表、三層路由流表和數據通道,觸發類型主要分為以下兩種:
當Fast-DVR控制器70監測計算節點A上的網絡X與計算節點B(其他計算節點可能為多個,但一定是成對互聯的)上的另一網絡Y之間的網絡流量增長到自定義配置的網絡流量閾值時,Fast-DVR控制器70會對這些計算節點進行以下操作:
1、在計算節點A、計算節點B上的OVS虛擬交換機A02及OVS虛擬交換機B02中的三層路由流表中添加或修改網絡X與網絡Y間的路由規則;
2、在計算節點A、計算節點B上的OVS虛擬交換機A02及OVS虛擬交換機B02通道網橋上添加或修改計算節點A與計算節點B間的數據通道;
3、在計算節點A、計算節點B上的OVS虛擬交換機A02及OVS虛擬交換機B02中的二層交換流表中添加或修改網絡X與網絡Y間的交換規則,將計算節點A上的網絡X與計算節點B上的網絡Y之間所分發的網絡數據直接發往上一步驟設置的數據通道,如圖5所示(黑色粗虛線表示網絡X與網絡Y之間直接建立連接時所形成的數據鏈路,且該數據鏈路是雙向的)。從而在計算節點A與計算節點B之間建立直接的數據鏈路,并避免通過網絡節點40。
當Fast-DVR控制器70監測計算節點A上的某個網絡X與計算節點B(其他計算節點可能為多個)上的另一網絡Y之間的網絡流量降低到自定義配置的網絡流量閾值時,Fast-DVR控制器70會對這些計算節點進行以下操作:
1、在計算節點A、計算節點B上的OVS虛擬交換機A02、OVS虛擬交換機B02三層路由流表中刪除或修改網絡X與網絡Y間的路由規則;
2、在計算節點A、計算節點B上的OVS虛擬交換機的通道網橋上刪除或修改計算節點A與計算節點B間的數據鏈路;
3、在計算節點A、計算節點B上的OVS虛擬交換機A02、OVS虛擬交換機B02二層交換流表中刪除或修改網絡X與網絡Y間的交換規則,將計算節點A上的網絡X與計算節點B上的網絡Y之間所形成的數據包在轉發過程中通過網絡節點40進行轉發,以形成雙向的數據通道,如圖4所示(黑色粗虛線表示網絡X與網絡Y之間直接建立連接時所形成的數據鏈路,且該數據鏈路是雙向的)。
在本實施方式中,實現了對計算節點上網絡流量的監控,并通過網絡節點40和計算節點實現了網絡路由功能,既簡化了整個數據中心的拓撲結構又能夠顯著的減少了網絡節點40的網絡吞吐壓力,提高了數據中心整體的網絡性能。
本實施方式所示出的方法,能夠實時監控計算節點中的OVS虛擬交換機的網絡流量,將集中式路由方式和分布式路由方式有機結合,既保留了一個全功能的集中式路由方式來處理所有缺省的路由請求,又也可隨著不同計算節點間的不同網絡所形成的數據鏈路流量的變化,采用二層轉發及三層路由等方式,將流量大、性能要求高的計算節點之間的數據鏈路直接連通的方式,并將之作為補充。
因此,本實施方式所示出的一種在數據中心的計算節點間實現高速分布式路由的方法在計算節點保留二層轉發功能的基礎之上,添加了少量的三層路由規格,在不影響計算節點工作效率的前提下,又能夠提高對較大數據規模的數據鏈路的支持能力,從而提高了整個數據中心以及Openstack系統30網絡數據的整體吞吐能力,具有非常良好的用戶體驗,避免了網絡節點40承擔過重的數據分發任務。
上文所列出的一系列的詳細說明僅僅是針對本發明的可行性實施方式的具體說明,它們并非用以限制本發明的保護范圍,凡未脫離本發明技藝精神所作的等效實施方式或變更均應包含在本發明的保護范圍之內。
對于本領域技術人員而言,顯然本發明不限于上述示范性實施例的細節,而且在不背離本發明的精神或基本特征的情況下,能夠以其他的具體形式實現本發明。因此,無論從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本發明的范圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和范圍內的所有變化囊括在本發明內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。
此外,應當理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術方案,說明書的這種敘述方式僅僅是為清楚起見,本領域技術人員應當將說明書作為一個整體,各實施例中的技術方案也可以經適當組合,形成本領域技術人員可以理解的其他實施方式。