本文受權轉載自公衆號蛋蛋團。編程
數據中心,指用於安置計算機系統及相關部件的設施,例如電信和儲存系統。安全
爲了知足自身的業務需求,保證數據的穩定和可靠。不管是互聯網仍是傳統行業,都會有本身或大或小的數據中心,甚至如阿里雲和亞馬遜這種專門以出租計算資源的雲計算公司,更是在全世界各地創建了不等的數據中心。服務器
儘管到到現在的雲計算時代,將數據中心自身的資源虛擬化以達到更高的利用率,有一點確定,物理資源決定了虛擬資源的天花板。網絡
物理網絡的特性,例如帶寬,MTU,延時等,最終直接或者間接決定了虛擬虛擬網絡的特性。對網絡性能進行優化時,有些物理網絡特性能夠經過升級設備或線路來提高,可是有些與網絡架構有關。升級或者改動網絡架構帶來的風險和成本是巨大的,所以在架設數據中心初始,網絡架構的選擇和設計尤爲須要謹慎。架構
那麼,從過去的傳統數據中心,到現在的雲計算時代數據中心,中間經歷了怎樣的變遷呢?負載均衡
在傳統的大型數據中心,網絡一般是三層結構。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。這種缺陷形成越接近樹根的交換機,端口擁塞越嚴重,形成的帶寬資源浪費就越可觀。
隨着互聯網的發展帶來的數據大爆發以及虛擬化技術的發展,計算資源被池化,對數據中心也提出了新的挑戰:動態遷移和高性能。
採用大二層網絡架構,能夠實現整個數據網絡都是L2廣播域,這樣便可實現動態遷移。大二層網絡架構,L2/L3分界在覈心交換機,核心交換機如下,也就是整個數據中心,是L2網絡(固然,能夠包含多個VLAN,VLAN之間經過核心交換機作路由進行連通)。大二層的網絡架構以下圖所示:
相對於以前的基礎架構而言,具備以下特色:
①資源池化——硬件服務器經過虛擬化技術進行部分硬件資源的整合,構造計算資源池化
②統一管理——在虛擬化平臺上創建虛擬機,在虛擬機裏部署業務,實現平臺上虛擬機的統一維護和管理
③橫向擴展——計算資源不夠,能夠直接補充硬件服務器達到資源擴展
然而,傳統大二層的缺點也和明顯,共享的L2廣播域帶來的BUM(二層數據鏈路層的報文)風暴隨着網絡規模的增長而明顯增長,最終將影響正常的網絡流量。
同時,虛擬機能夠遷移,可是如何達到遷移過程當中用戶無感知,IP地址等不改變呢?即實現動態遷移。
雲計算技術的發展的不只僅依託於虛擬化,還有一個很是重要虛擬化管理軟件平臺,典型的如openstack。
經過x86服務器和二層交換機的鏈接,將網絡功能、計算功能、存儲功能和安全功能所有虛擬化,以虛擬機的形式實現咱們傳統數據中心硬件堆積所完成的一切功能,所有組件融合在一套虛擬化管理軟件平臺中,對外提供虛擬存儲、網絡、計算等資源,這就是所謂的」超融合」平臺。
互聯網這幾年發展的特別快,然而,互聯網公司本質上來說也是數據公司,數據承載着公司絕大部分的價值,因而數據安全性以及可靠性也變的愈加重要。 在早期,小規模數據中心主要是南北流量,而互聯網爆發式的數據增加帶來的數據中心虛擬化也要求更高的東西流量,甚至跨數據中心流量。
南北向流量:數據中心以外的客戶端到數據中心服務器之間的流量,或者數據中心服務器訪問互聯網的流量。
東西向流量:數據中心內的服務器之間的流量。
跨數據中心流量:跨數據中心的流量,例如數據中心之間的災備,私有云和公有云之間的通信。
在思科的分析報告中,預計2020年,東西流量能達到總帶寬的77%,跨數據中心9%,南北流量僅佔總帶寬的14%。
而傳統三層網絡架構主要是爲了南北流量設計,儘管也支持東西流量,可是不足十分明顯。
東西流量分爲L2和L3,若是是L2流量,若是源和目的主機都在同一個接入層交換機下,那麼能夠達到全速,由於接入交換機就能完成轉發。若是須要跨機架,但仍然是在一個匯聚層POD內,則須要經過匯聚層交換機進行轉發,帶寬取決於匯聚層交換機的轉發速率。 若是是L3流量,必須通過核心交換機完成轉發,它不只浪費了寶貴的核心交換機資源,多層轉發也增長了延時。
而到大二層網絡架構,不管是L2仍是L3流量,都須要通過核心交換機,這也對核心交換機的性能提出了新的挑戰。
傳統三層網絡架構已經存在幾十年,而且如今有些數據中心中仍然使用這種架構。最主要的緣由是成本。
一方面是由於早期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++編程技術等內容,歡迎你們關注。