Openstack neutron:雲數據中心底層網絡架構


目錄

 

除去我們上一節提到的cisco 的ACI是與思科封閉,自成一體的SDN解決方案以外,大部分SDN的解決方案的重點都不在硬件設備上。常見SDN解決方案的目的都是盡量在現有的成熟交換機或者標准白牌openflow的交換機基礎上,完成SDN的跨越。

所以對於物理層面的設計,我們重點都放在了網絡結構的設計,也就是幾類網絡流量模型的區分和設計上。

 

雲數據中心流量類型

雲數據中心的流量可以簡單分為以下幾個大類:

      • 管理網絡(API網絡):用於雲數據中心內部的管理流量,包括對內部虛擬化組件之間的、SDN控制組件之間、消息隊列、以及各種HA的檢測信號等。管理流量一般不對外,並且需要連接雲數據中心中的每一個服務器節點,並只在數據中心內部傳輸。
      • 租戶網絡:用於數據中心的各個租戶之間流量,提供雲計算服務,保證用戶內部vm之間能夠通信同時隔離不同用戶之間的流量是最基本的要求。租戶之間隔離的方式包括了vlan、vxlan、gre、stt、nvgre等等,后續我們再詳細介紹。
      • 外聯網絡(外部網絡):外部網絡的名稱是站在租戶角度進行描述的,即租戶網絡只能用戶業務虛擬機之間的通信,與其余設備的通訊則都要通過外部網絡的轉發。除了路由以外,外部網路往往還兼具VPN、NAT、LB、FW等職能。此處往往需要將租戶網絡中為了隔離而修改過的數據包轉封包成常見的二層幀,以及與外界網絡的路由
      • 存儲網絡:用於連接計算節點和存儲節點,主要是為計算節點中的主機和虛擬機提供存儲服務。存儲網絡也不對外,盡在數據中心內部傳輸。

 

NSX整體網絡結構

我們先看一下NSX定義的整體網絡結構:

nsx的架構中,左側區域對應的是計算節點集群,其上以運行租戶的業務為主。包括用戶部署的各類的虛擬機、虛擬網絡、分布式網關、安全策略等等。是數據中心服務的核心。該區域的流量類型包括:租戶網絡、存儲網絡、管理網絡。(也意味着服務器至少需要三塊網卡)

中間區域對應是的基礎架構集群,包括雲計算數據中心的管理節點和IP SAN 共享存儲。管理節點包括: vCenter Server、NSX Manager、NSX Controller、CMP 。IP SAN共享存儲節點則主要是向計算節點集群中的主機或用戶的虛擬機提供基於IP網絡的iSCSI或者是NAS存儲。流量類型包括:存儲流量、管理流量。

右側的邊緣節點則用來為租戶網絡提供互聯網訪問服務。因此需要連接租戶網絡和外部網絡,並為租戶提供路由、NAT、防火牆、公網IP等服務。其中以NSX的EDGE虛擬網關為主。也可以有硬件路由器、防火牆等設備。流量類型以:外部網絡、租戶網絡、管理網絡為主。

 

 

管理網絡(API網絡)

管理網絡需要連接雲環境中的每一個節點,上面傳輸的數據包括虛擬化中心vcenter對host的管理流量、HA心跳、SDN控制器(nsx controller、nsmanager)、雲管理平台API、雲監控運營平台等多種雲計算數據中心管理運營組件的管理流量,屬於數據中心的神經網絡。

vmware的設計中,管理控制的節點部署在一個物理主機集群,集群開啟HA、DRS等服務,保障數據中心整個控制平面的可靠和穩定。此外IP共享存儲也被放置在該區域中。

 

vmware特意將vmotion的流量也單獨列出來成為一類流量。除此之外共享存儲也需要單獨進行傳輸。管理節點上存儲、vmotion、租戶網絡、管理網絡、外部網絡,一般通過物理交換機上的VLAN進行隔離的,並連接物理服務器上的不同物理網卡。管理網絡對於帶寬的要求並不高,千兆、萬兆都可以。但是管理網絡的IP共享存儲對帶寬的要求較高,至少需要部署萬兆的網絡。

 

重要 總結:

管理網絡連接數據中心所有的節點,主要用於對底層資源的控制,和API調用,對網絡的要求不高。一般通過服務器的管理網卡 1 x 1 GbE 或者1 x 10 GbE 交換機網絡互聯,一般采用單獨的接入交換機。

對於vmware的環境來說,vmotion的流量可以走單獨的網卡和也可以和萬兆管理網絡互聯

 

 

租戶網絡

