選單

領域專有時代的作業系統「龍蜥」,是如何煉成的?

領域專有時代的作業系統「龍蜥」,是如何煉成的?

作者 | 楊勇

策劃 | 劉燕

審校 | 冬雨

本文整理自龍蜥社群技術委員會主席,阿里雲作業系統技術總監楊勇在 DIVE 全球基礎軟體創新大會 2022 的演講分享,主題為“龍蜥:領域專有時代的作業系統”。

以下為楊勇演講的精華內容,經編輯。

後摩爾定律時代,領域專有架構(DSA)成為未來計算機體系結構創新的主旋律。以垂直場景為中心,System Design For Application 的時代再度到來。

資料中心領域,傳統 IT 業務 “雲化” 是一個長期的過程,一雲多芯,異構的資料中心逐漸呈現場景多樣化的局面。從資源池管理,到作業系統、基礎軟體、業務軟體的部署,碎片化的時代已經到來。

由雲計算、作業系統、晶片廠商共同發起的龍蜥社群,因何而生,解決了什麼問題,又將如何應對未來的挑戰?讓我們一起了解龍蜥作業系統是什麼,以及龍蜥作業系統如何應對新時代的挑戰。

龍蜥作業系統是什麼

龍蜥社群是由 16 家理事單位共同發起、共同治理的,包括了主流的晶片廠商、作業系統廠商以及雲廠商。我們社群也在一直積極地吸納合作夥伴,目前已經形成初步產業覆蓋。

領域專有時代的作業系統「龍蜥」,是如何煉成的?

龍蜥社群的合作伙伴由作業系統、晶片、雲、硬體、應用軟體開發商以及解決方案商組成,這些產業力量加入到開源社群以後,在社群的平臺上有更多商業合作,也有更多的創新專案去孵化。這些專案圍繞著“三大主線、六個方向”去開展。

“三大主線”分別是應用生態,基礎軟體以及硬體生態。從應用生態的視角來看,一個好的作業系統一定要考慮最新的、最領先的程式語言,一定要考慮新的賽道,考慮新型的程式設計模式對作業系統的衝擊,因此在程式語言、雲原生上,我們希望有更多的創新。而基礎軟體則有兩個非常重要的方面,一個是安全可靠,一個是高效能化,這是所有基礎軟體必須考慮的問題。最後,硬體生態方面,就是要做好軟硬協同,多晶片平臺的支援。

我們社群的作業系統產品矩陣目前有兩大形態,一類是經典的發行版,就是 Anolis OS,目前已經發布了多個版本。另外一個是針對雲原生容器場景,容器專屬的 OS,Lifsea OS。

領域專有時代的作業系統「龍蜥」,是如何煉成的?

首先介紹一下社群的 Anolis OS 8 發行版。Anolis OS 8 是龍蜥社群的一個經典版本,而且是長期穩定版,在 CentOS 停服以後,提供了低成本的 CentOS 遷移解決方案及工具。在釋出的第一天,我們就支援了國內外的主流晶片,特別是國產晶片。整個作業系統的軟體棧上有三層,分別包含 RHEL 相容元件、社群創新自研元件、商業化元件。

領域專有時代的作業系統「龍蜥」,是如何煉成的?

接下來讓我們介紹一下雲原生場景專屬 OS。隨著雲的演進、雲的發展,傳統 OS 在雲原生場景下暴露出種種“不適”,主要體現在以下三方面。

• 體積臃腫:OS 映象體積大、啟動慢;

• 版本零散:叢集內不同節點軟體包版本不一致,給叢集運維帶來困難;

• 安全風險:冗餘的元件帶來更大攻擊面,OS 黑屏運維操作難以追溯。

於是,新的雲原生場景的專署作業系統應運而生,龍蜥推出了 LifseaOS,希望能夠實踐雲原生場景的不可變基礎設施的理念。LifseaOS 具有很多優勢,它比傳統 OS 更精簡、系統攻擊面更小、啟動更快速;預設整合雲原生元件,系統開箱即用;透過根檔案系統只讀、原子升級回滾,保證叢集節點運維一致性。更重要的,這個 OS 已經在雲計算廠商服務了眾多容器化和 Serverless 的使用者。

領域專有時代的挑戰

計算產業未來的趨勢一定是雲計算,而在雲時代,作業系統面臨哪些挑戰呢?

站在雲廠商的角度,我們看到,未來有三大趨勢或者挑戰:一是系統設計以應用為中心,今天出現了基於雲的專署定製的硬體。由於摩爾定律的失效,為提供更有競爭的算力,更多的晶片設計系統都是以應用為中心設計的;二是場景都是碎片化的,沒有一個通用的作業系統能滿足所有場景的挑戰;三是資源分配精細化了,原來應用部署在一臺物理機上,現在變成了幾十個、上百個容器或者虛擬機器。這些趨勢讓作業系統面臨各種問題,比如算力難以充分釋放、研發成本高、運維管理成本高。

領域專有時代的作業系統「龍蜥」,是如何煉成的?

面對這三大挑戰,有什麼應對之道?關鍵在於垂直協同最佳化。一方面做好分層抽象,同時要有自適應甚至智慧調優的能力,讓使用者變得更簡單。另外一方面也需要考慮實際的具體問題,具體場景大致可歸納為三類。

系統設計以運營為中心,異構資料中心成為趨勢。希望有統一的資源池管理這些異構資料中心,以減少異構系統並池管理帶來的效能差異以及管理複雜度;隨著面向應用場景設計的 DPU 的出現,支援 DPU 介面的多樣性,真正釋放硬體潛能也越來月重要。

