本文授權轉載自公眾號蛋蛋團。
01 資料中心是什麼
資料中心,指用於安置計算機系統及相關部件的設施,例如電信和儲存系統。
為了滿足自身的業務需求,保證資料的穩定和可靠。無論是網際網路還是傳統行業,都會有自己或大或小的資料中心,甚至如阿里雲和亞馬遜這種專門以出租計算資源的雲端計算公司,更是在全世界各地建立了不等的資料中心。
儘管到到如今的雲端計算時代,將資料中心自身的資源虛擬化以達到更高的利用率,有一點肯定,物理資源決定了虛擬資源的天花板。
物理網路的特性,例如頻寬,MTU,延時等,最終直接或者間接決定了虛擬虛擬網路的特性。對網路效能進行優化時,有些物理網路特性可以通過升級裝置或線路來提升,但是有些與網路架構有關。升級或者改動網路架構帶來的風險和成本是巨大的,因此在架設資料中心初始,網路架構的選擇和設計尤其需要謹慎。
那麼,從過去的傳統資料中心,到如今的雲端計算時代資料中心,中間經歷了怎樣的變遷呢?
02 傳統資料中心網路架構
在傳統的大型資料中心,網路通常是三層結構。Cisco稱之為:分級的互連網路模型(hierarchical inter-networking model)。
三層網路結構是採用層次化架構的三層網路,有三個層次:核心層(網路的高速交換主幹)、匯聚層(提供基於策略的連線)、接入層(將工作站接入網路),這個模型如下:
接入層(Access Layer) :接入交換機通常位於機架頂部,所以它們也被稱為ToR(Top of Rack)交換機,它們物理連線伺服器。
匯聚層(Aggregation 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的網路架構。
傳統的資料中心網路技術,STP 是二層網路中非常重要的一種協議。在二層有一個相當矛盾的點,那就是可靠性和安全性的矛盾。
可靠性是指構建二層網路時,一般會採用會採用裝置冗餘和鏈路冗餘的方式。
安全性是指二層交換機同處於一個廣播域,廣播報文在環路中會反覆持續傳送,可能會形成廣播風暴,所以必須防止形成環路。
要想兩種同時達到,可以採用STP(生成樹協議)自動控制,即冗餘裝置和冗餘鏈路成備份,在正常情況下被阻塞掉,當出現鏈路故障時冗餘的裝置埠和鏈路才會被開啟。
由於 STP 的收斂效能等原因, 一般情況下 STP 的網路規模不會超過 100臺交換機。STP的這種機制導致了二層鏈路利用率不足,尤其是在網路裝置具有全連線拓撲關係時,這種缺陷尤為突出。
如上圖所示,當採用全網STP二層設計時,STP將阻塞大多數鏈路,使接入到匯聚間頻寬降至1/4,匯聚至核心間頻寬降至1/8。這種缺陷造成越接近樹根的交換機,埠擁塞越嚴重,造成的頻寬資源浪費就越可觀。
03 雲端計算的發展對資料中心的影響
隨著網際網路的發展帶來的資料大爆發以及虛擬化技術的發展,計算資源被池化,對資料中心也提出了新的挑戰:動態遷移和高效能。
採用大二層網路架構,可以實現整個資料網路都是L2廣播域,這樣即可實現動態遷移。大二層網路架構,L2/L3分界在核心交換機,核心交換機以下,也就是整個資料中心,是L2網路(當然,可以包含多個VLAN,VLAN之間通過核心交換機做路由進行連通)。大二層的網路架構如下圖所示:
相對於之前的基礎架構而言,具有如下特點:
①資源池化——硬體伺服器通過虛擬化技術進行部分硬體資源的整合,構造計算資源池化
②統一管理——在虛擬化平臺上建立虛擬機器,在虛擬機器裡部署業務,實現平臺上虛擬機器的統一維護和管理
③橫向擴充套件——計算資源不夠,可以直接補充硬體伺服器達到資源擴充套件
然而,傳統大二層的缺點也和明顯,共享的L2廣播域帶來的BUM(二層資料鏈路層的報文)風暴隨著網路規模的增加而明顯增加,最終將影響正常的網路流量。
同時,虛擬機器可以遷移,但是如何達到遷移過程中使用者無感知,IP地址等不改變呢?即實現動態遷移。
雲端計算技術的發展的不僅僅依託於虛擬化,還有一個非常重要虛擬化管理軟體平臺,典型的如openstack。
通過x86伺服器和二層交換機的連線,將網路功能、計算功能、儲存功能和安全功能全部虛擬化,以虛擬機器的形式實現我們傳統資料中心硬體堆積所完成的一切功能,全部元件融合在一套虛擬化管理軟體平臺中,對外提供虛擬儲存、網路、計算等資源,這就是所謂的”超融合”平臺。
04 資料中心流量豐富化帶來的挑戰
網際網路這幾年發展的特別快,然而,網際網路公司本質上來講也是資料公司,資料承載著公司絕大部分的價值,於是資料安全性以及可靠性也變的越發重要。 在早期,小規模資料中心主要是南北流量,而網際網路爆發式的資料增長帶來的資料中心虛擬化也要求更高的東西流量,甚至跨資料中心流量。
南北向流量:資料中心之外的客戶端到資料中心伺服器之間的流量,或者資料中心伺服器訪問網際網路的流量。
東西向流量:資料中心內的伺服器之間的流量。
跨資料中心流量:跨資料中心的流量,例如資料中心之間的災備,私有云和公有云之間的通訊。
在思科的分析報告中,預計2020年,東西流量能達到總頻寬的77%,跨資料中心9%,南北流量僅佔總頻寬的14%。
而傳統三層網路架構主要是為了南北流量設計,儘管也支援東西流量,但是不足十分明顯。
東西流量分為L2和L3,如果是L2流量,如果源和目的主機都在同一個接入層交換機下,那麼可以達到全速,因為接入交換機就能完成轉發。如果需要跨機架,但仍然是在一個匯聚層POD內,則需要通過匯聚層交換機進行轉發,頻寬取決於匯聚層交換機的轉發速率。 如果是L3流量,必須經過核心交換機完成轉發,它不僅浪費了寶貴的核心交換機資源,多層轉發也增加了延時。
而到大二層網路架構,無論是L2還是L3流量,都需要經過核心交換機,這也對核心交換機的效能提出了新的挑戰。
05 總結
傳統三層網路架構已經存在幾十年,並且現在有些資料中心中仍然使用這種架構。最主要的原因是成本。
一方面是因為早期L3路由裝置比L2橋接裝置貴得多。即使是現在,核心交換機也比匯聚接入層裝置貴不少。
另一方面,早期的資料中心,大部分流量是南北向流量。
例如,一個伺服器上部署了WEB應用,供資料中心之外的客戶端使用。使用這種架構可以在核心交換機統一控制資料的流入流出,新增負載均衡器,為資料流量做負載均衡等。
傳統的三層網路架構必然不會在短期內消失,但是由於技術和市場的發展,其短板也越來越明顯。比如企業將面臨成本和可擴充套件性的兩難選擇。
基於現有網路架構的改進顯得非常有必要,新的網路架構最好是:由相對較小規模的交換機構成,可以方便的水平擴充套件,較好的支援HA(active-active模式),支援全速的東西向流量,不採購高效能的核心交換機也能去除超佔比,支援SDN等等。
「Linux雲端計算網路」公眾號後臺回覆“加群”,帶你進入高手如雲交流群
我的公眾號 「Linux雲端計算網路」(id: cloud_dev) ,號內有 10T 書籍和視訊資源,後臺回覆 「1024」 即可領取,分享的內容包括但不限於 Linux、網路、雲端計算虛擬化、容器Docker、OpenStack、Kubernetes、工具、SDN、OVS、DPDK、Go、Python、C/C++程式設計技術等內容,歡迎大家關注。