天天看點

Volcano:帶你體驗容器與批量計算的碰撞的火花

摘要:今年(2020)7月初,Volcano 釋出了1.0版本。1.0做為裡程碑版本,在Volcano整個規劃中起到了承上啟下的作用。此次釋出的1.0版本支援了GPU共享,作業動态擴縮容,批任務搶占等功能,并主要加強了穩定性;同時,在1.0釋出後 Volcano也線上下讨論了分布式排程系統的未來發展的趨勢等。

在分析趨勢之前,我們先看一下分布式排程系統的曆史。早期分布式排程系統以批處理系統為主,例如九幾年的LSF/SGE/PBS等,這些批處理系統大規劃的使用在HPC領域,而且對作業級的排程進行大量的研究工作;後續由批處理系統延伸出多叢集、多組織資源共享的需求,便成了網絡計算。

網絡計算與雲計算最大的不同是:網絡計算強調多組織的資源共享,而雲計算強調雲廠商的集中式支援;這也是雲計算成為主流的主要原因:多組織之間共享需要完備的協定和足夠的安全支援,而雲服務僅需要對使用者提供相應服務和安全,并不需要在多個雲廠商之間進行共享;随着開源社群的發展,再将應用接口逐漸統一,e.g. Kubernetes。Hadoop出現後,不僅推動了分布式排程系統中對資料的處理,同時也推動了開源軟體的生态。2012和2014是兩個重要的節點,Hadoop将資源管理層與領域架構層分開,随後的領域架構也有機會建構自己的生态,e.g. Spark;同時,将資源管理層與領域架構分開也被廣泛認可。

在容器及Kuberentes流行後,憑借其高資源使用率與隔離,環境标準化等優勢,越來越多的人希望将這些批量計算應用統一到 Kubernetes 平台上。

Volcano:帶你體驗容器與批量計算的碰撞的火花

随着各行各業的發展,湧現出越來越多的領域架構來支援業務的發展;這些架構都在相應的業務領域有着不可替代的作用,e.g. Spark, Tensorflow, Flink等。在業務複雜性能不斷增加的情況下,單一的領域架構很難應對現在複雜的業務場景;是以現在普遍使用多種架構達成業務目标,如下圖所示。

Volcano:帶你體驗容器與批量計算的碰撞的火花

但随着各個領域架構叢集的不斷擴大,以及單個業務的波動性,各個子叢集的資源浪費比較嚴重;是以越來越多的使用者希望通過統一排程系統來解決資源共享的問題。在技術選型上,Kubernetes憑借其優秀的擴充性獲得大部分使用者青睐。

在批量計算任務向雲原生環境遷移的過程中,對雲原生環境的算力提出了新的要求;各個廠商為了應對這些新的需求,為各個場景提供了不同架構的硬體,例如 鲲鵬,昇騰,X86,GPU等。當多種應用運作在統一平台上時,需要雲原生排程系統能夠對異構硬體資源進行統一的管理與排程,使用各種應用達到最優的資源配比。目前,硬體的資訊通過kubernetes的 device plugin 機制提供,但Kubernetes的 device plugin 仍有一些不足,例如 無法很好的支援硬體拓撲。在排程方面 Volcano 已經支援主流的排程政策,并在最新的1.0版本中支援了 GPU 共享,大大增加了GPU的使用率,有效降低了GPU的使用成本。

跨叢集一直是分布排程系統解決大規模、災備等問題的主要解決方案;同時,為了降低廠商綁定的風險,并最大限度兼顧不同雲廠商的優勢,多雲環境下的負載高效分發逐漸成為趨勢。在多雲的環境中,面向資料位置的優化,作業執行時間預估等問題都是需要排程系統解決的問題;在 Volcano 中,将通過多個項目實作跨叢集、跨雲的作業排程,例如 JobForward (#880)。

排程算法在分布排程系統中有大量的研究,從早期的批處理系統到近期的Borg,Volcano等;早期的批處理系統以特定場景的算法優化為主,對于複雜的場景需要大量的計算,雖然有大量針對HPC和網絡的排程優化,但常用和落地的算法比較少。随着人工智能的發展,越來越多的排程系統将會使用AI相應的能力對算法進行優化;在 Volcano 中,将通過AI的能力驅動 Volcano 中各個排程算法進行優化,并通過AI的能力提供新的排程算法。

分布式排程系統是一個複雜的系統,需要多個元件共協作以提高整體的效率,例如 應用管理,排程,異構硬體管理,存儲等,僅靠排程器無法完成這些工作。Volcano 作為CNCF首個面向批量計算的分布式排程系統,包含了應用管理,作業排程,異構硬體等多個元件和功能;其排程器相容kubernetes排程政策,同時支援線上、離線兩種作業類型;控制器提供了統一的作業管理,支援多種作業的接入,包括 MPI, Tensorflow, MidSpore, Spark 等;裝置插件提供了對異構硬體的支援,例如 1.0 版中支援了 GPU 共享。是以,Volcano面向分布式排程系統的趨勢提供了完整的方案,可以在多種場景下提高作業性能,資源使用率等。

由Volcnao項目發起者馬達主講的直播課程正在進行中,課程共有6期,從技術原理到實戰演練,涵蓋Volcano全景。

Volcano:帶你體驗容器與批量計算的碰撞的火花

鎖定後續課程資訊,擷取往期回放與講師PPT,請假助手微信(k8s2222)并備注“Volcano”。

點選關注,第一時間了解華為雲新鮮技術~

繼續閱讀