場景碎片化,系統無法做到開箱即用的最佳效能。同一套通用作業系統支援多個場景,怎麼去做取捨成為難題。雲原生的部署方式讓我們不需要再做取捨,既提供通用映象,也提供針對不同垂直場景最佳化的定製映象,但又沒有非雲場景的定製映象的部署成本。

雲原生高密部署呼喚更精細化的資源分配。微服務,多租戶,制定異構資源池的容器高密部署場景下的細粒度資源分配方案帶來非常多的挑戰。龍蜥社群的創新案例中,有彈性的 CPU Burst 頻寬控制方案、在多租戶場景下使用效果顯著。

技術案例

接下來讓我們一起看看,龍蜥社群在過去一年積累的技術創新案例,透過這些案例,可以進一步理解龍蜥社群是如何應對雲時代的三大挑戰的。對每個技術案例,我們都會介紹一下,它們應對的什麼樣的場景和挑戰,又創造了哪些價值和貢獻。

領域專有時代的作業系統「龍蜥」,是如何煉成的?

KeenTune 是一款技術調優工具,它主要面向的場景和挑戰:

• 場景碎片化,開箱即用的效能無法得到保障;

• 效能調優門檻高,成本高,且非常容易出現蹺蹺板現象;

• 相似的場景下,業務程式碼持續迭代變更,調優經驗難以固化。

它創造的價值和貢獻:

• 引用 AI 演算法,協助進行敏感引數識別及引數調優,有效降低調優門檻和成本;

• 使用專家知識庫進行復雜引數關係管理,同時解決經驗固化問題;

• 在裸機、VM、容器等多場景上,達成平均 30%+ 效能提升。

領域專有時代的作業系統「龍蜥」,是如何煉成的?

Plugsched SDK 是一個排程器熱升級開發框架,是給核心開發工程師提供了一個低風險、低開銷、易應用的開發設施,它面向的場景和挑戰是:

• 核心排程演算法最佳化工作在碎片化場景下成本極高,風險極大;

• 核心釋出週期長,升級核心成本高;

• 最佳化容易引發效能問題,且問題回滾難。

它創造的價值和貢獻:

• 提供排程器演算法開發框架,幫助實現模組外掛構建和釋出;

• 熱安裝模組外掛,安全簡便,讓核心研發敏捷高效;

• 支援回滾解除安裝,降低風險。

領域專有時代的作業系統「龍蜥」,是如何煉成的?

express UDP 是一個精簡協議棧,它面向的場景和挑戰是:

• QUIC 成為 HTTP3。0 事實標準,但在 DPU 上沒有釋放出最佳效能;

• DPU 的 virtio 介面對 XDP 支援不友好,XDP 場景存在可用性問題。

它創造的價值和貢獻是:

• 解決了 DPU 對接 QUIC 場景的效能和易用性問題,QUIC+ Express UDP + virtio-net + DPU 形成軟硬協同方案;

• UDP 收發效能提升 3~8 倍,QUIC 端到端 QPS 提升 50%;

• 升級 virtio 規範,成為事實標準。

領域專有時代的作業系統「龍蜥」,是如何煉成的?

SMC-R 是一個彈性 RDMA 核心協議棧,它主要面向的場景和挑戰是:

• 隨著 DPU 的普及,RDMA 成為 DPU 的標準介面,大規模 RDMA 部署成為可能;

• RDMA 應用生態缺乏,雲上應用大部分不支援 RDMA。

它創造的價值和貢獻:

• 基於 DPU RDMA 介面,支援所有網路應用透過標準介面使用 RDMA,形成 DPU + RDMA 驅動 + SMC-R 軟硬協同的協議棧;

• 網路效能提升 20%~50%;

• 大量效能最佳化、功能及穩定性增強貢獻到上游 Linux 社群,共 60+ 補丁。

領域專有時代的作業系統「龍蜥」,是如何煉成的?

CPU Burst 是一種彈性 CPU 頻寬控制技術,它主要面向的場景和挑戰是:

• CPU 資源分配不合理經常引發容器 QoS 問題,預留空閒資源容易造成 CPU 利用率低,高密部署時,CPU 限流設定經常導致應用突發負載引起的效能抖動。

它創造的價值和貢獻是:

• 提出 CPU Burst 技術,更精細化分配 CPU 資源,允許容器積累過去未使用的 CPU 資源,在需要時突發使用 CPU 資源,避免不必要的 CPU 限流;

• 幫助使用者同時獲得高 CPU 利用率並確保效能。

因時間所限,更多的技術案例在這裡不能一一介紹了,歡迎訪問龍蜥社群的網站,或者加入龍蜥社群的使用者開發者社群,進一步瞭解社群的最新進展。

未來展望

最後,講一下關於未來,龍蜥社群的思考。

讓我們設想一下面對雲時代的三大挑戰,一個理想的社群以及理想的作業系統應該是什麼樣的?

領域專有時代的作業系統「龍蜥」,是如何煉成的?

首先,如果未來的計算平臺是以應用為中心去設計軟硬體的,那麼作業系統的軟硬協同也應該以應用為中心來設計;其次,由於場景的碎片化,軟硬協同的能力需要有一個體系化的方式。例如,用 SDK 去支援統一資源池的、高效的能力複用;用 SDK 去支援作業系統的開發者,以更低的成本在各個碎片化的場景裡得到最最佳化的系統;最後,還有一個非常重要的點,就是作業系統幫助使用者做到資料化、智慧化的資源分配。

以上,就是龍蜥社群面對未來趨勢的應對和探索。

講師介紹:

楊勇,龍蜥社群技術委員會主席,阿里雲作業系統技術總監。

開啟App看更多精彩內容