部署到gcp_GCP 網絡系統Andromeda --- 概述篇

437c60897d3349160afe4e5713bb51fc.png

這個系列總共有三篇,分別在:

肖宏輝:GCP 網絡系統Andromeda --- 概述篇

肖宏輝:GCP 網絡系統Andromeda --- 控制面

肖宏輝:GCP 網絡系統Andromeda --- 數據面

最近看了Google在2018年的一篇NSDI文章,介紹他們的數據中心SDN方案Andromeda,原文在[1]。最近計劃用三篇,分別從概述,控制面和數據面,再結合一些自己的理解,介紹一下這個系統。這是第一篇:概述。

GCP(Google Cloud Platform)眼中虛擬網絡

云計算的興起給網絡技術帶來了新的機遇和挑戰。對于Cloud中的常規三大服務,計算,存儲,網絡。對應網絡部分,需要在具備高性能大規模能力的同時,也支持一系列的功能,例如LB,FW,VPN,QoS,Dos protection,隔離,NAT等等。更具體的來看,云環境中的虛擬網絡,應該具備以下能力:

  • 作為最基本的需求,需要為獨立的用戶提供隔離的虛擬網絡。每個虛擬網絡中的虛擬機運行在獨立的私有IP網絡中。對于這個虛擬網絡,其中的虛擬機之間應該能相互通信;虛擬機與云環境中的公共服務(DNS,軟件源等)能通信;虛擬機與外部第三方服務商能通信;虛擬機與互聯網能通信。所有這些通信要受用戶策略的控制,同時不同的用戶可以使用不同的策略,達到不同的控制效果。另外,理想情況下,虛擬網絡應該提供與underlay物理網相同的吞吐量和時延。
  • 除了最基本的連通性,還需要支持持續的功能演進。隨著時間的推移,一些新的功能會不停的添加進來,例如計費,DoS防護,性能監控,防火墻等,甚至架構也可能面臨重大的調整,例如Andromeda就經歷過從早期的OS kernel datapath遷移到了現在的OS kernel bypass的datapath。持續的功能演進不是難點,難點是演進的過程中,要使得虛擬機不受到影響。
  • 云計算的一個好處就是相比普通的部署具備了更高的可用性,因為一整套的軟件可控系統,可以很方便的provision,scale,migrate服務。所以虛擬網絡的可用性,穩定性及其重要,在設計上也要小心考慮,盡量縮小系統的出錯域(錯誤的影響范圍)
  • 為了滿足上面兩點,虛擬機的Live-Migration(熱遷移)成為了必要條件。為了支持Live-Migration,虛擬網絡需要確保遷移過程中packet仍然能傳輸,并且盡量較少網絡性能下降的時間(遷移過程中網絡性能下降在所難免,但是持續時間應盡量減少)
  • GCP(Google Cloud Platform)成長的很快,表現在兩個維度:GCP內虛擬網絡的個數;每個虛擬網絡中的虛機的個數,因此,網絡控制面的性能變得非常重要。超大的云平臺中,虛擬網絡控制面主要有三個挑戰:首先轉發表更大(單個虛擬網絡中虛機更多);轉發表需要被發布的范圍更廣(虛擬網分布在更多的主機上);變化的頻率更高

虛擬網絡和SDN的研究和內容已經很多,比如高速的dataplane,分布式控制平面,各種虛擬網絡功能,但是似乎并沒有對于一整套端到端可用系統的研究。Andromeda,作為GCP的網絡虛擬化系統,就是這么一個端到端的系統。

Andromeda架構

GCP有一套完整的管理系統,可以配置存儲,計算,網絡,權限等,而Andromeda是作為GCP管理系統中的網絡部分存在。另一方面,GCP由多個cluster組成,一個cluster就是一批位置相近的物理服務器,它們具有相同的物理網絡連通性,同時也有相同的物理網絡錯誤域。Andromeda在每個cluster中都有一套獨立的程序,這個在后面介紹。

本質上來說,Andromeda是一個SDN系統。所以,與其他的SDN系統一樣,它包含了控制面和數據面。Andromeda的核心設計思想也很簡單通俗:就是分層,包括了分層的控制平面和分層的數據平面。

控制面

Andromeda的控制面可以支持超過10W VM的虛擬網絡,變更生效時間的中位數在184ms。并且操作一個用戶虛擬網絡,不會對其他虛擬網絡造成影響。有關控制面的實現細節在下一篇詳細介紹。

數據面

