如何極度壓榨網絡性能:揭祕 UCloud 的物理雲網關

https://linux.cn/article-11911-1.htmlhtml


近些年來,雲計算蓬勃發展,上雲成爲如今軟件開發落地的首選。但隨着企業業務的不斷增加和擴大,傳統雲計算的劣勢也暴露出來:單體硬件性能不夠,只能堆集羣;租戶隔離不夠完全,時有新聞爆出問題。所以,物理機服務器又再一次的被提上了檯面。 linux

創立於 2012 年的 UCloud,從 2013 年伊始就面向市場同時提供了基於虛擬化服務器的公有云產品和基於裸金屬服務器的物理雲產品。不過,和絕大多數人想象中的不一樣,物理雲服務器並不是直接幫你上架一個服務器就行的,其背後也有很多複雜的技術難點須要 UCloud 及合做夥伴們去攻關。這其中最爲艱難的,可能就是虛擬網絡相關特性的研發。編程

物理雲產品和公有云產品最大的不一樣就在於客戶能夠獨佔並徹底控制整臺物理服務器,UCloud 做爲服務商並不會在服務器上運行任何虛擬化的軟件。這使得想要讓物理雲產品和公有云產品的網絡互通、讓物理雲產品享受到公有云產品所享有的網絡優點變得十分困難。特別是一些有狀態的特性好比安全組等實現起來更加困難。小程序

UCloud 踩過的那些坑

從 2013 年開始,UCloud 開始使用 Open vSwitch 來構建基於 Openflow 技術的公有云 SDN 虛擬網絡。也所以,同年, UCloud 提供物理雲產品的時候,選用了支持 OpenFlow 的 SDN 交換機,以實現物理雲產品和公有云 VPC 網絡的互通。緩存

2014 年,隨着 UCloud 業務的擴大和快速發展,已有的交換機所提供的 OpenFlow 流表有限的條目已經沒法支撐實際物理雲產品業務的需求。 安全

2015 年,已經在 DPDK 技術上作了兩年研究儲備的 UCloud 領先在產品環境推出了採用 DPDK 技術的服務器集羣,從而替代硬件 SDN 交換機,知足業務層面的需求。服務器

但隨着以太網技術的發展,人工智能、大數據等應用的落地,網絡技術的發展獲得了爆發般的發展,25G、100G 的網絡迅速獲得普及, DPDK 網關集羣的轉發性能和成本問題逐漸成爲業務發展的瓶頸。網絡

時間來到了 2019 年, UCloud 開始使用智能網卡(Smart NIC)來替代原有的 DPDK 網關集羣。UCloud 採用的智能網卡方案採用了 16 核 ARM CPU 運行 OVS 做爲 SlowPath,採用 Linux TC Flower 卸載技術將網卡芯片做爲 FastPath,經過 SRIOV 技術和用戶系統集成,很好地解決了性能問題,但與此同時,其所帶來的高昂採購成本形成了成本的提高。此外,因爲所採用的智能網卡的轉發面尚不可編程,也使得任何新的特性都須要網卡芯片廠商修改固件來實現。甚至一些比較複雜的特性也不能實現。比較典型的例子就是爲了讓智能網卡支撐 UCloud 使用的 Overlay 封裝格式,就花費了半年時間纔在和網卡芯片廠商反覆溝通協調下完成,而相似帶寬控制、硬件卸載的特性卻難以實現。 架構

痛定思痛的深度思考

六年的艱辛探索,讓 UCloud 調研試驗了幾乎市面上全部的各類網絡網關方案。而這些年來踩的坑,也讓 UCloud 看到了這一代網關產品的問題和不足。做爲戰鬥在雲計算網絡技術一線的團隊,UCloud 基於實踐經驗,總結出了下一代物理雲網關應該知足的一些需求: 模塊化

  1. 全功能:可以提供和公有云同樣的網絡特性,好比有狀態服務安全組等。
  2. 高性能:可以知足從 25G 網絡到 100G 網絡的需求。
  3. 低成本:比 DPDK 網關和智能網卡網關有更低的擁有成本。
  4. 可定製:可以知足定製需求,能夠基於此進行進一步的演進。 

