自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

UCloud基于P4交換機(jī)的云平臺(tái)網(wǎng)絡(luò)實(shí)踐

云計(jì)算
為解決SDN交換機(jī)OpenFlow流表?xiàng)l目有限的問題,UCloud開始采用DPDK技術(shù)的網(wǎng)關(guān)集群來替代SDN交換機(jī)。經(jīng)過實(shí)踐檢驗(yàn)的各種DPDK網(wǎng)關(guān),越來越多地出現(xiàn)在UCloud的云平臺(tái)中,為用戶提供更快速的網(wǎng)絡(luò)能力。

自2012年UCloud成立起,虛擬網(wǎng)絡(luò)始終是IaaS產(chǎn)品的一個(gè)核心組件,也經(jīng)過了多次演進(jìn)。演進(jìn)中我們始終思考的是:如何在不增加用戶成本的情況下為用戶提供更可靠、更快速的網(wǎng)絡(luò)。而答案則是要求技術(shù)團(tuán)隊(duì)不斷采用新技術(shù),來同時(shí)滿足租戶隔離、轉(zhuǎn)發(fā)能力、穩(wěn)定性等多種需求。

[[237371]]

我們最早的SDN方案在轉(zhuǎn)發(fā)面是采用Open vSwitch(以下簡稱OVS)來實(shí)現(xiàn),控制面是自研的控制器。期間亦首先采用盛科的SDN交換機(jī),來解決物理機(jī)(bare metal)和公有云之間的互訪需求。為解決SDN交換機(jī)OpenFlow流表?xiàng)l目有限的問題,UCloud開始采用DPDK技術(shù)的網(wǎng)關(guān)集群來替代SDN交換機(jī)。經(jīng)過實(shí)踐檢驗(yàn)的各種DPDK網(wǎng)關(guān),越來越多地出現(xiàn)在UCloud的云平臺(tái)中,為用戶提供更快速的網(wǎng)絡(luò)能力。

DPDK的不足

隨著2017年25G網(wǎng)絡(luò)開始迅速被采用,對(duì)UCloud的虛擬網(wǎng)絡(luò)又提出了更高的挑戰(zhàn)。在此背景下,DPDK也逐漸暴露出了一些不足:

  • 基于DPDK的應(yīng)用可以達(dá)到很高的包轉(zhuǎn)發(fā)速率,但這是通過多服務(wù)器、多核負(fù)載均衡實(shí)現(xiàn)的。且負(fù)載均衡算法通常是由硬件交換機(jī)或者網(wǎng)卡實(shí)現(xiàn)的,并不能被軟件定義。如果網(wǎng)絡(luò)中出現(xiàn)單個(gè)大象流,無法被硬件交換機(jī)或者網(wǎng)卡的負(fù)載均衡算法很好的分發(fā),就會(huì)造成單根網(wǎng)線或者單個(gè)CPU Core出現(xiàn)擁塞,對(duì)業(yè)務(wù)造成巨大影響。
  • 隨著網(wǎng)絡(luò)帶寬從10G向25G、40G、50G、100G的演進(jìn),DPDK需要更強(qiáng)力的CPU才能夠達(dá)到線速,而更強(qiáng)力的CPU通常價(jià)錢也很昂貴,不利成本。特別是單Core的主頻越高,價(jià)格越貴,且主頻增加和價(jià)格增加是非線性關(guān)系。

兩個(gè)被排除的方案

2017年中UCloud開始對(duì)新的SDN硬件卸載方案做評(píng)估。

首先進(jìn)入我們視野的是基于VXLAN VTEP的解決方案。此類方案通常由交換機(jī)廠商提供包括SDN Controller在內(nèi)的整套解決方案,比較適合私有云的環(huán)境部署。但缺點(diǎn)也很顯而易見:封閉、非標(biāo)準(zhǔn)化、無法定制。通常用戶只能通過北向廠商特有的API方式和此類方案進(jìn)行交互。且此類方案通常只支持10w左右的虛擬網(wǎng)絡(luò)MAC地址,很難滿足UCloud的業(yè)務(wù)需要。此外UCloud對(duì)基于Ethernet Over GRE(Linux GRETAP)的Overlay封裝有需求,但沒有一家硬件交換機(jī)支持該Overlay協(xié)議。