Andromeda的數據面由多層的datapath組成,根據所需要的功能和性能,網絡流量被分配到其中一條路徑。

  • Host Fast Path:顧名思義,這個datapath運行在虛擬機所在的主機上。這是所有虛機packet看到的第一個datapath。它以犧牲靈活性為前提,提供了高性能的轉發,目前可以實現300ns/packet的轉發速度。為了達到這個數字,Host Fast Path被設計的只能簡單的處理有限種類的packets。其他的packets被送到其他的datapath來處理。
  • Host Coprocessor path:這個datapath也運行在虛機所在的主機上。Host Fast Path處理不了的packet被送到了Coprocessor path。這個datapath用來處理對CPU消耗較高,且對時延無要求的網絡流量。同時也被用來實現網絡功能,例如Stateful 防火墻,LB等。所有功能性的東西被放到Coprocessor path,這樣可以讓Fast path專心做高性能轉發。
  • Hoverboard datapath。Hoverboard是專門的gateway節點,這個datapath就是運行在這些節點上。理論上Coprocessor + Fast path應該處理所有的網絡流量,但是為了提升控制面的性能和規模,不是所有的轉發信息都會下發到主機。大部分的idle和long-tail流量,被送到Hoverboard節點,被Hoverboard datapath轉發。

此外,Andromeda采用的是高性能、基于軟件的底層方案,而不是類似于SR-IOV這種基于硬件的方案。使用硬件方案,可以很容易的得到與underlay物理網絡一樣的性能。但是相比之下,軟件方案更加靈活,能支持更快速的功能迭代,能更容易的支持Live-Migration,因為SR-IOV需要考慮遷移前后不同的物理網卡的配置問題。除此之外,SR-IOV因為依賴硬件網絡,會受到硬件表項的限制。對于一些網絡功能,可能會引入額外的專用設備,進而增加網絡轉發的overhead。

最后,一個Cluster中,Andromeda所有的組件如下圖所示,其中有一些已經提到過,有一些還沒有提到,我們會在接下來的兩篇具體的分析每一個組件。

5b4f9da589ace4c452a26bd36001d2e7.png

[1] https://www.usenix.org/system/files/conference/nsdi18/nsdi18-dalton.pdf

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455140.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455140.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455140.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

單例設計模式-懶漢式(線程不安全)

懶漢式(線程不安全) 優缺點說明 起到了Lazy Loading的效果,但是只能在單線程下使用 如果在多線程下, 一個線程進入if(singleton null)判斷 語句塊,還未來得及往下執行,另一個線程也通過了這個判斷語句,這時便會產生多個實例. 所以在多線程的環境下,不可使用種方式 結論:在…

南海發展大數據產業 建設新型智慧城市

今天(9月5日)上午,佛山市南海區將迎來一大盛事——“南海大數據及工業互聯網創新應用工作推進會”(以下簡稱“推進會”)召開,南海將與阿里巴巴、騰訊以及三大通信運營商等互聯網、大數據巨頭簽訂21個大數據建設亮點項目。同時,為吸引更多大數據產業集聚,南海將在推進會上同步發…

AMR音頻編碼器概述及文件格式分析

全稱Adaptive Multi-Rate,自適應多速率編碼,主要用于移動設備的音頻,壓縮比比較大,但相對其他的壓縮格式質量比較差,由于多用于人聲,通話,效果還是很不錯的。 一、分類 1. AMR: 又稱為AMR-NB&am…

查詢自己OpenGL的版本信息