基於 Jericho2 芯片的下一代物理雲網關 —— BCM88690

在使用現有的智能網卡解決方案的同時, UCloud 也在積極的在技術市場上尋找合適的下一代物理雲網關,以替換現有的產品解決方案。

首先進入 UCloud 視線的是某公司的一款高性能交換機。它和智能網卡同樣能夠運行 Linux 和 Open vSwitch,更加可貴的是,其經過 Switchdev 支持 OVS TC Flower 卸載,並使用交換機芯片做爲 OVS 的 FastPath。遺憾的是交換芯片對 TC Flower 卸載的支持仍然很差,形成不少功能沒法卸載。而且交換芯片不支持用戶編程,UCloud 沒法修改交換芯片的管線來知足本身實際的業務需求。

而在這時,博通正在研發 Jericho2 可編程交換芯片相關的產品,因而 UCloud 與博通一拍即合,與博通合做利用 Jericho2 可編程交換芯片研究開發物理雲網關,並基於研究的成果,開發出了可以完美知足 UCloud 需求的物理雲網關。

在技術層面上,UCloud 經過在 Jericho2 可編程交互芯片上定製了管線來做爲 TC Flower 的 FastPath,並在交換機控制面運行 Linux + OVS 做爲 SlowPath ,並經過 TC Flower Offload 將二者集成在一塊兒,從而實現硬件的加速。

當報文進入交換芯片,首包未命中時經過可編程交換機的虛擬網卡進入交換機的 Linux 內核,經過 OVS 的 Datapath 觸發 ovs-vswitchd 下發新的 Openflow 流表。UCloud 經過對 OVS 作了儘可能少的改動,將原先經過 Netlink 發送到內核去的 TC Flower 卸載消息經過 UNIX 套接字發送到運行在用戶態的 Jericho2 Agent,它再將消息轉化爲對應的可編程交換機的消息下發給交換芯片。後續報文將直接命中交換機管線中的流表,由交換芯片轉發。

Jericho2 提供了業界獨一無二的可編程架構,除了管線節點可編程外,還能夠進行管線延展,在增長了處理流程的同時而沒有損失任何轉發性能。其基於 C++ 的編程工具鏈,成熟且直觀,使 UCloud 能夠輕鬆的基於現有芯片添加功能、在線升級,並輕鬆的根據實際需求進行定製和實施。得益於 Jericho2 靈活的可編程能力,UCloud 和博通合做在交換芯片上實現了 OVS 的 TC Flower 卸載轉發面,能夠實現和智能網卡一樣的 OVS 卸載功能,但達到了 4.8T 的轉發性能,至關於 48 塊 100G 智能網卡。而且還保留了進一步擴展定製的能力,以實現 UCloud 使用的 Overlay 封裝格式 GRETAP 爲例,能夠徹底自行開發、靈活修改,一週的工做就能完成。 

另外 Jericho2 真正的模塊化表項結構,全部表項共享同一塊物理緩存,極大增長了片上資源的使用效率。管線上全部處理節點能夠並行訪問,根據不一樣的應用場景進行邏輯表項的靈活劃分,使得一樣的硬件能夠應用在徹底不一樣的使用場景。豐富的表項資源使得新一代的網關可以徹底知足用戶現有甚至將來可見數年的規格需求。 

最終, UCloud 實現了一個徹底和公有云特性兼容,轉發能力高達 4.8T ,而且能夠自由定製,成本也很是有競爭力的物理雲網關。這知足了對於下一代物理雲網關所定義的四大需求:全功能、高性能、低成本、可定製。

總結

UCloud 做爲國內公有云市場的大玩家,更是現在國內的公有云第一股,在國內風起雲涌、巨頭林立的大環境下,穩穩的佔據了屬於本身的市場, 實屬不易。而 UCloud 能作到這一點,得益於其始終堅持「客戶爲先」的價值觀,及時響應客戶需求,快速解決客戶問題,不斷推出超出客戶預期的創新產品和服務。也正是這樣對於客戶爲先的價值觀,讓 UCloud 不只能作好服務,更能打造出卓越的產品。

訂閱「Linux 中國」官方小程序來查看

相關文章
相關標籤/搜索