接下來我們又把目光投向了支持OpenFlow 1.3協(xié)議的硬件交換機(jī)。經(jīng)過一番預(yù)研和測(cè)試,我們發(fā)現(xiàn)支持OpenFlow 1.3協(xié)議的硬件交換機(jī)和OVS間存在著巨大的GAP。實(shí)際上不可能把我們的OpenFlow流表移植到硬件交換機(jī)上。除了同樣不支持Ethernet Over GRE協(xié)議外,我們OVS上使用的Flow Based Tunneling特性也沒有硬件交換機(jī)支持。

P4進(jìn)入視野

2017年Q4,我們開始預(yù)研Barefoot的支持P4的可編程交換機(jī)(Tofino芯片),很快發(fā)現(xiàn)了它能夠很好地滿足我們的需求。

提到P4和Barefoot就不能不提Nick Mckeown教授。2007年Nick和伙伴們一起創(chuàng)立了Nicira Networks公司,也幾乎標(biāo)志著“軟件定義網(wǎng)絡(luò)(SDN)”這個(gè)產(chǎn)業(yè)的誕生。Nicira作為OpenFlow的大本營,接連發(fā)布了NOX和Open vSwitch作為OpenFlow的重要組件。

2012年VMware收購Nicira后,Nick認(rèn)為SDN的第二步則是發(fā)展為它專門優(yōu)化的硬件設(shè)備,又和同伴共同發(fā)起了對(duì)數(shù)據(jù)包進(jìn)行處理的編程語言P4(Programming Protocol-Independent Packet Processors),幫助網(wǎng)絡(luò)用戶擺脫芯片硬件廠商各種協(xié)議的制約。

P4在設(shè)計(jì)上具備如下優(yōu)點(diǎn):

  • 可靈活定義轉(zhuǎn)發(fā)設(shè)備數(shù)據(jù)處理流程,且可以做到轉(zhuǎn)發(fā)無中斷的重配置。
  • 轉(zhuǎn)發(fā)設(shè)備協(xié)議無關(guān)轉(zhuǎn)發(fā)。
  • 設(shè)備無關(guān)性。

2013年Nick成立了Barefoot Networks公司,致力于開發(fā)基于P4的網(wǎng)絡(luò)芯片Tofino和軟件開發(fā)套件Capilano,并幫助P4社區(qū)發(fā)展壯大。

Barefoot支持P4的可編程交換機(jī)(基于Tofino芯片),具備如下優(yōu)點(diǎn):

相對(duì)DPDK更高的轉(zhuǎn)發(fā)性能

  • 1.8T ~ 6.5T線速轉(zhuǎn)發(fā)
  • 更低時(shí)延
  • 單線***100G,避免單線擁塞
  • 轉(zhuǎn)發(fā)性能可預(yù)期,DPDK的轉(zhuǎn)發(fā)性能隨業(yè)務(wù)模型可能變化

相對(duì)其他硬件交換機(jī),更開放

  • 可編程能力強(qiáng),轉(zhuǎn)發(fā)面p4lang定制開發(fā)
  • ***解決Ethernet Over GRE和Flow Based Tunneling的問題
  • 開發(fā)效率高
  • 控制面可通過Apache Thrift、gRPC接口遠(yuǎn)程管理
  • 操作系統(tǒng)采用 Open Network Linux(基于Debian)
  • 生態(tài)圈:P4 Runtime、Stratum

P4 Switch架構(gòu)

控制面實(shí)現(xiàn)

UCloud基于P4交換機(jī)的云平臺(tái)網(wǎng)絡(luò)實(shí)踐

最初我們準(zhǔn)備修改Barefoot提供的switch.p4來實(shí)現(xiàn)我們的功能,但嘗試閱讀代碼后發(fā)現(xiàn)switch.p4雖然完整的包含交換機(jī)所需要的功能,但很多特性我們并不需要,所以我們沒有選擇修改、裁剪switch.p4,而是自己從頭開始寫一個(gè)更符合自身需求的控制面。

