阿里云飞天洛神2.0:高性能网络软硬一体化技术实践
云網絡架構
云計算從9年前被質疑為新瓶裝舊酒,到經過多年的高速發展,正在成為水電煤一樣的基礎設施。云網絡構建在物理網絡之上,為云計算提供靈動、智能的網絡連接。云網絡的性能和穩定性是云計算的基石。
VPC是云網絡的基礎,VPC的基礎組件主要包括2部分:Gateway,vSwitch。
Gateway是VPC的流量入口,負責公網/專線和跨region流量的匯聚和分發。vSwitch負責ECS的虛擬交換,和Gateway一起為客戶搭建一張虛擬專用網。
CPU軟轉發
物理網絡經過幾十年的發展,接口和協議相對標準和成熟,所以物理網絡的各類交換機基本都是基于switch芯片(其中大部分是Broadcom的)做硬轉發的。
云網絡的發展是這幾年的事,業務和需求都在快速變化中,缺乏行業標準,基本都是在按需做定制,所以云網絡的各類業務基本都是基于CPU在做軟轉發。
DPDK是Intel針對x86開發的數據面優化技術,作為一個開源軟件,DPDK也可以用于其它的CPU架構,比喻說ARM和Power。DPDK運行在用戶態,通過大頁/輪詢/CPU親和性等技術,達到減少內存拷貝/減少cache miss/減少中斷調用/減少進程和線程切換等優化目標,進而實現CPU軟轉發的性能優化。
在DPDK出現之前,軟轉發通常是采用帶加速引擎的NP,x86主要用于控制。DPDK出現之后,基于x86的轉發從內核態遷移到用戶態,性能有了大幅提升。
阿里是最早把DPDK產品化的公司之一,目前阿里云網絡的各個組件已經全面切到DPDK。以vSwitch為例,通過DPDK,vSwitch的性能得到了數倍的提升。
軟硬件一體化
基于CPU的軟轉發主要面臨2個問題:一是CPU的單core性能瓶頸,在大流和攻擊場景下比較容易被打爆,導致故障;二是CPU的摩爾定律逐步失效,CPU的頻率和核數提升空間越來越小,靠CPU軟轉做進一步性能提升的空間有限。
以太網的接口速率正在飛速發展中,25G NRZ已經普及,50G PAM4已經成熟,單模塊400G已經成為現實。PCIE的接口速率也在快速發展中,單lane 16Gb的PCIE Gen4還未規模上線,單lane 32Gb的PCIE Gen5的規范已經發布。
隨著云計算的發展,云網絡的流量出現了爆發式增長。游戲/視頻/NFV化對ECS網絡性能提出了更高的要求,vSwitch的網絡正在朝百Gbps邁進。混合云的發展帶來了專線和跨region流量的激增,Gateway的流量正在朝百Tbps邁進。
為了提升云網絡的性能和穩定性,滿足云計算的技術發展需求和業務發展需求,阿里云網絡團隊對VPC的基礎組件做了全鏈路的軟硬一體化設計,Gateway以超大流量+百萬表項為目標,vSwitch以超大表項+百Gbps為目標。經過一年多的努力,2款產品都已順利上線,把阿里云網絡產品的競爭力提升了一個臺階。
vSwitch硬件加速
網絡的業務可以理解為各種route + ACL的組合,一次報文轉發要經過多次表項查找和head update。快慢速分離的思路就是讓Slowpath負責復雜的業務邏輯,首包上送Slowpath生成Session/Flow,后續報文就不需要把整個業務流程再走一遍,直接在Fastpath里基于Session/Flow做Match/Action,提升轉發性能。
軟轉發里,快慢速都是通過CPU實現的。為了提升vSwitch的性能和穩定性,阿里云網絡團隊經過一年多的努力,成功通過AISC實現了Fastpath的硬件化。
通過硬件化,vSwitch的性能對比軟轉發提升了10倍以上,延時大幅降低。
Gateway硬件加速
Gateway是VPC所有流量的入口,也是云網絡帶寬和穩定性壓力最大的一環。隨著搬站和企業上云的推進,專線流量出現了數量級的增長,達到幾十Tbps。這么大的流量,通過堆服務器來提升轉發能力基本成了不可能完成的任務。
傳統交換芯片的數據面對客戶是固定的pipeline;云網絡由于業務和需求變化快,沒有業界通用標準,方案基本都是按需做定制,沒法使用固定轉發的交換芯片。可編程交換芯片的出現給云網絡打開了一扇窗,讓Gateway硬件化成為可能。
為應對超大流量的挑戰,阿里云網絡團隊啟動了基于可編程交換芯片的Gateway設計。經過一年多的努力,成功實現了Gateway的軟硬結合設計
通過可交換芯片的加速,Gateway單機bps性能提升20倍以上,單機pps性能提升近百倍,延時降低數十倍,整體Capex和Opex大幅降低。
客戶價值
技術創新的目的是為了更好的客戶體驗,實現客戶第一的目標。通過軟硬一體化的技術,阿里云可以給客戶提供更大帶寬/更低延時/更加可靠的網絡連接。
持續演進
可編程交換芯片的轉發能力強,但片內SRAM/TCAM容量有限。阿里云體量大/客戶多,表項規格大,沒法全量下發到硬件里。解決方法之一是對表項做水平拆分,但云網絡的業務復雜,客戶的配置變化快,水平拆分的難度大/成本高。解決方法之二是軟硬結合+動態調整,通過速率計算動態檢測大象流/長尾流,長尾流動態調整到軟轉發,大象流動態調整到硬轉發,軟硬一體/動態優化。
云網絡的二八原則明顯,長尾流的表項大/流量小,大象流的流量大/表項小。通過軟硬結合+動態調整的方式,一個集群可以容納全量配置。軟轉發彌補硬件的表項容量問題,硬轉發彌補軟件的轉發能力問題,相互配合/相得益彰。
原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的阿里云飞天洛神2.0:高性能网络软硬一体化技术实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于云存储网关的Veeam备份归档上云方
- 下一篇: 下一代云原生应用制品管理平台,容器镜像服