GLvoid PrintVersion() {const GLubyte* name glGetString(GL_VENDOR); //返回負責當前OpenGL實現廠商的名字const GLubyte* biaoshifu glGetString(GL_RENDERER); //返回一個渲染器標識符,通常是個硬件平臺const GLubyte* OpenGLVersion glGetStr…

airpod藍牙耳機音量大解決辦法_關于AirPods的常見問題匯總 全面了解蘋果AirPods無線耳機...

小編帶來關于AirPods必知的24個問題,全面了解蘋果AirPods無線耳機。蘋果決定在iPhone7中拋棄3.5毫米耳機接口,這引發了許多爭議和不解。蘋果這樣做的原因部分在于,希望人們轉而使用無線耳機。因此蘋果也推出了自主的無線耳機AirPods。對于無線…

單例設計模式-懶漢式(線程安全)

懶漢式(線程安全) 有缺點說明 解決了線程不安全問題 效率太低了,每個線程在想獲得類的實例時候,執行getInstance()方法都要進行同步.而其實這個方法只執行了一次實例化代碼就夠了,后面的想獲取該類實例,直接return就行了.方法進行同步效率太低 結論: 在實際開發中,不推薦使用…

剖析Docker Swarm和Mesos:是什么?如何結合?有什么優勢?

本文講的是剖析Docker Swarm和Mesos:是什么?如何結合?有什么優勢?,【編者的話】本文來自Mesosphere,從生產環境的需求出發,簡要介紹了Docker Swarm的誕生背景,以及其與Mesos、 Mesos…

濮陽第二屆創客機器人比賽_咸陽市舉行第二屆機器人大賽暨第一屆創客大賽

11月14日,由陜西省教育信息化管理中心指導,市教育局主辦,咸陽師范學院、市少工委協辦的咸陽市第二屆機器人大賽暨第一屆創客大賽在咸陽師范學院舉辦。各個學校的同學展示自己的發明創造。咸陽日報全媒體記者 馬沅聰 攝據悉,來自各…

MP3文件格式解析

1, MP3簡介 MP3是今天一種常見的音樂格式,但恐怕除了工作要求之外,有興趣對此進行研究的人恐怕不多。所以,當我打算做MP3解碼方面的工作時,在找資料時也頗費了一番周折,同時也覺得很有趣。所以想在這里分…

懶漢式(線程安全,同步代碼塊兒)

懶漢式(線程安全,同步代碼塊兒) 代碼演示 // 懶漢式 (線程安全_ 同步放法_) class Singleton{private static Singleton instance;private Singleton() {}// 提供一個靜態的公有方法 加入了同步處理的代碼// 解決線程安全問題// 即懶漢式// 我們在這里加一個關鍵字 synchroni…

同余定理證明

轉載于:https://www.cnblogs.com/cmyg/p/7206474.html

非常抱歉,

非常抱歉,好長一段時間沒寫了,但是我在博客園偶爾還會寫寫這個行業必須不斷地學才不會被淘汰,幸好我是主動接受知識,我喜歡這個。。。。。。。。。。轉載于:https://blog.51cto.com/52770825/1962949

乘基取整法是什么_深入理解計算機系統(六):進制間的轉換原理

目錄1、進制的介紹2、二進制轉換成其他進制3、十進制轉換成其他進制4、十六進制轉換成其他進制5、總結上一篇博客我們講解了信息的在計算機中是如何存儲以及如何表示的。但是對于各個進制的轉換只是一筆帶過了,后來作者仔細研究了進制轉換的原理,發現還是…

單例設計模式-雙重檢查

雙重檢查 雙重檢查應用實例 代碼演示: class Singleton{private static volatile Singleton singleton;private Singleton(){}// 提供一個靜態公有方法public static Singleton getInstance() {if (instance null) {synchronized (Singleton.class) {if (instance null) {…

symbian系統開發教程(一)

第一章:Symbian OS簡介作者:謝興 enigma19971hotmail.com---轉載需注明出處 下載word文檔1.1. Symbian系統簡介當前有很多手機運行Symbian OS,數量甚至超出您的想象。到目前為止已經有超過7500 萬、100 多種型號的手機運行Sym…

小談c#數據庫存取圖片的方式

第一種方式 文件夾與數據庫配合 /// <summary>/// 上傳圖片/// </summary>/// <param name"FUSShopURL">FileUpload對象</param>/// <param name"UpladURL">圖片要放到的目錄名稱</param>/// <returns>如果Fi…

c#課程設計簡單題目_《C#項目案例》課程設計題目

1《C#項目案例》課程設計題目一、課程設計的基本目標1、通過本次課程設計&#xff0c;熟練掌握開發語言C#和開發環境——.NET。開發語言的熟練需要通過編寫一定長度的代碼(1000&#xff5e;2000行代碼)才能達到&#xff0c;開發環境的熟練需要反復的程序調試訓練。2、加深對軟件…

筆記吧

map的第一個為關鍵值&#xff0c;只可讀&#xff0c;不可寫。第二個為對應值&#xff1b;vector的消除有很大的困擾&#xff0c;感覺存在很大的局限性&#xff1b;問題——不能夠復雜話&#xff0c;一個問題先從較淺的方面想起&#xff0c;其實在現有基礎和請況下&#xff0c;不…

單例設計模式-靜態內部類

靜態內部類 靜態內部類應用實例 代碼演示 package com.atguigu.principle.singleton.type07;/** * author victor * site https://victorfengming.github.io/ * company XDL * project java_mode * package com.atguigu.principle.singleton.type07 * created 2021-02-02 20…

Symbian系統開發教程(二)

第二章&#xff1a;數據類型與語法 作者&#xff1a;謝興 enigma19971hotmail.com 轉載需注明出處 下載word版本 Symbian系統已經提供了一套已經定義好的內置的數據類型。為了保證你的代碼是編譯器無關的&#xff0c;應當使用下面symbian系統提供的數…