NOS這層參考我們之前開發(fā)DPDK程序的經(jīng)驗(yàn),完全通過Linux來實(shí)現(xiàn)。P4代碼會(huì)把所有非Ethernet Over GRE封裝的報(bào)文當(dāng)做控制報(bào)文送到CPU口。CPU口在Linux上就是一個(gè)虛擬網(wǎng)卡,報(bào)文再通過Kernel轉(zhuǎn)發(fā)到hostif的虛擬網(wǎng)卡上。hostif的虛擬網(wǎng)卡上配置IP地址,ARP學(xué)習(xí)等功能都通過Linux Kernel來實(shí)現(xiàn)。Quagga等Userspace的程序就通過hostif虛擬網(wǎng)卡上的IP和上級(jí)路由器跑BGP,再將學(xué)習(xí)到的路由寫到Kernel的路由表。我們直接開發(fā)的APP模塊以bf_switchd插件的方式加載,通過netlink接口學(xué)習(xí)Kernel的ARP表、路由表,調(diào)用P4代碼編譯后生成的API寫入Tofino芯片。

Controller這一層最早我們是通過P4編譯器生成的Apache Thrift接口將數(shù)據(jù)下發(fā)到bf_switchd,然后寫入Tofino芯片。但通過簡單的性能測(cè)試發(fā)現(xiàn),由于Apache Thrift接口設(shè)計(jì)的限制,每次RPC調(diào)用只能配置一條數(shù)據(jù),因此需要配置大量數(shù)據(jù)時(shí)性能很不理想。為此我們?cè)贏PP模塊中啟動(dòng)了gRPC server,重新定義了批量下發(fā)配置的接口,將配置下發(fā)速度提升了8倍。未來我們計(jì)劃將控制面演進(jìn)到P4 Runtime和Stratum。

Sharding

P4可編程交換機(jī)的PPS或者BPS性能很強(qiáng)能夠線速轉(zhuǎn)發(fā),對(duì)比DPDK,制約單機(jī)性能的瓶頸主要出現(xiàn)在交換機(jī)的DRAM和TCAM上。畢竟DPDK跑在X86服務(wù)器上內(nèi)存64G起步,512G也不稀奇,而交換機(jī)芯片上的內(nèi)存資源就相對(duì)要少很多。

為了突破單臺(tái)交換機(jī)的資源瓶頸,我們?cè)O(shè)計(jì)了將數(shù)據(jù)按租戶分片的方案,從而實(shí)現(xiàn)了水平擴(kuò)展的目標(biāo)。

UCloud基于P4交換機(jī)的云平臺(tái)網(wǎng)絡(luò)實(shí)踐

首先采用64口P4可編程交換機(jī)作為接入層,主要實(shí)現(xiàn)數(shù)據(jù)分片和灰度發(fā)布的能力。例如采用VNI的后6位分為64個(gè)分片,為每個(gè)分片指定一個(gè)下一跳地址,從而達(dá)到整個(gè)集群的資源水平擴(kuò)展的能力。

強(qiáng)灰度能力

傳統(tǒng)上網(wǎng)絡(luò)設(shè)備通常采用主備、或者主主的方式部署,當(dāng)需要升級(jí)的時(shí)候?qū)⑷苛髁壳械揭话朐O(shè)備上,另外一半設(shè)備下線升級(jí),升級(jí)完成后再重新加入集群分擔(dān)一半的流量。這種升級(jí)方式簡單粗放,在UCloud我們提出了更高的要求。我們軟件行業(yè)的現(xiàn)狀就是不論花多大的成本去測(cè)試,真正的用戶行為總是不可能被窮盡的,缺陷總是會(huì)有的,這時(shí)我們***的安全網(wǎng)就是“灰度發(fā)布”。在現(xiàn)網(wǎng)真實(shí)環(huán)境作為***測(cè)試的同時(shí),通過控制變更范圍盡可能的減少風(fēng)險(xiǎn);一旦真的有缺陷快速回滾,***程度的降低影響面。在UCloud我們堅(jiān)定的在每個(gè)產(chǎn)品上采用按賬號(hào)灰度發(fā)布,即使是在虛擬網(wǎng)絡(luò)設(shè)備上。

