數據中心網路架構淺談(一)

不論我們在討論SDN,NFV或者其他的虛擬網路技術,有一點需要明確,網路數據包最終都是跑在物理網路上。物理網路的特性,例如帶寬,MTU,延時等,最終直接或者間接決定了虛擬虛擬網路的特性。可以說物理網路決定了虛擬網路的「天花板」。在Mirantis對OpenStack Neutron的性能測試報告中可以看出,網路設備的升級和調整,例如採用高速網卡,配置MTU9000,可以明顯提高虛擬網路的傳輸效率。在對網路性能進行優化時,有些物理網路特性可以通過升級設備或線路來提升,但是有些與網路架構有關。升級或者改動網路架構帶來的風險和成本是巨大的,因此在架設數據中心初始,網路架構的選擇和設計尤其需要謹慎。另一方面,在設計虛擬網路時,不可避免的需要考慮實際的物理網路架構,理解物理網路架構對於最終理解虛擬網路是不可缺少的。

接下來我將分幾次說一說自己對數據中心網路架構的認識,想到哪說到哪,不對的地方請大家指正。

傳統數據中心網路架構

在傳統的大型數據中心,網路通常是三層結構。Cisco稱之為:分級的互連網路模型(hierarchical inter-networking model)。這個模型包含了以下三層:

  • Access Layer(接入層):有時也稱為Edge Layer。接入交換機通常位於機架頂部,所以它們也被稱為ToR(Top of Rack)交換機,它們物理連接伺服器。
  • Aggregation Layer(匯聚層):有時候也稱為Distribution Layer。匯聚交換機連接Access交換機,同時提供其他的服務,例如防火牆,SSL offload,入侵檢測,網路分析等。
  • Core Layer(核心層):核心交換機為進出數據中心的包提供高速的轉發,為多個匯聚層提供連接性,核心交換機為通常為整個網路提供一個彈性的L3路由網路。

一個三層網路架構示意圖如下所示:

通常情況下,匯聚交換機是L2和L3網路的分界點,匯聚交換機以下的是L2網路,以上是L3網路。每組匯聚交換機管理一個POD(Point Of Delivery),每個POD內都是獨立的VLAN網路。伺服器在POD內遷移不必修改IP地址和默認網關,因為一個POD對應一個L2廣播域。

匯聚交換機和接入交換機之間通常使用STP(Spanning Tree Protocol)。STP使得對於一個VLAN網路只有一個匯聚層交換機可用,其他的匯聚層交換機在出現故障時才被使用(上圖中的虛線)。也就是說匯聚層是一個active-passive的HA模式。這樣在匯聚層,做不到水平擴展,因為就算加入多個匯聚層交換機,仍然只有一個在工作。一些私有的協議,例如Cisco的vPC(Virtual Port Channel)可以提升匯聚層交換機的利用率,但是一方面,這是私有協議,另一方面,vPC也不能真正做到完全的水平擴展。下圖是一個匯聚層作為L2/L3分界線,且採用vPC的網路架構。

隨著雲計算的發展,計算資源被池化,為了使得計算資源可以任意分配,需要一個大二層的網路架構。即整個數據中心網路都是一個L2廣播域,這樣,伺服器可以在任意地點創建,遷移,而不需要對IP地址或者默認網關做修改。大二層網路架構,L2/L3分界在核心交換機,核心交換機以下,也就是整個數據中心,是L2網路(當然,可以包含多個VLAN,VLAN之間通過核心交換機做路由進行連通)。大二層的網路架構如下圖所示:

大二層網路架構雖然使得虛機網路能夠靈活創建,但是帶來的問題也是明顯的。共享的L2廣播域帶來的BUM(Broadcast·,Unknown Unicast,Multicast)風暴隨著網路規模的增加而明顯增加,最終將影響正常的網路流量。

傳統三層網路架構已經存在幾十年,並且現在有些數據中心中仍然使用這種架構。這種架構提出的最初原因是什麼?一方面是因為早期L3路由設備比L2橋接設備貴得多。即使是現在,核心交換機也比匯聚接入層設備貴不少。採用這種架構,使用一組核心交換機可以連接多個匯聚層POD,例如上面的圖中,一對核心交換機連接了多個匯聚層POD。另一方面,早期的數據中心,大部分流量是南北向流量。例如,一個伺服器上部署了WEB應用,供數據中心之外的客戶端使用。使用這種架構可以在核心交換機統一控制數據的流入流出,添加負載均衡器,為數據流量做負載均衡等。

技術發展對網路架構的影響