租戶網絡對應的是雲數據中心的租戶之間的虛擬機用來通信的網絡。一般連接所有提供計算服務的計算節點。租戶網絡的數據都被封裝到指定的VLAN中,在外部看來就是VLAN內主機之間的通信,內部流量不可見。

租戶網絡涉及到NSX、openstack neutron 這類解決方案中一個核心的理念,那就是二層的overlay。

嚴格來說二層的overlay技術並不算sdn技術中的一部分。在數據中心的環境中,為了保障數據的安全,需要在網絡層面上隔離各個租住的虛擬主機,根據業務的特點,一個租戶可能使用到多個vlan,例如一個典型的三層架構的應用中,界面、中間件、數據庫分屬於不同vlan,並通過安全策略控制之間的訪問。這種情況下一個租戶就占用了3個vlan,而vlan的總數才4096個,還要扣除各個設備廠家的保留vlan和用作管理的vlan等。這樣一個數據中心能夠承載的用戶數就被極大的限制住了。

雲數據中心用戶的虛擬網絡通過不同的VNI號(Vxlan Network identifier)來區分,24bit的VNI包含2^24 = 16 777 216個網段,按照一個用戶創建10個私有的網段來計算,一個機房可以滿足上百萬用戶的使用需求。實際上即使是國內的阿里雲的總的用戶數加起來也才幾十萬。這還是由分布在全國和海外的多個機房共同承當。所以通過二層的overlay技術,租戶網絡僅需設計少量vlan即可滿足海量用戶的使用要求。甚至可以將所有租戶的流量全部封裝在一個vlan內,但是過多的廣播包會影響網絡的性能,vmware有針對廣播、多播流量的解決方案。詳細情況放到下一節。

因為單個主機上承載的虛擬機數量較多,為了保障虛擬設備之間有足夠的帶寬,租戶網絡至少應該采用萬兆的網絡,且因為二層數據層有額外的封裝開銷,所有需要將租戶網絡MTU設置成1600.

重要 總結:

租戶網絡連接計算節點和雲數據中心的出口區域,其上是通過overlay技術標記的租戶的虛機之間的數據。租戶網絡一般會規划多個vlan來減輕廣播流量的影響。物理機主機上虛擬機數量比較多,要保證比較良好的網絡質量,則服務器的租戶一般網卡通過1 x 10 GbE 或者1 x 40 GbE交換機網絡互聯

 

 

外聯網絡

外聯網絡是相對用戶來說,用戶虛擬機之間的流量完全可以通過用戶網絡完成傳輸,但與外界(通常是是互聯網,也包括數據中心內部網絡)通信,則需要解除原本overlay的封裝,並映射公網IP。除此之外還包括一起其他網絡服務,如:NAT、VPN、防火牆、LB等。

 

所以外聯網絡內的流量包括:用戶網絡流量、管理流量、外網流量。

Vmware Edge 機架中主要運行的是NSX的edge設備。edge設備一邊連接租戶網絡的分布式路由一邊連接外網(WAN)。它代表是傳統數據中心的南北向的流量,在網絡的邊緣提供NAT、VPN、LB、FW等服務。edge組件本身是一台虛擬設備,通過vmware nsx的管理頁面來統一管理,但是控制層面和轉發層面還是集中在設備上。它的實現方式更像NFV。

 

重要 總結:

NSX采用軟件路由器連接租戶網絡和外部網絡。每個租戶都能創建自己專屬的軟件路由器,並自定義出口的策略。外部網絡一般通過1 x 10 GbE 或者1 x 40 GbE交換機網絡互聯。外部網絡北向一般是數據中心的傳統交換機和路由器。

 

 

存儲網絡

存儲網絡主要是用於連接存儲節點和計算節點。在雲計算數據中心中,存儲以分布式的存儲為主。

VMware推薦直接在計算節點使用VSAN來直接為租戶業務提供持續化存儲,也就是說計算節點也同時作為存儲節點來使用。那就意味着存儲網絡是計算節點服務器之間互聯的網絡,VSAN的最佳實踐,推薦主機采用相同或者類似的磁盤配置。並使用單獨的網卡用作主機之間的存儲流量。

VSAN支持通過千兆網絡部署,前提是該網卡僅傳輸VSAN流量,但是實際使用中極度不推薦。且純SSD架構中,不支持使用千兆網絡。VSAN是以物理主機集群為單位組建的,每個集群有且僅有一個vsan存儲集群。且所有需要使用到該存儲的主機,必須都處於同一個集群內。即便該主機不提供vsan磁盤組。