我們將灰度發(fā)布交換機(jī)軟件的能力Buildin在Access層:

  1. 當(dāng)需要升級(jí)交換機(jī)軟件時(shí),將預(yù)留灰度交換機(jī)安裝新版本軟件;
  2. 按照灰度賬號(hào)定義新的數(shù)據(jù)分片,指定灰度交換機(jī)同步新的數(shù)據(jù)分片;
  3. 按照VNI+源地址或VNI+目的地址配置灰度規(guī)則按VM的粒度將流量切換到灰度交換機(jī)處理;
  4. 切換完成后立刻自動(dòng)回歸測(cè)試,Ping檢測(cè)各種場景下的網(wǎng)絡(luò)互通性是否正常;
  5. 測(cè)試通過則逐步增加灰度的VM地址,直到整個(gè)VPC的流量全部切換到灰度交換機(jī);
  6. 再切換一個(gè)新的VPC,直到所有分片內(nèi)的VPC都切換到新的交換機(jī)下;
  7. 舊的交換機(jī)下線清洗,安裝新版本軟件,直到整個(gè)集群完成升級(jí)。

通過這種傳統(tǒng)網(wǎng)絡(luò)設(shè)備完全不同的升級(jí)方式,在SDN軟件快速迭代的背景下,有力地保障了SDN網(wǎng)絡(luò)的可靠性。

P4 Switch應(yīng)用

  • P4可編程交換機(jī)在UCloud規(guī)劃的使用場景包括:
  • 支持租戶的增強(qiáng)交換和路由
  • 物理機(jī)接入虛擬網(wǎng)絡(luò)
  • 一致性哈希ECMP負(fù)載均衡
  • 流量限速與計(jì)費(fèi)
  • ARP代理
  • 等等

目前UCloud已經(jīng)采用P4可編程交換機(jī)完成了新一代交換網(wǎng)關(guān)UXR的開發(fā)和測(cè)試工作,同時(shí)部署了一個(gè)地域并切換灰度流量進(jìn)行驗(yàn)證。

總結(jié)

Barefoot的Tofino芯片在2018年初量產(chǎn)后,P4可編程交換機(jī)開始逐漸出現(xiàn)在市場上,但仍是一個(gè)新興事物。不可否認(rèn)目前確實(shí)還有一些不足之處,但UCloud確實(shí)看到它和之前的交換機(jī)相比,能給軟件工程師***的自由度。

在6月27日Barefoot CEO Craig Barratt先生一行來UCloud總部的技術(shù)交流中,大家也認(rèn)為通過緊密合作,能夠產(chǎn)生更加貼切需求、切實(shí)解決痛點(diǎn)的可定制解決方案。我們相信憑借持續(xù)的技術(shù)演進(jìn),可以不斷為云平臺(tái)用戶提供更快速更強(qiáng)大的網(wǎng)絡(luò)能力,就像Barefoot主頁所說,We can now finally say “Software is eating the network”。

參考鏈接:

  • P4: https://p4.org/
  • Barefoot: https://www.barefootnetworks.com/
  • Quagga: https://www.quagga.net/
  • DPDK: https://dpdk.org/
  • Open vSwitch: https://openvswitch.org/

 

責(zé)任編輯:未麗燕 來源: 51CTO.com
相關(guān)推薦

2015-07-02 09:46:55

OpenFlowOpenStackSDN

2010-01-18 15:22:47

交換機(jī)MAC地址

2010-02-04 09:51:53

虛擬交換機(jī)

2011-07-20 10:24:33

2013-05-15 16:06:01

華為交換機(jī)虛擬化網(wǎng)絡(luò)

2011-03-02 15:10:57

數(shù)據(jù)中心云計(jì)算

2014-01-14 11:17:55

華為核心交換機(jī)核心交換機(jī)華為

2010-03-15 10:03:49

軟交換機(jī)技術(shù)

2023-06-12 11:49:40

網(wǎng)絡(luò)交換機(jī)局域網(wǎng)

2023-08-14 17:03:42

2016-01-09 14:54:57

2011-05-27 11:05:10

光纖交換機(jī)

2011-05-27 11:16:18

光纖交換機(jī)

2013-06-07 15:32:03

超云

2015-08-18 14:21:13

云平臺(tái)網(wǎng)絡(luò)評(píng)測(cè)

2010-01-14 10:43:18

交換機(jī)配置交換機(jī)種類

2010-01-05 10:14:39

交換機(jī)配置TRUNK

2017-05-23 13:57:42

交換機(jī)方法網(wǎng)絡(luò)

2013-11-07 14:33:43

交換機(jī)下一代網(wǎng)絡(luò)華為

2010-03-15 16:41:30

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)