如何極度壓榨云計(jì)算性能:物理云網(wǎng)關(guān)揭秘

Linux中國(guó)
Linux中國(guó)
近些年來,云計(jì)算蓬勃發(fā)展,上云成為現(xiàn)在軟件開發(fā)落地的首選。但隨著企業(yè)業(yè)務(wù)的不斷增長(zhǎng)和擴(kuò)大,傳統(tǒng)云計(jì)算的劣勢(shì)也暴露出來:?jiǎn)误w硬件性能不夠,只能堆集群;租戶隔離不夠徹底,時(shí)有新聞爆出問題。因此,物理機(jī)服務(wù)器又再一次的被提上了臺(tái)面。

和絕大多數(shù)人想象中的不同,物理云服務(wù)器并非直接幫你上架一個(gè)服務(wù)器就行。

近些年來,云計(jì)算蓬勃發(fā)展,上云成為現(xiàn)在軟件開發(fā)落地的首選。但隨著企業(yè)業(yè)務(wù)的不斷增長(zhǎng)和擴(kuò)大,傳統(tǒng)云計(jì)算的劣勢(shì)也暴露出來:?jiǎn)误w硬件性能不夠,只能堆集群;租戶隔離不夠徹底,時(shí)有新聞爆出問題。因此,物理機(jī)服務(wù)器又再一次的被提上了臺(tái)面。

創(chuàng)立于 2012 年的 UCloud,從 2013 年伊始就面向市場(chǎng)同時(shí)提供了基于虛擬化服務(wù)器的公有云產(chǎn)品和基于裸金屬服務(wù)器的物理云產(chǎn)品。不過,和絕大多數(shù)人想象中的不同,物理云服務(wù)器并非直接幫你上架一個(gè)服務(wù)器就行的,其背后也有不少復(fù)雜的技術(shù)難點(diǎn)需要 UCloud 及合作伙伴們?nèi)スリP(guān)。這其中最為艱難的,可能就是虛擬網(wǎng)絡(luò)相關(guān)特性的研發(fā)。

物理云產(chǎn)品和公有云產(chǎn)品最大的不同就在于客戶可以獨(dú)占并完全控制整臺(tái)物理服務(wù)器,UCloud 作為服務(wù)商并不會(huì)在服務(wù)器上運(yùn)行任何虛擬化的軟件。這使得想要讓物理云產(chǎn)品和公有云產(chǎn)品的網(wǎng)絡(luò)互通、讓物理云產(chǎn)品享受到公有云產(chǎn)品所享有的網(wǎng)絡(luò)優(yōu)勢(shì)變得十分困難。特別是一些有狀態(tài)的特性比如安全組等實(shí)現(xiàn)起來更加困難。

UCloud 踩過的那些坑

從 2013 年開始,UCloud 開始使用 Open vSwitch 來構(gòu)建基于 Openflow 技術(shù)的公有云 SDN 虛擬網(wǎng)絡(luò)。也因此,同年, UCloud 提供物理云產(chǎn)品的時(shí)候,選用了支持 OpenFlow 的 SDN 交換機(jī),以實(shí)現(xiàn)物理云產(chǎn)品和公有云 VPC 網(wǎng)絡(luò)的互通。

2014 年,隨著 UCloud 業(yè)務(wù)的擴(kuò)大和快速發(fā)展,已有的交換機(jī)所提供的 OpenFlow 流表有限的條目已經(jīng)無法支撐實(shí)際物理云產(chǎn)品業(yè)務(wù)的需求。

2015 年,已經(jīng)在 DPDK 技術(shù)上做了兩年研究?jī)?chǔ)備的 UCloud 領(lǐng)先在產(chǎn)品環(huán)境推出了采用 DPDK 技術(shù)的服務(wù)器集群,從而替代硬件 SDN 交換機(jī),滿足業(yè)務(wù)層面的需求。

但隨著以太網(wǎng)技術(shù)的發(fā)展,人工智能、大數(shù)據(jù)等應(yīng)用的落地,網(wǎng)絡(luò)技術(shù)的發(fā)展得到了爆發(fā)般的發(fā)展,25G、100G 的網(wǎng)絡(luò)迅速得到普及, DPDK 網(wǎng)關(guān)集群的轉(zhuǎn)發(fā)性能和成本問題逐漸成為業(yè)務(wù)發(fā)展的瓶頸。