所以存儲網絡至少應該使用使用萬兆交換機,服務器通過單個萬兆網卡互聯(VSAN暫不支持網卡聚合),組建VSAN內部網絡。同時VSAN需要通過組播來獲取集群變化信息,所以組播也必須支持。

 

重要 配置重點

存儲網絡以集群為單位,連接集群內的所有物理主機,存儲網絡至少需要1 x 10 GbE 或者1 x 40 GbE交換機網絡,並且需要組播支持。

 

 

openstack整體網絡結構

網絡上流傳的各種opnstack的架構圖都是組件模塊之間的架構圖,基本上會讓剛開始了解openstack的人看得一頭霧水。Mastering openstack書中有一張物理拓撲,架構非常清晰,如下:

 

Mastering Openstack)

通過這個架構圖很容易發現,其實兩者openstack的物理網絡架構和vmware NS的架構非常的類似。同樣將流量分為管理網絡、外部網絡、存儲網絡、租戶網絡。(同中將租戶網絡和存儲網絡都用紅色表示,但實際上是兩張網的)。但是細細探究會發現兩者還是有較大的差異。

 

管理網絡:(上圖中藍線)

openstack的管理網絡流量,同樣需要連接所有的主機,其上傳輸的流量包括:horizon、nova、cinder、keystone、glance、neutron等組件的管理服務。並通過管理網絡與計算節點、網絡節點上的agent、client通信。

值得一提的是,與vmware不同的是,openstack沒有將虛擬機遷移(vmotion)的流量單獨出來,而是直接走的管理網絡。所以此處會比vmware官方建議的少一類網絡,計算節點上也會少一塊網卡。

所以管理網絡的帶寬也會建議上到萬兆。

 

外部網絡:(上圖中黑線)

同樣是用來為租戶的私有網絡和我們常用的互聯網。其上主要運行的是neutron的各種插件,包括L2 agent、L3 agent、DHCP agent、VPN agent、FW agent,以及配套各種軟件(或者linuxnetwork namespace網絡命名空間,負責具體實現路由、防火牆、VPN等功能。為租戶提供各種諸如NAT、router之類的出口服務。

 

存儲網絡:(圖中紅線)

VSAN計算和存儲節點融合在一起有所不同,openstack架構中,普遍采用單獨的存儲服務器集群向計算節點服務器提供存儲服務,且支持塊存儲、文件存儲、對象存儲多種類型。

在網絡設計上也會有較大的差異,存儲服務器集群內部需要通過高性能網絡連接。同時存儲服務器與計算節點服務器之間也要通過高帶寬網絡連接。

實際上,vmware vsan 同樣允許計算節點和存儲節點處於不同的物理服務器上,但是要求使用vsan存儲的主機和提供vsan存儲的主機處於同一個集群。但是vsan集群中對於主機數有限制(6.0版本中已經升級到64台),每個集群只能有一個VSAN,且集群中所有的主機都會消耗vsan的license數量。所以在這種特殊的收費方式下,vsan實際部署都是采用融合方式也就是存儲節點和計算節點結合在一起

 

租戶網絡:(圖中紅線)

neutron的租戶網絡結構與vmware的類似,同樣通過二層的overlay技術來對租戶的流量進行標記,實現隔離。但是相比vmware必須采用自家的vDS或有限的幾家合作伙伴(ciscoibmbrocade)以外。Openstack neutron支持的二層設備包括一大票的開源虛擬交換機和商用虛擬交換機的插件並且不同的二層設備支持的協議和功能的實現都有不同。

 

 

除此之外還有Big switch 、brocade、IBM、MidoNet等等非常多的二層插件。不用的插件在二層租戶網絡的實現上都有非常大的差異。而且也大量使用着各種私有協議。早期openstack版本中,因為不同的插件控制器不同,而控制器只能使用一種。導致網絡使用的二層agent也必須為同一種。這一問題在后來版本中加入ML2層后得到了很好的解決。ML2屏蔽了不同插件的不同,而統一對外提供neutron網絡功能的API,兼容不同的二層實現方式只需將不同廠家的插件加入到ML2中。ML2中間層能夠很好地在一個網絡中兼容多種二層的插件。

所以,neutron server成了SDN的控制器,通過openflow、OVS DB的協議兼容了多種二層軟硬件設備。

后面的中心也會放在Open vSwitch和Linux Bridge

 

最后,這僅僅是openstacknsx的標准范例,實際上不同的環境下,所采用的技術有非常大的差異,比如專用的高安全性的機房、物理的overlay實現等。不過總的來說,流量的類型還是逃不出這幾大類。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM