• <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • 3 月 19 日下午 2 點,鎖定 NVIDIA AI 網絡中文專場。立即注冊觀看
    網路

    基于BlueField和DOCA的業務可觀測性實踐

    1、業務可觀測性

    業務可觀測性是指能夠收集到業務運行和訪問過程中的數據。可觀測性數據是分析并提升業務安全性和敏捷性的基礎。從互聯網發展普及至今,隨著不同時期的技術創新,每個階段都會有相對應的業務可觀測性的產品和解決方案出現。如圖1所示,從最早廣域網路由交換的統計抽樣可觀測性、到企業網和數據中心網絡物理鏈路的可觀測性,再到云原生應用性能的可觀測性。BlueField DPU推動了數據中心基礎設施的底層架構革新,原運行于服務器CPU上的計算、網絡、安全、存儲相關的基礎設施功能被卸載到DPU上,CPU的算力得以解放從而專注于業務應用。新的可觀測性方案也會出現在DPU驅動的數據中心基礎設施之上。

    圖 1 不同時期的業務可觀測性

    2、使用BlueField提升可觀測性

    BlueField提供了硬件加速的流量解析、分類和轉發能力,以及基于ARM核心的控制平面編程能力。相較于傳統的粗粒度NetFlow網流可觀測性和基于統計的非全量sFlow網包可觀測性,我們利用BlueField的硬件加速能力實現細粒度全量網包級可觀測性。同時,我們利用BlueField的軟硬件可編程性打開基礎設施處理的“黑盒”,將可觀測性提升至函數功能粒度。整體上,實踐方案可以提供面向DPU驅動的基礎設施的網包級函數粒度業務可觀測性。

    3、使用DOCA實現可觀測性

    實踐方案的基本思路是,以DOCA提供的網流級粗粒度的可觀測性為基礎,對應的是DOCA中的NetFlow API庫,結合DPU的高性能網絡處理功能,對應的是DPU的ASAP2網包分類引擎和DOCA中的Flow API庫,以及數據平面和控制平面的可編程能力,將可觀測性的粒度提升至網包級,并精確到每個函數功能,同時做到幾乎可忽略不計的性能損耗。

    實踐方案的系統架構如圖2所示。業務流量首先經過預選器,再經由原始DPU程序處理。在DPU程序中會調用觸發器來實現相應點位的觀測。而后,被觀測的數據會收集至分析器,通過數據的重組和分析得到相應結果,比如進行異常流量檢測、問題定位等。基于DOCA開發的整體編程模式與在CPU上進行DPDK網絡功能開發類似,這種模式提高了開發效率。

    圖 2 方案系統架構

    具體地,觸發器部分的挑戰是,如何以最小的代價收集鏈式函數和網包的信息。實踐方案以統一化輕量化的函數內觸發器實現,在開發中通過將DOCA NetFlow庫修改為網包粒度實現。原始DPU程序中需要觀測的函數以API的形式調用觸發器即可。這部分的設計是實現細粒度應用系統觀測的關鍵。

    預選器部分的挑戰是,如何處理大規模原始流量并在函數鏈中記錄網包。實踐方案通過硬件卸載的預選器進行標記和過濾。在開發中通過調用DOCA Flow庫,配置所需的預選過濾規則實現。因為預選功能實際由硬件卸載完成,所以方案帶來的性能損耗幾乎可以忽略不計。這部分的設計是實現高性能處理的關鍵。

    分析器部分,則由運行在ARM控制平面的開源Python工程實現,實踐方案通過修改開源工程,根據前置網包標記,重組函數信息得到細粒度數據,并進一步做關聯數據分析。這部分的設計可以支持后續的數據挖掘,提升業務的安全性和敏捷性。

    4、實踐方案示例

    圖3是觸發器的調用示例,在原始的DPU DOCA程序中調用deeptrace_pkt觸發器API即可在所需觀測的函數內收集相關信息。

    圖 3 觸發器調用示例

    圖4是實踐方案運行時分析器部分收集的原始數據的示例。

    圖 4 分析器收集的原始數據示例
    +3

    標簽

    人人超碰97caoporen国产