大數據“復活”記
1629
2025-04-01
1. BoostKit 2.0:“數據親和”,使能應用極致性能
分享嘉賓:顏葉,華為計算產品線鯤鵬計算產品部部長
1.1. 前言
應用使能是助力行業價值實現,如何持續提升應用性能、加速數據流的處理是企業開發者面對的永恒挑戰。
1.2. 鯤鵬全棧優化,使能應用極致性能
過往大家關注的更多是基準算力比拼,往往忽略了軟硬協同優化,導致場景化應用性能提升遇到瓶頸。鯤鵬應用使能套件 BoostKit通過硬件、基礎軟件到場景化應用的鯤鵬全站優化。面向開發者,提供高性能開源組件和加速軟件包,使能應用極致性能。
目前boostkit的已經使能的主流開源社區支持鯤鵬,實現開源軟件在鯤鵬上開箱即用。在開發者的積極支持下,鯤鵬社區的boostkit的下載量達到了3,600萬。
80%的行業top伙伴在方案中選擇使用boostkit,其中超圖、寶蘭德、亞信等頭部伙伴采用boostkit構建的解決方案不僅獲得鯤鵬validate高階認證,而且有力支撐了150多個市場項目的落地。
1.3. 數據親和,基于數據全處理流程的負載優化
20年我們發布了booskit的1.0版本,聚焦大數據、分布式存儲、數據庫等8大應用場景,提升鯤鵬算力性能。為了降低數據加載的等待時間、提升有效算力的使用率,21年我們發布了booskit的2.0版本。居于數據全處理流程進行負載優化,向開發者提供數據親和的加速組件。
下一面我以分布式存儲、大數據和機密計算場景為例,介紹boostkit數據親和的技術創新。
1.4. 聚焦ceph存儲的性能優化與有效容量提升
在分布式存儲場景,boostkit聚焦ceph存儲的性能優化和有效容量的提升.
傳統ceph軟件架構下,不僅IO請求路徑長,而且IO的訪問線程切換頻繁,導致IOPS和時延性能低下。!
boostkit全局緩存通過軟件架構創新,重構存儲數據流,縮短IO路徑,實現IOPS性能十倍提升和時延降低90%,幫助用戶加速數據存儲。
另一方面,booskit通過EC Turbo數據壓縮壓緊等三部曲,提升ceph有效存儲容量,幫助用戶降低存儲成本。
首先,EC Turbo通過降低數據讀寫流程中的IO放大比例,實現帶寬性能不降低的情況下,提升磁盤利用率一倍;
其次,數據壓縮算法通過對原數數據進行特征識別、動態匹配、最佳壓縮算法等優化手段,實現重復數據的高效存儲,壓縮率提升了25%;
最后,數據壓緊算法通過減少因數據對齊產生的補零、空間浪費來實現更緊湊的數據落盤,壓縮率能夠再提升20%。
1.5. 聚焦Spark、Hbase、Hive等開源大數據軟件的性能優化
那么在大數據場景,boostkit聚焦spark、hbase、hive等開源大數據軟件的性能優化幫助用戶加速大數據的全處理流程。
boostkit的機器學習和圖分析算法通過算法原理和基于鯤鵬硬件的親和性優化,能夠顯著加速海量數據的分析效率,相比原生開源算法性能提升最高可達20倍。
目前,boostkit已發布覆蓋10類29個機器學習和圖分析優化算法。
此外,在傳統的數據接入和處理場景下,計算只能在中心側節點中進行。數據先要從存儲側傳輸到中心側。海量的數據搬遷,導致網絡擁塞和算力浪費。boostkit的OmniData通過將計算側的過濾類算子下推到具有富余算力的存儲側,讓計算在數據本地進行,將數據搬遷量降低為原來的千分之一,消除了海量數據的網絡傳輸瓶頸,從而幫助用戶顯著提升數據處理性能。
1.6. 機密計算TrustZone,構建數據使用的安全可信
如何在保障數據安全的前提下,更好地挖掘數據價值,已經成為越來越多用戶的普遍需求。booskit的機密計算基于arm TrustZone技術,實現安全可信能力增強,為開發者提供構建機密計算方案的可信執行環境并提供完善的應用開發SDK。其中,鯤鵬TEE安全OS作為機密計算的核心基礎軟件所采用的微內核已經在上億端側設備上穩定運行,歷經市場近十年的成熟驗證。此外,基于鯤鵬的硬件可信能力也為鯤鵬TEE安全 os 的運行完整性提供了可信保障。
1.7. 助力伙伴構建場景化解決方案,使能鯤鵬“好用”
今年我們將重點幫助開發者更好的了解和應用集成booskit 2.0的數據親和加速組件,并攜手伙伴開展場景化方案創新,在行業核心應用上使能鯤鵬好用。目前在開發者和行業伙伴的支持下,我們已經取得了顯著進展。
其中運商行業伙伴在方案中,集成分布式存儲全球緩存之后,存儲硬件規格不變,業務性能提升超過一倍,從而幫助用戶構建更具市場競爭力的高性能云存儲服務。
1.8. 獲取更多資料
boostkit立志做好開發者的開發者。我們持續開展技術創新,同時也不斷豐富學習和開發資源。
今年4月華為伙伴及開發者大會上,將會有booskit的重磅發布以及更豐富的開發者活動,期待屆時與開發者朋友們再次交流。
2. 同等規格硬件,10被存儲性能提升
分享嘉賓:杜閣,華為鯤鵬BoostKit分布式存儲架構師
2.1. 前言
隨著5G與 ai 等新型技術的發展加速了數據的產生和流動。舉幾個典型的例子,5 g 網絡的全面鋪開,延展了人與人的鏈接,豐富了應用,給運營商帶來10倍以上的數據增長;基因測序技術的進步,讓遺傳病的篩查更加精準,也產生了更多的數據。據不完全統計,當前每臺檢測的設備,每天最多會產生6TB的數據量,8 k 的這種高清視頻,每小時會產生1.8TB的數據。L3的自動駕駛每臺車訓練數據每天可以達到60TB。根據華為全球產業展望 giv 報告的數據,到2025年全球數據量會達到180個ZB。
多樣性業務正帶來數據前所未有的增長,數據也變得越來越重要。隨著數據量的增多,應用對于存儲系統的性能要求,會不斷地提高。下面以公有云的云盤業務為例子,性能指標為3毫秒左右時延,單盤IOPS為5K左右的云盤服務只能滿足最基本的離線業務和日常辦公等需求場景。而對于附加值較高的高性能計算、數據倉庫、NoSQL數據庫的應用,要求存儲系統對時延控制在1毫秒,單盤IOPS需要達到幾十個K。而針對核心的在線交易、流處理、日子處理的應用更是要求存儲系統將時延控制到亞毫秒級別。單盤的IOPS需求在10萬以上。面對新興應用越來越高的性能訴求,如何不斷提高存儲系統的性能以滿足業務訴求成為一大挑戰。
2.2. 鯤鵬BoostKit分布式存儲,訪問更快、成本更低、性價比更高
鯤鵬boostkit分布存儲解決方案面對當前存儲系統應該如何做到性能更高、成本更低、綜合性價比更優這三個核心挑戰給出了全面的答案。第一,通過軟件架構創新推出了boostkit的global cache全局緩存特性。他可以大幅提升存儲系統的性能并降低端著端的時延,可以有效幫助客戶達成挑戰的性能目標。通過自研存儲算法創新推出數據縮減方案,包含數據重刪、數據壓縮、EC Turbo等關鍵特性,大幅提升存儲介質有效容量,降低系統存儲成本。通過軟硬結合創新,推出異構卸載方案,包括算力卸載、網絡卸載、io 處理流程卸載。讓存儲系統的每次IO處理更加便宜,提供更高性價比。
2.3. 全局緩存:重構存儲系統數據流,打造極致性能
下面我們重點介紹一下Global Cache全局緩存的一些關鍵價值和關鍵核心技術點。Global Cache的重點價值主要包含以下四個方面。第一,Global Cache是一個獨立的分布式緩存集群,有完備的設備管理和異常處理機制,支持獨立部署運行、不依賴開源存儲系統。第二,Global Cache通過適配層主動兼容開源存儲系統可以為多種主流分布式存儲系統加速,比如ceph、hdfs、lustre。第三,Global Cache通過 api 與開源存儲系統對接,不修改開源軟件代碼和流程,不影響開源存儲系統功能。存儲系統的上層應用是不感知 Global Cache 的存在的。第四,Global Cache還可以屏蔽硬件的差異,提供極致的性能。Global Cache作為全局緩存集群,需要高性能存儲介質來緩存數據,也需要高性能網絡來進行數據交換。用戶可以根據業務的性能訴求選擇不同的硬件配置。比如nvme ssd或者SM作為存儲介質,使用tcp或rdma等網絡硬件。硬件的這些差異Global Cache會全部屏蔽掉。保證 Global Cache 實現高性能的三個核心技術點可歸納為:第一,緩存前后臺分離架構,應用請求在前臺完成響應,縮短整個的 io 處理路徑。第二,通過IO聚合和重構業務 walkload,保證數據大塊順序下盤,寫數據盡量不駐留在緩存中,避免寫緩存被擊穿導致的性能嚴重下降。第三點,通過數據智能預取提前將數據從后端存儲庫預取到緩存中,保證讀數據能夠命中讀緩存。
2.4. 前后臺分離:縮短IO路徑,降低端到端時延
現在介紹一下global cache前后臺分離架構的一些原理。global cash 將端到端IO處理路徑劃分為前臺和后臺兩部分。前臺部分主要是為了保證最快的響應,應用的讀寫請求。應用只會感知到緩存的部分的執行時間,后臺部分的執行時間應用是不會感知到的。以數據寫入請求為例,Cache前臺會將業務寫入的數據通過 wl 形式保存在非意識的存儲介質當中,然后立刻 response 給應用。對應用業務來說,寫請求就已經執行完成了。然后 cache 的后臺會異步地將業務數據聚合,然后批量下刷到后端的存儲pool中,這時候才完成整個數據流的全部處理流程。當業務發起數據讀請求的時候,我們會直接在讀cache pool中獲取到相應的數據,然后response給上層應用。cache的后臺會根據業務workload提前將數據從存儲pool中預取到讀cache pool中,保證讀cache能夠被命中。同時我們的緩存前臺的整個處理流程實現了零上下文切換達到最小程度的軟件開銷,盡量保證IO處理的低時延。Cache前后臺分離的這個架構保證了業務數據寫入的快速響應。
2.5. IO聚合:提升介質性能,寫緩存永不失效
但如何保證不會產生寫cache被擊穿后導致的性能斷崖下降呢?這就得歸功于 cache 后臺流程中的 io聚合功能。
寫入存儲介質的workload的不同會嚴重影響介質的性能發揮,以HDD介質為例,每塊 HDD 處理隨機4 k 的請求只能達到150個IOPS左右,換算成帶寬就是600 K。使用順序1M的IO進行寫入HDD盤可以達到100兆以上的帶寬。這樣相比隨機4K IOPS的請求來說,HDD盤的帶寬提升了足足160多倍。真實的業務場景數據workload就是大小不同、順序性不同的各種情況。而IO 聚合特性就是將各種訪問地址隨機、塊大小不同的數據塊整合成為4兆、8兆等大塊的 IO,然后通過順序的這種方式寫入到后端的存儲磁盤。這樣就能保證后端存儲介質性能大幅的提升,同時我們只需要根據系統的最大性能規格進行匹配相應的HDD盤的數量就可以保證寫入的cache永遠不會被寫穿,實現寫數據百分之百的 cache全名中。同時為了避免IO聚合后的讀放大,IO聚合功能的原數據管理,支持部分數據按序讀取。IO聚合技術保證了寫緩存永遠百分之百命中。
2.6. 智能預取:提前預取數據。數據讀緩存命中
決定系統的另外一個難題,如何提高讀緩存的命中率就擺在了我們面前。智能預取技術由此應運而生,智能預取技術主要工作原理為解析應用發起讀請求的pattern進行訪問行為匹配,比如順序流、逆序流、間隔流、熱點流、關聯流等。如果匹配成功就能提前預判業務可能會讀取的數據,將這些數據提前從后端存儲pool中讀取到cache pool。為了更加準確的預取數據,pattern匹配預取門線、預計長度等參數都會根據讀cache命中率的讀反饋進行實時的動態調整。目前經過多種真實業務負載的測試,讀命中率已經可以達到了80%以上。
為了測試 global cache 的特性效果,我們使用當前典型的分布式存儲硬件配置進行測試。分別使用3臺x86服務器和3臺鯤鵬服務器組成兩個測試集群,x86和鯤鵬的 cpu 為同檔位的型號,內存使用相同的256G。每臺服務器中使用12塊HDD作為存儲pool介質,兩塊nvme ssd作為cache pool介質。軟件配置上,x 86即選用開源Bcache加開源ceph,鯤鵬集群使用 global cache加開源ceph。最終的測試結果顯示,鯤鵬硬件及加上 global cache配合開源ceph可以達到端到端性能為140,000 IOPS每節點&1毫秒。相對于x86硬件加開源Bcache配合開源ceph來將IOPS性能提升了12倍,時延降低了96%。
2.7. 全局緩存開發實操演示
下面我們以全隨機4K 7比3,混合讀寫業務分別在x86集群和鯤鵬集群上的實際運行效果進行對比。下面是操作演示環節。
本次測試使用了3臺x86服務器組成一個存儲集群,然后軟件的話我們是在開源ceph的基礎上部署了開源Bcache。我們的測試業務模型為隨機4K IO 7比3混合讀寫。
現在執行完成了,結果已經出來。
可以看到整個集群的一個讀的性能為IOPS是26.2K,平均讀時延為23.5毫秒,寫IOPS為11.3 K,平均寫時延為114毫秒。讀寫性能綜合化,每個節點的IOPS性能為12.5K,平均時延已經超過了50個毫秒,可以看到開源 Bcache配合開源ceph端到端的IOPS性能和實驗都不太理想。這樣就很難滿足應用對于存儲的高性能訴求。
使用 global cache 特性的第一步就是通過華為官方的 support 網站先去下載一個安裝的壓縮包。
安裝壓縮包下載完成之后第一步就是解壓,解壓完成之后,我們進入到解壓后的目錄,然后通過 rpm命令進行 global cache特性的安裝,可以看到已經安裝完成了。然后我們直接啟動 global cache的服務。然后我們看一下整個啟動過程當中的一些細節。
這是啟動過程當中的各個模塊的執行的情況,可以看到現在已經啟動完成了。然后我們查詢一下當前Global cache的狀態。
大家可以看到Global cache現在已經可以正常工作了。
使用腳本開始運行測試用例。
本次測試我們使用3臺鯤鵬服務器組成的一個存儲集群。先是部署了開源ceph,然后在ceph的基礎上部署了Global cache進行加速。我們使用的那個測試模型為隨機4K IO 7比3混合讀寫。業務已經運行完成了,我們來看一下最終的執行效果。
可以看到整個集群的讀IOPS 為294 k,平均讀時延為948微妙,寫IOPS為126K,平均寫時延為1077微秒。按照7比3的讀寫比例進行綜合平均,開源ceph在加持了boostkit的global cache特性后,端到端的寫入達到了14萬IOPS每節點,平均時延為984k,實現了亞毫秒級別的時延。相對于開源Bcache加ceph在IOPS性能和時延的指標都有大幅度的提升,可以很好的滿足應用對于存儲系統的高性能訴求。
2.8. 獲取更多資料
鯤鵬分布式存儲解決方案的學習材料獲取路徑。
3. 大數據進階算法,分析性能提升20倍
分享嘉賓:沈姝,華為鯤鵬BoostKit大數據架構師
3.1. 前言
大數據在實施過程中有多個關鍵的挑戰,大數據提供批、交互、流處理等多個業務場景。用戶需要訪問hive、hbase、flink等多個組件,接口不一、多樣化查詢無法統一。現有的查詢引擎在大數據量查詢性能比較差,無法滿足業務的訴求。大量的查詢存在磁盤IO瓶頸,hdfs的性能提升比較困難,針對跨數據源的融合分析需要適配多種數據訪問方式和數據格式,解析難度比較大。在跨數據中心的查詢場景,數據無法共享;跨數據中心融合分析,需要克服網絡帶寬低任務調度等問題。鯤鵬boostkit大數據聚焦大數據關鍵挑戰針對跨元跨域查詢提供 openLooKeng開源大數據計算引擎統一數據入口,針對基礎軟件,提供IO智能預取AI算法高效取數,提升hdfs的讀取性能。針對應用性能加速,提供積極學習和圖算法加速庫,優化算法性能,提供OmniData算子下推,實現凈數據計算優化計算引擎的查詢性能。
3.2. 全棧優化,提升大數據計算性能
鯤鵬boostkit大數據圍繞鯤鵬基礎硬件聚焦大數據關鍵挑戰,從基礎加速,應用加速,開源建設多個層面,對大數據進行全棧優化,提升計算性能。在基礎加速層,鯤鵬boostkit開源了openEuler操作系統和畢昇JDK編譯器,針對大數據業務特征,提供了 appcds、 gc優化磁盤和網絡IO調度策略等多個優化點。IO智能預取采用高速緩存盤,配合高效數據預取算法,提升系統存儲性能進而提升大數據中IO密集型場景的整體性能。在應用加速層,鯤鵬boostkit提供OmniRuntime大數據加速底座,從數據接入、交互、緩存、數據的處理、算子編譯、數據格式等多個流程點進行深入優化,適配大數據openLooKeng、hive、spark 等多個計算引擎。鯤鵬boostkit提供機器學習和圖算法加速庫,基于硬件親和性和算法原理同時優化算法性能倍數級提升。在大數據開源生態上,鯤鵬boostkit提供openLooKeng開源大數據計算引擎,對接hive、spark、elasticsearch、mysql、postgresql等多個數據源。對上提供統一的SQL數據入口,提供跨數據中心的融合查詢能力。
機器學習和圖計算在各個行業中都有重要的應用場景。例如機器學習的分類回歸算法廣泛應用于運營商的高價值客戶識別場景、金融的風險評估場景、交通的流量預測場景等。圖計算的骨干分析算法廣泛應用于運營商的用戶離網預測金融的團體欺詐識別等場景。鯤鵬boostkit大數據推出了機器學習和圖算法加速庫,基于 spark 原生算法,在算法原理和鯤鵬親和性上進行了深度優化。算法執行效率倍數級提升,最高可達到20倍。boostkit大數據算法加速庫使用簡單,他的類和接口定義保持與spark原生算法一致,客戶如果基于spark原生算法開發了自己的業務應用,要使用boostkit的算法庫,不需要修改上層應用的任何代碼,只要替換了算法庫,就可以直接獲得性能收益。boostkit大數據算法加速庫目前已優化了8大類29個算法,包括機器學習的分類回歸、推薦特征工程等,以及圖計算的群體分析、路徑分析和骨干分析等等可以覆蓋市場項目中絕大部分的應用場景。
3.3. 進階算法的奧秘之一:三大鯤鵬親和性優化
鯤鵬boostkit大數據算法加速庫從多個方面進行了優化,首先是算法的鯤鵬親和性優化,原生算法受限于工程實現問題無法實現多核的并發,例如即便 cpu 有64個核,也只能使用30個,無法充分發揮 cpu 的算力。boostkit大數據算法庫針對這部分拆解算法實現力度和數據計算耦合性,可以實現80%-90%的 cpu 利用率,充分發揮鯤鵬的多核優勢。以矩陣計算為例,執行單擊矩陣乘時,按照2d 的矩陣劃分形式,將大矩陣拆分為多個小矩陣計算,實現多核并發。原生算法shuffle的數據通信量非常大,性能開銷高。boostkit大數據算法庫優化計算方式和數據編碼,降低通信數據量,提升計算性能。例如執行分布式矩陣乘時,由大矩陣和小矩陣進行2d的劃分,優化為大矩陣1d劃分,加上小矩陣進行廣播,降低了大矩陣復制帶來的通信開銷和結果矩陣的匯聚通信開銷。boostkit算法庫在內存數據結構方案上面也從原生的多層嵌套格式優化為扁平化的數據結構。精簡標識矩陣的數組內存占用,提升內存的使用率。
3.4. 進階算法的奧秘之二:機器學習算法原理優化
第二方面是算法原理的優化,我們有專業的算法專家團隊,針對算法的實現邏輯,進行數學原理上的優化,降低算法的復雜度。以分布式 svd 算法為例,svd 算法通常用來做信息提取、降維或者信息預處理。svd 算法基本的概念這邊可以看到這樣一個圖,將一個大矩陣分解為三個矩陣乘,svd 分為全量式和截斷式,全量是指求解全部的奇異值,截斷是指求解前 k 大的部分的奇異值。在對大規模矩陣進行求解時,通常使用截斷式 svd。我們對截斷式 svd流程圖的關鍵節點進行了一些創新,在開始奇異值相差比較大的情況下,我們采用密法加速的方式加快隨機 svd 的收斂速度,在后續奇異值相差比較小時,通過構建塊krylov子空間來進一步加速不分離奇異值的收斂以提升計算性能。在算法實現上,我們將矩陣乘向量的計算優化為矩陣乘矩陣,可以發現計算效率提升明顯,最終達成 svd 算法性能相比開源算法提升一倍以上。
3.5. 進階算法的奧秘之三:圖分析算法原理優化
下圖為page rank 網頁排名算法,他是搜索引擎中對網頁進行排名的一種常用算法。本質上,是一種以網頁之間超鏈接的個數和質量分析網頁重要性的算法。在 page rank 中有兩種計算方式,一個是全量迭代,所有的節點參與迭代計算和消息的更新;一種是殘差迭代,部分節點參與迭代計算和消息更新。相比于全量的迭代,談差迭代單個消息攜帶的信息量會更多。在page rank 計算初期,絕大部分的節點均沒有收斂,要參與計算。原生的算法全流程采用殘差迭代的方式進行算法收斂,因單個消息攜帶的信息多,網絡和數據傳輸的量非常大,我們優化的算法采用殘差迭代和全量迭代自適應的方式,大部分節點未收斂時采用全量迭代的方式,僅剩部分節點未收斂時采用殘差迭代的方式。這樣可以實現shuffle數據通信量減少50%以上。同時我們采用涂壓縮的技術,優化內存空間占用,達成page rank算法整體的性能優化,在不同規模的數據集上,相比原生算法性能可以提升1.5倍到3倍以上。
3.6. 鯤鵬BoostKit算法加速庫應用
下面我們從算法的業務場景,來講述下boostkit算法加速庫的應用,我們以群體分析類的算法為例,群體分析算法是基于實體對象之間的關系網絡建模、挖掘親密關系社團。根據實際應用的不同問題,需要對相應的關系進行建模并進行算法選擇,以賦予應用問題結果的可解釋性。群體分析算法的典型場景包括人員群體查詢、分析某個人員關聯的群體信息、群體類別查詢、分析個群體中相關度高的人員情況、特定群體分析、用戶可指定不同類別的關系進行群體挖掘。在這些應用場景中,我們遇到以下一些業務挑戰,大規模數據量的群體分析需求占比高,傳統單擊的算法無法計算,沒有分布式的算法可以使用,用戶當前基于規則查詢結合人工識別的方法耗時長,分析結果不完備,需要人工干預,現有算法精度不夠,計算出的社團內節點數量過大,無法收斂,不能針對未知實體做群體挖掘。
針對以上挑戰,boostkit算法加速庫,基于鯤鵬多核優勢,創新實現高并發分布式算法,支持分析全量關系數據,解決傳統單機圖譜計算效率低的問題。基于鯤鵬算法原理的優化,構建群體分析模型,支持大規模億級別數據小時級計算響應,提升計算結果精度,可收斂到合適的社團大小,結果穩定精度高。在群體分析場景中,boostkit算法加速庫提供自研的極大團分布式算法,針對關系網絡進行近鄰分析,挖掘團內兩兩相連的緊密關系團體,解決重疊社區分布式挖掘問題。針對Louvain算法,提供高性能高精度的實現,通過逐層的子圖聚合及聚合增益分析,挖掘得到關系緊密的非重疊社區,支持異步計算,提升算法精度。
我們以幾個案例來介紹下boostkit算法加速庫的應用效果。第一個是某省級項目,擁有9,000萬節點,20億邊的關系圖譜數據量龐大,項目需要基于關系圖譜挖掘出其中的關系稠密的團體。鯤鵬boostkit使用全量極大團算法,精確求解耗時在一個小時以內,執行性能相比開源提升了6倍。在局部稠密數據量集中的場景,開源算法復雜度太高,無法做到精確求解,算不出結果。第二個是某個運營商的詐騙短信識別的案例,全量的樣本有10億條,其中中標的樣本只有10萬條,數據占比非常小。需要通過聚類算法來對樣本進行篩選,為了提高聚類算法的計算效率,采用PCA特征降維算法提煉關鍵特性。從千維特征降到百維特征,降低計算復雜度,將計算時間從5個小時降低為1個小時,極大提升了算法的執行效率。第三個是某市級項目,需要對百萬級的數據級做人碼信息匹配采用 boostkit算法庫梯度提升數 gbdt 算法,將模型訓練速度從開源的1.3小時降低到了0.6個小時,效果非常明顯。
3.7. GBDT實操演練
下面我們以gbdt算法為例,給大家演示一下boostkit算法庫的使用。
在命令行操作前,先介紹下如何獲取算法包和用戶操作指南。我們在鯤鵬社區發布了boostkit算法加速庫的資料,里面包括算法包的介紹、下載以及開源部分如何編譯。也可以從社區直接下載編譯好的jar包。那么同時提供了算法包整體的安裝部署的過程,針對于算法包之上如何進行應用程序的開發,這里也給出了對應的樣例工程。同時我們在鯤鵬社區提供了所有算法的 api 接口說明在算法運行時我們也提供了對應的性能調優的指南歡迎大家來這里查詢。
下面我們就給大家演示一下gbdt 算法的使用和性能測試。這里我們準備了兩個集群,左邊是一個管理節點3個計算節點的鯤鵬集群,單個 cpu 是48個核心。右邊是同樣的一個管理節點3個計算節點的x86的集群。20個物理核心40個超線程的 cpu 的芯片。
因為便于操作我們已經提前把鯤鵬的算法包拷貝到鯤鵬服務器上。針對x86部分我們使用的時開源的算法包,所以沒有額外的部署動作,就是使用原生spark mlib的jar包。而針對鯤鵬部分,則需要使用對應算法包放到對應環境變量中。根據結果,可以看到鯤鵬算法庫明顯快于x86原生算法庫。
4. 構建安全可靠的機密計算可信執行環境
分享嘉賓:沈國華,華為鯤鵬BoostKit機密計算架構師
4.1. 前言
計算平臺作為信息系統的底座,他決定了整個it系統的安全可信。而現實是在計算系統中,只要有數據流動,就有被攻擊的途徑,目前還不存在一個完全安全的系統。系統從分層來看,應用和操作系統存在大量的漏洞,硬件也可能受到物理攻擊,即使是芯片,也會有新的漏洞。在數據全生命周期中,每個環節都有成熟的安全技術或方案來保障。在數據使用中的安全仍然是個業界的難題,原因是數據在處理時他必須是有確定性的,并且需要被處理者所理解。比如我們使用密鑰,他必須以明文的方式作為輸入才能得到確定性的結果,這個過程就為攻擊者提供了可乘之機。使用中的數據的安全問題,需要有隱私計算或機密計算來解決,所以在將來幾年中,安全可信是迫切的需求和核心競爭力。
著名咨詢公司Gartner發布的2021年前沿科技戰略趨勢報告中將隱私計算作為未來幾年科技發展的九大趨勢之一,國內九大行相繼發布了隱私計算金融應用的白皮書和藍皮書。在隱私計算體系中,可性執行環境也就是我們所說的TEE,被作為了隱私計算的硬件方案與基于密碼學的技術并列。在綠盟的計算服務器機密計算 hpp 書中將基于硬件TEE來保護使用中的數據的技術定義為機密計算。由芯片提供的硬件TEE技術主要包括Intel的SGX,AMD的SEV,ARM的TrustZone。鯤鵬的機密計算是一種基于TrustZone技術的TEE方案。
4.2. TrustZone通過硬件安全擴展提供額外的安全執行環境
TrustZone是一個被隔離的可以獨立運行的系統,也就是所謂的安全世界。這個印象難免會給人產生一些誤解,比如有人會問說TEE是不是要運行在一個獨立的cpu 上面呢,事實上這個安全世界是依靠 cpu 新增加的安全狀態,并利用了 cpu 的分時復用機制來運行一個獨立的操作系統,所以說他是不需要額外的CPU的。然后在 cpu 上同時進行了必要的擴展,將安全世界的資源進行隔離,并設置了這個硬件過濾器,來進行權限控制,使得只有安全世界才能訪問安全資源。安全世界和普通世界的通訊是通過處于123的monitor 來進行的。TrustZone的應用組成分為CA和TA,CA是部署在RE側的客戶端,負責與外部通訊,TA是執行在TEE里面的可信應用。TEE的硬件隔離是通過安全擴展來實現的。簡單來說,就是從ARM的核開始到cache通過總線到達內存控制器或者外部設備,整套通路上面他都進行了一個隔離。從架構上面可以看出這兩個世界其實在自然使用的上面是相同的,因此他的算力應該也是需要對等的。他們有各自的操作系統,但是TEE他是為安全而生,為了確保安全可信,必須減少可信機,減少外部的暴露面。因此通常TEEOS會被設計的非常的精簡,這個精簡是一把雙刃劍,意味著對開發者來說不友好。
4.3. 鯤鵬機密計算TrustZone套件
了解了TrustZone的基本原理,我們來了解一下TrustZone套件的特點和組成。TEEOS是TEE的核心組件,華為采用了自研的微內核系統,并針對服務器的云應用場景完成了適配和優化。華為TEEOS的主要特點之一是穩定可靠。因為他已經擁有手機系統近十年的時間,服務過億級用戶;第二點是安全性有保障,他得到了第三方安全認證機構的認證,取得了CC EAL4+的證書.其他特點還包括華為云上場景化的應用提供支撐,比如說遠程證明,這是一個云上應用迫切的共性需求,我們在今年也將會提供。另外還有TEEOS 深度與鯤鵬 cpu 進行了集成并充分利用了硬件的安全特性。套件的組成有兩種形態,淺藍色部分是華為閉源維護的二進制,綠色部分會對社區開源。套件是一個軟硬件結合的系統,需要得到bios以及 bmc 的配合,其中bios完成對TEEOS的解密以及校驗,初始化安全內存。而 bmc則是用來提供升級能力和維護能力。REE Patch 提供驅動以及ca的開發接口,這個 patch,開發者可以根據自己的操作系統自行編譯。sdk提供了標準的gp接口以及華為特有的服務接口,還有標準的 c 和 c++接口,這對于開發者來說相對友好。
開發便利性也是鯤鵬計算方案的特點之一,因為我們都知道OPEN TEE或者Intel SGX并不支持 c++。
在前文的技術原理中,我們已經知道了TrustZone是基于ARM架構的標準擴展來實現的。但是安全操作系統本身的完整性以及系統啟動之后業務數據的機密性,還有TEE如何提供自己的身份證明都是需要芯片廠商和整機廠商考慮的問題。鯤鵬精密計算的TEEOS的完整性是基于鯤鵬 cpu 的信任鏈來保障的,在啟動過程中如果完整性得不到校驗,他將會拒絕啟動TEEOS。TEEOS的二進制是由 cpu內部的huk,也就是硬件違約唯一密鑰來派生之后得到的密鑰加密。在TEE啟動之后,TA業務機密數據的安全由硬件安全引擎來保證。該安全引擎被設置成了安全態僅TEE內部可以訪問。為了支持后續的遠程證明,或本地證明的服務,在硬件工廠生產的時候,在 cpu 中燒寫了與cpu 綁定的身份證書。私鑰的生成和加密的過程都在 TEE內部進行,確保密鑰不會離開TEE。
4.4. 華為PKI拳法開發者證書以支撐客戶的應用部署
硬件TEE的定位決定著它天生就需要被信任,因為對開發者來說,只要他把可信應用部署到TEE內,就會被認為他是安全的,不需要再做額外的工作。但對于開放平臺來說,TA的來源他是不可預知的,為了保證TEE環境的可信,避免被惡意應用污染,TA在運行前必須得到身份和完整性的確認。鯤鵬機密計算采用的是通過給客戶簽發開發的證書,并實現對TA的完整性校驗進行管控。整體流程有以下幾步,首先開發者需要與華為取得聯系,簽署相關協議之后啟動項目,之后開發者會得到相應的指導,他需要為自己的TA生成證書請求文件,并提交到華為的接口人。華為接口人會組織技術評審,在確認業務審批已經完成,技術評審性通過之后,接口人通過華為的PKI申請證書,最后將證書發放給用戶。開發者構建自己的TA二進制,并使用 sdk 中提供的工具對 ta 進行簽名和加密,生成最終的鏡像文件。
4.5. 最簡安全收益實例
了解TrustZone的工作原理以及華為TrustZone套件的組成和特點之后,我們以一個最簡單的應用實例來體驗TEE帶來的直觀安全收益。
在這個實例中,我們要在服務器上先部署一個簽名的服務。被聯系客戶對他們的data.bin文件進行簽名并返回簽名的結果,同時也沒有實質性的要求,并且采用手工方式。于是管理員新建了一個用戶來進行簽名的操作。
在沒有了解TEE之前,開發人員按一般的實現,采用了最簡單的openssl命令行來實現這個簽名工具。首先用這個命令行生成RSA的私鑰,接著使用生成的私鑰指定私鑰算法和輸出的路徑等。最后我們就得到了簽名的二進制文件以及私鑰文件。
在這個實現過程中,機密數據的安全性是基于操作系統提供的安全機制來保證的。那這個實現會存在哪些風險呢?
首先是漏洞,OS或者軟件存在漏洞并被利用后,攻擊者可能通過提權,可獲取操作人員或者密鑰人員賬號下的私鑰,另一個就是管理漏洞,即使操作系統有用戶管理的功能,私鑰在生成的時候,也可以采用口令進一步進行保護,但是無法防止管理員本身就是惡意的。所以這個私鑰文件仍然是不安全,始終都不安全。 開發人員在了解了TEE 可以帶來的增強之后,重新基于TEE實現了簽名工具。
根據前面的介紹,TEE應用的實現分為CA和TA,CA是部署在RE側的普通應用,負責與外部通訊。TA就是可信模塊,負責簽名數據的處理。如下所示為基于該工具對原始數據進行加密,也就是進行TEE增強。
那么由于TEE帶來的增強,RE側無論是因為 os 的漏洞或者應用本身的漏洞,再或者是管理員問題,都沒法再獲取TEE內部的可信模塊的機要數據。還有一種訴求是簽名之后生成的私鑰需要持久化,那么鯤鵬提供的是硬件加封的方案。
TA可以直接調用標準的 gp 接口,就是左下方這塊,那么這個接口進入到TEEOS之后,那么TEEOS會基于HUK,也就是硬件唯一密鑰派生出根密鑰。根密鑰進一步與調用TA的標識結合,之后再派生出針對TA的工作密鑰。最后機要數據就可以哦那個這個工作密鑰來加密,將機密信息綁定到CPU與TA上。
4.6. 技術應用1:密態數據庫
基于TEE帶來的安全加強還有許多可以被應用的場景,這里是一個華為GaussDB密態數據庫的技術應用實例。
在普通的數據庫信任模型中,數據庫的使用者必須信任數據庫服務器,但是在密態數據庫服務中,服務器給用戶提供了基于用戶自由密碼對數據加密的能力。比如說用戶發起一個查詢,他想得到大于123的所有的記錄,查詢的條件由用戶自由的密碼派成之后來加密,這個加密的密鑰也就是CEK。服務器收到請求之后,由CA將請求輸入到TEE內,TEE內的數據庫TA將與用戶的客戶端建立安全通信獲得CEK之后解密查詢的條件。數據庫TA解密條件之后通過CA從數據庫中讀取密文的記錄,然后在TEE內完成迭代計算,最終結果會被CEK加密之后返回給到客戶端。這個場景中利用了TEE的隔離性,使CEK只能在TEE內產生和使用。能用的數據也只能出現在TEE內,防止中間人攻擊以及系統漏洞引起的攻擊。
4.7. 技術應用2:云場景TICS(可信智能計算功能架構)應用
下述例子是華為公有云可信智能計算服務,在這個應用中TEE被用作聯邦梯度以及數據庫查詢的數據聚合節點,使得 ai 訓練或數據庫操作都在隔離的環境中進行確保數據庫的安全。為進一步提高服務的并發能力以及打破資源的限制,在這個方案中TEE被設計成了安全聚合集群。
4.8. 技術應用3:在TEE內部署JIT編譯器支持Java程序執行
下面這個技術應用場景試圖在TEE內實現Java代碼直接運行的一種實踐。在不改變現有Java代碼邏輯的前提下,使用標簽標記代碼中的可信模塊,同時在TEE內部署功能相對完整的JIT編輯器以及運行態。Java代碼被編譯成字節流后,以class的方式送到TEE內部,JIT編譯后執行,實現了低成本的Java應用在TEE中的部署。
4.9. 行業應用
下述這個在金融行業中的一種應用場景,比如政府獎勵金發放計劃,在獎勵金發放之前首先要完成對企業或者個人的綜合評估,以確保公平和合法。傳統的方式中,評估場景涉及多部門的大量用戶數據,并且通過人員傳遞存在的隱私泄露的風險,同時這種方式也存在效率低周期長,需要有領導擔保簽字之后才能調取,業務很被動。在創新模式中,多用戶協同,可以實時地將數據匯聚到TEE內,在數據到達TEE之前全程加密,之后在TEE內隔離計算,達到數據可用不可見的目標。在計算過程中,多部門還可以通過遠程證明,隨時檢查計算節點,以及TEE內處理的數據程序是否是可信的,提高業務的效率,降低了法律的風險。
最后是一個醫療行業的應用場景,醫療機構通常擁有大量的病例數據,非常適合 a i 的訓練以發揮數據的價值,但是要考慮數據使用的安全性。在這個場景中,個人用戶通過傳感器設備將數據保存在自己的個人云空間中,網上醫院可以由第三方的 suv 來實現。用戶通過網上醫院發起比如疾病初篩等服務請求,網上醫院將設備采集到的數據送到計算節點中,計算節點將終端用戶的數據和醫療機構的數據(這些數據包括模型和病例庫等數據)匯聚到TEE內之后進行 a i 計算,最終得到結果返回給用戶。在這個應用中,除了TEE可以用于AI計算之外,數據庫也可以采用前文介紹的密態數據庫。
5. 高效調度38萬核超大規模HPC集群
分享嘉賓:胡守峰,華為鯤鵬BoostKit多瑙調度器架構師
5.1. 前言
HPC的全名是高性能計算也稱為高性能計算集群,通常用來處理大型科學計算問題。目前 hpc 早已進入各行各業,典型的場景包括環境科學、生命科學、能源制造、核爆模擬等等。隨著社會的發展對 hpc 提出了更高的要求,傳統的 hpc 面臨很多挑戰。第一是對算力的要求持續增長,大約每10年增長1,000倍,而且應用場景的多樣化導致了算力的多樣化需求;第二 hpc 系統規模的增長,導致系統整體資源的利用率偏低,行業內對 hpc 的集群的吞吐量要求很高。海量作業、海量資源對調度引擎的要求極高。作業既要寫的快又要查的快。最后傳統的 hpc 運維復雜、專業性強、對管理員要求技能很高,需要更加便捷的操作平臺。
5.2. 華為鯤鵬全棧HPC解決方案
為了打造中國數字經濟的安全底座,緊跟hpc的發展,華為及時提出了自主可控的全棧解決方案。首先最底層的是基礎設施層,分為風冷和液冷兩種數據中心;其次是硬件平臺層,包括計算、存儲和網絡,計算簡單來說就是鯤鵬arm服務器加昇騰卡還有GPU等等。再次是技術設施層,HPC技術軟件的核心就是集群管理與調度,也就是我們的多瑙portal,多瑙調度器。最上面的是行業應用層,包括氣象、制造、EDA設計、政府、教育科研等等。
5.3. 多瑙Portal:集成四大中心功能,作業全流程管理效率提升30%
下面重點介紹多瑙套件。為了方便用戶使用,我們提供了多瑙portal,也即是集群管理平臺,為用戶提供了可視化UI界面,多瑙Portal圍繞調度器打通了整個業務流程,支持作業的查詢與管理和資源的監控,提供了便捷的業務數據與資源分析平臺,支持報表與計費。其核心功能主要有以下四個:第一是應用中心,為終端用戶提供全生命周期的管理;第二是監控中心,可以對資源集群進行監控,支持管理員高效調度、高效運維集群;第三是報表中心,提供各種數據報表,支持管理員和領導進行業務決策;最后是計費中心,支持管理員完成內部結算與分攤。
5.4. 多瑙調度器:支持38萬核超大規模調度
針對前面提到的HPC的挑戰,多瑙調度器目前已經支持以下四個功能,第一是算力的融合調度,主要是鯤鵬ARM服務器與GPU的融合調度;第二是單機群最大規模38萬核,到今年底,我們支持的規模會達到百萬核;第三是多瑙調度器首創了多調度階段與調度策略的靈活組合的方式,使得調度引擎的資源分配率可以高達90%。基于benchmark測試,多瑙調度器的吞吐量可以達到每小時400萬以上。
5.5. 多瑙調度器:基于master-slave中心架構,分布式緩存加持的技術路線
多瑙調度器采用業界經典成熟的中心化架構管理服務。充分利用鯤鵬芯片多核的優勢,設計上采用了模塊化、事件驅動服務化的方式提高了調度器的整體性能。在數據存儲與訪問方面,經過緩存加持,熱溫冷數據分區存儲,突破物理性能瓶頸,大大提高了調度系統的吞吐量。而且在高可靠方面我們實現了管理節點的主備和存儲服務的主備,解決了分布式調度系統的單點問題,保證了調度性的高可靠和高可用。最后在安全方面,我們采取了各種安全加固措施,例如權限隔離等等,使得安全性得到明顯提高,而且超越友商。
5.6. 多瑙調度器:38萬核超大規模資源管理,400+萬高吞吐作業調度
在整個HPC調度系統中,其中管理節點是整個系統的瓶頸,我們必須要保證其高性能高可靠。為此我們自研了消息隊列作為事件引擎,配合狀態機進行事件的平滑與異步處理,大大提高了系統的并行處理能力。經過以上的措施,我們支持38萬核超大規模資源調度與管理,而且經過緩存加持的存儲系統,我們的端到端吞吐量可以高達每小時400萬以上。對于作業速率的提交,我們可以達到每小時1,500個,20萬活動的在線查詢可以達到1分鐘以內。
5.7. 多瑙調度器:高效靈活的調度引擎,資源分配率90+%
調度引擎作為HPC的大腦,其核心的設計與實現難點在于海量作業與海量資源的高效快速匹配。為此我們設計了高效靈活的調度框架,實現了調度階段與調度策略靈活組合的方式,保證了資源分配率可以高達90%以上。在資源分配階段,資源池內我們可以將資源按照配額分配給各個部門,保證部門之間的公平性。在作業調度階段,在資源配額內,我們會基于作業和部門的優先及公平性進行快速調度,而在配額外我們可以支持資源借用以進一步提高資源利用率,在最后的后調度階段,我們提供了兩種策略,第一個是搶占,他可以保證高優先級作業優先獲得資源以便執行,第二是回收策略,他支持回收部門已經借出的資源,以優先滿足本部門的作業需求。
5.8. 多瑙調度器特性演示
下面我會分三個場景給大家演示一下調度器如何使用,第一個是資源分配率可以達到90%,第二個場景是 gpu 作業的調度與執行,第三個場景是作業的搶占調度策略。
接下來演示第一個場景。首先我們登錄到操作環境上,看一下集群中的節點,屏幕顯示集群中有5個節點,450個核心。
我已經提成提交了一些短作業,大約有3萬多個。目前由于集群中的節點是被關閉的狀態,所以他不會有任何作業的下發。現在我把集群中所有的節點都給打開以后,我們監控這個作業狀態的執行資源分配率等。
圖中可以看到,當我打開節點之后,集群中的資源調度瞬間可以達到基本上是滿核心的狀態。由圖我們還可以看到當前只有一個節點由剩余核心,其他都已經分發。
動態觀察集群節點資源分配情況。
關閉節點,任務運行完成之后,可以看到集群資源都已經釋放了,不在分配。
然后我們再把集群節點打開,再看一下資源分配率是否可以達到90%。打開之后,我們發現資源利用率還是可以達到90%以上。
由以上演示我們可以看到在我們的多瑙調度器中,資源分配率可以達到90%以上。
接下來演示第二個場景,首先登錄GPU節點,根據輸出可以看到機器上有兩張GPU卡。
我們實時監控兩張GPU卡的運行狀態。現在我們在調度器中提交一個GPU作業。提交完成之后,可以看到作業使用了GPU 卡0。
再提交一個作業,可以看到第二個作業運行在GPU卡1上。
待作業2運行完畢,可以看到GPU卡正常釋放。
此時,我們再一次提交作業,其再次提交到卡1上。
待所有作業執行完畢,可以看到所有卡資源都已經釋放。
接下來演示最后一個場景,登錄系統后開啟搶占策略。這里已經提前配置好了,直接演示。
首先我們向low隊列提交作業,然后再想high隊列提交作業,查看作業狀態,可以看到新提交的作業把原先提交的作業的資源搶占了,使得原先作業變成STOPPED狀態。
之后再把high隊列作業kill,此次資源釋放,low隊列作業重新被拉起。
6. 總結
華為鯤鵬BoostKit2.0提供了“數據親和”和加速組件,上文介紹了其在大數據、分布式存儲、機密計算和HPC場景的4個關鍵特性,幫助企業開發者基于鯤鵬平臺開展應用性能加速,使能極致性能。
7. 參考資料
本文整理自華為云社區【內容共創】活動第14期。
https://bbs.huaweicloud.com/blogs/336904
任務7.鯤鵬BoostKit新版本推介會
上云必讀 鯤鵬
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。