時(shí)間來到了 2019 年, UCloud 開始使用智能網(wǎng)卡(Smart NIC)來替代原有的 DPDK 網(wǎng)關(guān)集群。UCloud 采用的智能網(wǎng)卡方案采用了 16 核 ARM CPU 運(yùn)行 OVS 作為 SlowPath,采用 Linux TC Flower 卸載技術(shù)將網(wǎng)卡芯片作為 FastPath,通過 SRIOV 技術(shù)和用戶系統(tǒng)集成,很好地解決了性能問題,但與此同時(shí),其所帶來的高昂采購成本造成了成本的提升。此外,由于所采用的智能網(wǎng)卡的轉(zhuǎn)發(fā)面尚不可編程,也使得任何新的特性都需要網(wǎng)卡芯片廠商修改固件來實(shí)現(xiàn)。甚至一些比較復(fù)雜的特性也不能實(shí)現(xiàn)。比較典型的例子就是為了讓智能網(wǎng)卡支撐 UCloud 使用的 Overlay 封裝格式,就花費(fèi)了半年時(shí)間才在和網(wǎng)卡芯片廠商反復(fù)溝通協(xié)調(diào)下完成,而類似帶寬控制、硬件卸載的特性卻難以實(shí)現(xiàn)。

痛定思痛的深度思考

六年的艱辛探索,讓 UCloud 調(diào)研試驗(yàn)了幾乎市面上所有的各種網(wǎng)絡(luò)網(wǎng)關(guān)方案。而這些年來踩的坑,也讓 UCloud 看到了這一代網(wǎng)關(guān)產(chǎn)品的問題和不足。作為戰(zhàn)斗在云計(jì)算網(wǎng)絡(luò)技術(shù)一線的團(tuán)隊(duì),UCloud 基于實(shí)踐經(jīng)驗(yàn),總結(jié)出了下一代物理云網(wǎng)關(guān)應(yīng)該滿足的一些需求:

全功能:能夠提供和公有云一樣的網(wǎng)絡(luò)特性,比如有狀態(tài)服務(wù)安全組等。

高性能:能夠滿足從 25G 網(wǎng)絡(luò)到 100G 網(wǎng)絡(luò)的需求。

低成本:比 DPDK 網(wǎng)關(guān)和智能網(wǎng)卡網(wǎng)關(guān)有更低的擁有成本。

可定制:能夠滿足定制需求,可以基于此進(jìn)行進(jìn)一步的演進(jìn)。

基于 Jericho2 芯片的下一代物理云網(wǎng)關(guān) —— BCM88690

在使用現(xiàn)有的智能網(wǎng)卡解決方案的同時(shí), UCloud 也在積極的在技術(shù)市場(chǎng)上尋找合適的下一代物理云網(wǎng)關(guān),以替換現(xiàn)有的產(chǎn)品解決方案。

首先進(jìn)入 UCloud 視線的是某公司的一款高性能交換機(jī)。它和智能網(wǎng)卡一樣可以運(yùn)行 Linux 和 Open vSwitch,更加難得的是,其通過 Switchdev 支持 OVS TC Flower 卸載,并使用交換機(jī)芯片作為 OVS 的 FastPath。遺憾的是交換芯片對(duì) TC Flower 卸載的支持仍然不好,造成很多功能無法卸載。并且交換芯片不支持用戶編程,UCloud 無法修改交換芯片的管線來滿足自己實(shí)際的業(yè)務(wù)需求。

而在這時(shí),博通正在研發(fā) Jericho2 可編程交換芯片相關(guān)的產(chǎn)品,于是 UCloud 與博通一拍即合,與博通合作利用 Jericho2 可編程交換芯片研究開發(fā)物理云網(wǎng)關(guān),并基于研究的成果,開發(fā)出了能夠完美滿足 UCloud 需求的物理云網(wǎng)關(guān)。

在技術(shù)層面上,UCloud 通過在 Jericho2 可編程交互芯片上定制了管線來作為 TC Flower 的 FastPath,并在交換機(jī)控制面運(yùn)行 Linux + OVS 作為 SlowPath ,并通過 TC Flower Offload 將兩者集成在一起,從而實(shí)現(xiàn)硬件的加速。