數據中心是為了數據服務。隨著技術的發展,數據的內容和形式也發生了變化。

  • 虛擬化的流行。傳統的數據中心中,伺服器的利用率並不高,採用三層網路架構配合一定的超佔比(oversubscription),能夠有效的共享利用核心交換機和一些其他網路設備的性能。但是虛擬化的流行使得伺服器的利用率變高,一個物理伺服器可以虛擬出多個虛擬機,分別運行各自的任務,走自己的網路路徑。因此,高的伺服器利用率要求更小的超佔比。Gartner的一份報告:Forecast: x86 Server Virtualization, Worldwide, 2012-2018, 2014 Update指出,在2018年,82%的伺服器將是虛擬伺服器。虛擬化對數據中心網路架構的影響是巨大的。
  • 軟體架構的解耦。傳統的軟體架構,採用專用模式進行部署,軟體系統通常跑在一個物理伺服器,與其他的系統做物理隔離。但是,模塊化,分層的軟體架構設計已經成為了現在的主流。一個系統的多個組件通常分布在多個虛機/容器中。最典型的就是三層WEB應用,包含了Client/Application/DB。一次請求,不再是由一個虛機/物理機完成,而是由多個伺服器協同完成。這對網路的影響是,東西向流量變多了。
  • 新的應用的興起。傳統數據中心是為.com應用設計的,這些流量大多是客戶端和伺服器之間的通信。而分散式計算,大數據漸漸興起,這些應用會在數據中心的伺服器之間產生大量的流量。例如Hadoop,將數據分布在數據中心中成百上千個伺服器中,進行並行計算。據說Facebook的一個Hadoop集群有著超過100 petabytes的數據。可見對於某些應用,數據中心的東西向流量是巨大的。
  • 軟體定義數據中心(SDDC,Software Defined Data Center)的提出。SDDC提出軟體定義的數據中心,這要求數據中心的計算存儲網路都是可以軟體定義的。對應於網路,就是SDN。傳統的三層網路架構在設計之初並沒有考慮SDN。

總結起來,技術發展要求新的數據中心有更小的超佔比,甚至沒有超佔比;更高的東西向流量帶寬;支持SDN。

在這些需求裡面,更高的東西向流量支持尤為重要。前面說了南北向流量,東西向流量,這些分別是什麼東東?數據中心的流量總的來說可以分為以下幾種:

  • 南北向流量:數據中心之外的客戶端到數據中心伺服器之間的流量,或者數據中心伺服器訪問互聯網的流量。
  • 東西向流量:數據中心內的伺服器之間的流量。
  • 跨數據中心流量:跨數據中心的流量,例如數據中心之間的災備,私有雲和公有雲之間的通訊。

根據Cisco Global Cloud Index: Forecast and Methodology, 2015–2020,到2020年77%的數據中心流量將會是數據中心內部的流量,也就是東西向流量,這與上面的技術發展對網路架構的影響分析相符,這也是為什麼東西向流量尤其重要。

那傳統三層網路架構下的東西向流量是怎麼樣的?

前面說過傳統三層網路架構的誕生是在.com時代,主要是也為了南北向流量設計的。但是傳統的網路架構並非不支持東西向流量,下面來分析一下傳統三層網路架構中東西向流量走向。

首先,東西向流量分為L2和L3流量。

東西向的L2流量,如果源和目的主機都在同一個接入層交換機下,那麼可以達到全速,因為接入交換機就能完成轉發。

如果需要跨機架,但仍然是在一個匯聚層POD內,則需要通過匯聚層交換機進行轉發,帶寬取決於匯聚層交換機的轉發速率,埠帶寬和同時有多少個接入層交換機共享匯聚層交換機。前面說過匯聚層和接入層之間一般使用STP,這使得一個匯聚層POD只能有一個匯聚層交換機在工作。為了滿足跨機架的L2轉發,匯聚層交換機的性能,例如帶寬,轉發速率必然要大於接入層交換機。

如果L2流量需要跨匯聚層POD(大二層架構),那必須經過核心交換機。同樣的問題仍然存在,對核心交換機的要求會更高。

東西向的L3流量,不論是不是在一個接入層交換機下,都需要走到具有L3功能的核心交換機才能完成轉發。如下圖所示:

這是一種發卡(hair-pin)流量,它不僅浪費了寶貴的核心交換機資源,而且多層的轉發增加了網路傳輸的延時。同樣,由於超佔比的存在,它也不能保證全速的L3流量。

總的來說,為了保證任意的東西向流量帶寬,勢必需要更高性能的匯聚層交換機和核心交換機。另一方面,也可以小心的進行設計,盡量將有東西向流量的伺服器置於同一個接入交換機下。不管怎麼樣,這都增加了成本,降低了可用性。

市場需求變化對網路架構的影響

由於成本和運維因素,數據中心一般是大企業才有能力部署。但是隨著技術的發展,一些中小型企業也需要部署數據中心。不同的是,中小型企業的需求一般是,以一個小規模啟動,隨著自身業務的增長再逐步的擴展數據中心。數據中心的規模很大程度上取決於網路的規模,對應網路的需求就是,以一個低成本,小規模的網路架構啟動,但是要能夠水平擴展到較大規模。

傳統三層網路架構的規模取決於核心層設備的性能和規模,取決於交換機的埠密度。最大的數據中心對應著體積最大和性能最高的網路設備,這種規模的設備並非所有的網路設備商都能提供,並且對應的資金成本和運維成本也較高。採用傳統三層網路架構,企業將面臨成本和可擴展性的兩難選擇。

最後

傳統的三層網路架構必然不會在短期內消失,但是由於技術和市場的發展,其短板也越來越明顯。基於現有網路架構的改進顯得非常有必要,新的網路架構最好是:由相對較小規模的交換機構成,可以方便的水平擴展,較好的支持HA(active-active模式),支持全速的東西向流量,不採購高性能的核心交換機也能去除超佔比,支持SDN等等。


推薦閱讀:

Amazon AWS、MS Azure 底層實現有人知道嗎?想研究一下他們的雲數據中心實現架構
目前有哪些專門做數據中心冷卻的公司?
谷歌為什麼不將數據中心設立在中國?除了意識形態上的考慮,還有沒有其他顧慮?
VXLAN究竟有多大的魅力?

TAG:SDN | 数据中心 | 计算机网络 |