如何極度壓榨網路效能:揭秘 UCloud 的物理雲閘道器

Bestony發表於2020-02-20

近些年來,雲端計算蓬勃發展,上雲成為現在軟體開發落地的首選。但隨著企業業務的不斷增長和擴大,傳統雲端計算的劣勢也暴露出來:單體硬體效能不夠,只能堆叢集;租戶隔離不夠徹底,時有新聞爆出問題。因此,物理機伺服器又再一次的被提上了檯面。 

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

物理雲產品和公有云產品最大的不同就在於客戶可以獨佔並完全控制整臺物理伺服器,UCloud 作為服務商並不會在伺服器上執行任何虛擬化的軟體。這使得想要讓物理雲產品和公有云產品的網路互通、讓物理雲產品享受到公有云產品所享有的網路優勢變得十分困難。特別是一些有狀態的特性比如安全組等實現起來更加困難。

UCloud 踩過的那些坑

如何極度壓榨網路效能:揭秘 UCloud 的物理雲閘道器

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

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

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

但隨著乙太網技術的發展,人工智慧、大資料等應用的落地,網路技術的發展得到了爆發般的發展,25G、100G 的網路迅速得到普及, DPDK 閘道器叢集的轉發效能和成本問題逐漸成為業務發展的瓶頸。

如何極度壓榨網路效能:揭秘 UCloud 的物理雲閘道器

時間來到了 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. 可定製:能夠滿足定製需求,可以基於此進行進一步的演進。 

如何極度壓榨網路效能:揭秘 UCloud 的物理雲閘道器

基於 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 將兩者整合在一起,從而實現硬體的加速。

如何極度壓榨網路效能:揭秘 UCloud 的物理雲閘道器

當報文進入交換晶片,首包未命中時通過可程式設計交換機的虛擬網路卡進入交換機的 Linux 核心,通過 OVS 的 Datapath 觸發 ovs-vswitchd 下發新的 Openflow 流表。UCloud 通過對 OVS 做了儘量少的改動,將原先通過 Netlink 傳送到核心去的 TC Flower 解除安裝訊息通過 UNIX 套接字傳送到執行在使用者態的 Jericho2 Agent,它再將訊息轉化為對應的可程式設計交換機的訊息下發給交換晶片。後續報文將直接命中交換機管線中的流表,由交換晶片轉發。

如何極度壓榨網路效能:揭秘 UCloud 的物理雲閘道器

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

如何極度壓榨網路效能:揭秘 UCloud 的物理雲閘道器

另外 Jericho2 真正的模組化表項結構,所有表項共享同一塊物理快取,極大增加了片上資源的使用效率。管線上所有處理節點可以並行訪問,根據不同的應用場景進行邏輯表項的靈活劃分,使得同樣的硬體可以應用在完全不同的使用場景。豐富的表項資源使得新一代的閘道器能夠完全滿足使用者現有甚至未來可見數年的規格需求。 

最終, UCloud 實現了一個完全和公有云特性相容,轉發能力高達 4.8T ,並且可以自由定製,成本也非常有競爭力的物理雲閘道器。這滿足了對於下一代物理雲閘道器所定義的四大需求:全功能、高效能、低成本、可定製。

總結

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

如何極度壓榨網路效能:揭秘 UCloud 的物理雲閘道器

訂閱“Linux 中國”官方小程式來檢視

相關文章