當(dāng)報(bào)文進(jìn)入交換芯片,首包未命中時(shí)通過可編程交換機(jī)的虛擬網(wǎng)卡進(jìn)入交換機(jī)的 Linux 內(nèi)核,通過 OVS 的 Datapath 觸發(fā) ovs-vswitchd 下發(fā)新的 Openflow 流表。UCloud 通過對(duì) OVS 做了盡量少的改動(dòng),將原先通過 Netlink 發(fā)送到內(nèi)核去的 TC Flower 卸載消息通過 UNIX 套接字發(fā)送到運(yùn)行在用戶態(tài)的 Jericho2 Agent,它再將消息轉(zhuǎn)化為對(duì)應(yīng)的可編程交換機(jī)的消息下發(fā)給交換芯片。后續(xù)報(bào)文將直接命中交換機(jī)管線中的流表,由交換芯片轉(zhuǎn)發(fā)。

Jericho2 提供了業(yè)界獨(dú)一無二的可編程架構(gòu),除了管線節(jié)點(diǎn)可編程外,還可以進(jìn)行管線延展,在增加了處理流程的同時(shí)而沒有損失任何轉(zhuǎn)發(fā)性能。其基于 C++ 的編程工具鏈,成熟且直觀,使 UCloud 可以輕松的基于現(xiàn)有芯片添加功能、在線升級(jí),并輕松的根據(jù)實(shí)際需求進(jìn)行定制和實(shí)施。得益于 Jericho2 靈活的可編程能力,UCloud 和博通合作在交換芯片上實(shí)現(xiàn)了 OVS 的 TC Flower 卸載轉(zhuǎn)發(fā)面,可以實(shí)現(xiàn)和智能網(wǎng)卡同樣的 OVS 卸載功能,但達(dá)到了 4.8T 的轉(zhuǎn)發(fā)性能,相當(dāng)于 48 塊 100G 智能網(wǎng)卡。并且還保留了進(jìn)一步擴(kuò)展定制的能力,以實(shí)現(xiàn) UCloud 使用的 Overlay 封裝格式 GRETAP 為例,可以完全自行開發(fā)、靈活修改,一周的工作就能完成。

另外 Jericho2 真正的模塊化表項(xiàng)結(jié)構(gòu),所有表項(xiàng)共享同一塊物理緩存,極大增加了片上資源的使用效率。管線上所有處理節(jié)點(diǎn)可以并行訪問,根據(jù)不同的應(yīng)用場(chǎng)景進(jìn)行邏輯表項(xiàng)的靈活劃分,使得同樣的硬件可以應(yīng)用在完全不同的使用場(chǎng)景。豐富的表項(xiàng)資源使得新一代的網(wǎng)關(guān)能夠完全滿足用戶現(xiàn)有甚至未來可見數(shù)年的規(guī)格需求。

最終, UCloud 實(shí)現(xiàn)了一個(gè)完全和公有云特性兼容,轉(zhuǎn)發(fā)能力高達(dá) 4.8T ,并且可以自由定制,成本也非常有競(jìng)爭(zhēng)力的物理云網(wǎng)關(guān)。這滿足了對(duì)于下一代物理云網(wǎng)關(guān)所定義的四大需求:全功能、高性能、低成本、可定制。

總結(jié)

UCloud 作為國(guó)內(nèi)公有云市場(chǎng)的大玩家,更是如今國(guó)內(nèi)的公有云第一股,在國(guó)內(nèi)風(fēng)起云涌、巨頭林立的大環(huán)境下,穩(wěn)穩(wěn)的占據(jù)了屬于自己的市場(chǎng), 實(shí)屬不易。而 UCloud 能做到這一點(diǎn),得益于其始終堅(jiān)持“客戶為先”的價(jià)值觀,及時(shí)響應(yīng)客戶需求,快速解決客戶問題,不斷推出超出客戶預(yù)期的創(chuàng)新產(chǎn)品和服務(wù)。也正是這樣對(duì)于客戶為先的價(jià)值觀,讓 UCloud 不僅能做好服務(wù),更能打造出卓越的產(chǎn)品。

THEEND

最新評(píng)論(評(píng)論僅代表用戶觀點(diǎn))

更多
暫無評(píng)論