我所見的歐拉操作系統 22.03 LTS
引言
2022 年 4 月 15 日,在歐拉開發者大會上,歐拉 的首個數字基礎設施全場景長周期版本 openEuler 22.03 LTS 正式發布。這是繼兩年前的 上一個 LTS 版本 之後發布的第一個 LTS 版本,也是在將歐拉項目 捐獻 給開放原子開源基金會之後的首個社區共建版本。這個版本融合了之前的三個創新版中經過驗證的新特性、新方向,來自社區的 773 名貢獻者、上百家廠商和用戶參與了版本開發,僅僅是代碼就新增了 2300 萬行。
作為一直關注歐拉發展的業內人士,我對這個裡程碑版本期許頗高。這個版本雖然距離上一個創新版發布才僅僅半年,但是卻容納了兩年來三個創新版的各種嘗試和新特性,因此,想全面的了解 openEuler 22.03 LTS,可能會發現其所承載的內容十分之多,不易抓住重點。在這裡,我將我所了解到的信息,梳理之後整理給大家,以使大家可以在選型、評估和使用時有所參考。
版本路線圖
對於不太熟悉歐拉的同學,我這裡簡單介紹一下歐拉之前的發展路線:
2019 年 12 月 31 日,openEuler 正式宣布開源,其脫胎自華為內部基於 Linux 的積累。四個月後,openEuler 發布了第一個版本 20.03 LTS,它也是一個長期支持版本。
其後,openEuler 按照半年一個版本的節奏發布了三個創新版。從創新版開始,華為之外的多個公司、團隊、獨立開發者參與到了 openEuler 的開發當中。在這幾個創新版中,提出、融入了多個值得一提的新特性,如內核熱升級、內存分級擴展、千核運算能力、業務混部 CPU 調度演算法等核心能力,也從面向雲計算逐步拓展到支持邊緣計算、嵌入式的全場景領域。
圖片來源於《openEuler 22.03 LTS 技術白皮書》
這一切,在剛剛發布的 openEuler 22.03 LTS 得到了融會貫通,將在之前的創新版中經過產品環境驗證和打磨的優秀特性和創新,有機的組織起來,並形成了一個統一的基礎設施基座。
跨越式進步
根據官方數據,我們看到,這次的 22.03 LTS 和兩年前的 20.03 LTS 相比,整體來說內容豐富了許多。
比如軟體包數量:20.03 LTS 官方提供的軟體包, 包括 ISO 鏡像中的 2016 個、EPOL 倉庫中的 762 個,總計 2778 個;而在 22.03 LTS 中,軟體包數量達到了 ISO 4241 個、EPOL 1329 個、oepkgs 13323,總計 18893 個!達到了兩年前的 6.8 倍。
openEuler 軟體包數量:20.03 vs 22.03
不只是軟體包的數量,歐拉操作系統所支持的硬體架構,也從兩年前的 64 位的 ARM 和 x86 架構,又增加了兩個:32 位的 ARM 架構,以及國產 CPU 申威架構。曾經連續多次取得超算 TOP500 世界排名第一的中國超算神威·太湖之光中安裝的就是 40960 個申威 CPU。通過支持這些架構,歐拉操作系統就可以運行在鯤鵬、英特爾、飛騰、申威、龍芯、兆芯等主流晶元之上。
而能在兩年間取得這樣的大跨步進展,背後是歐拉社區的「瘋狂輸出」。根據數據,歐拉操作系統當前已有 69891 個提交,僅 22.03 LTS 這個版本就新增了 2300 萬行代碼。今年以來,歐拉操作系統已經發布了 127 個安全公告,幾乎平均每天發布一個。在歐拉操作系統發布以來,其已經創建了 241 個創新項目代碼倉,平均每 3.5 天新增一個。而這一切,都是 773 位開發者不斷努力的結果。
根據歐拉發布的 數據看板,到目前為止,歐拉已經有社區用戶 479990 位,其中貢獻者 8515 位,單位會員 333 家;合併請求 5 萬餘,評審 30 萬條;成立了近百個 SIG,創建了近 9 千個代碼倉。
(來源於歐拉數據看板,數據時間:2022/04/20)
「終始惟一,時乃日新」
就此,我問了歐拉社區技術委員會主席胡欣蔚,「歐拉為何能做到這樣大的跨越式進步?」他謙遜地表示,這只是「兩年的厚積薄發」。當然,能取得這樣的進展,也是在歐拉的開發和管理上,將「華為在開發和工程方面的經驗」和開源運作的模式進行了結合,並得益於歐拉社區開發的一系列遷移工具。
根據公開披露的信息,歐拉操作系統在政府、運營商、金融、能源、交通、互聯網等行業已達到規模應用,累計部署超過了 130 萬套。2022 年,預計歐拉操作系統將在行業的應用新增超過 200 萬套。
主要特性
內核和底層改進
在 openEuler 22.03 LTS 中,採用了經過長期打磨和調校的 Linux 內核 5.10 長期支持版,在這個版本中,華為向上游 Linux 內核社區提交了大量貢獻。可以說,這個內核版本是華為的一個「錨定」版本。在此版本上,openEuler 融入了之前三個創新版中經過商業驗證的創新特性。
圖片來源於《openEuler 22.03 LTS 技術白皮書》
歐拉操作系統使用的是 Linux 內核 5.10,但除了 Linux 內核自身的特性之外,歐拉操作系統在內核中還做了十餘處創新增強,主要包括用來提升性能的進程調度優化、大頁內存性能優化、OOM 內存回收優化、XDP 網路性能優化等。比如它集成了一套新的 QoS 調度機制,使得在線業務可以實現搶佔式優先;而 OOM 分級使得離線業務的內存可以在歐拉操作系統中得到極速的回升,這二者結合起來,就提供了對 QoS 最強有力的支撐。又比如 UC 容錯使得歐拉在面對硬體可靠性問題的時候更加有力,不再需要簡單粗暴的重啟,而是可以通過對於具體進程的控制,來實現錯誤的隔離。
除了這些隱蔽但重要的內核改進之外,如今在運維領域已經大量使用了非易失性內存(NVDIMM)存儲介質,而傳統的 Ext4 文件系統尚缺乏針對性的優化,因為 Ext4 本身是針對旋轉式硬碟設計的文件系統。尤其在元數據管理方面,基於現有日誌同步機制,其元數據管理開銷大,且容易出現寫放大問題,無法充分發揮 NVDIMM 優勢。歐拉操作系統中集成的 Eulerfs 其創新的元數據軟更新技術,減少了元數據同步開銷,有效提升文件系統的系統調用性能。在單機應用、雲原生分散式應用高性能數據存儲場景,可以代替 Ext4、XFS 等文件系統。
在這個版本中,還吸收了鴻蒙中的分散式軟匯流排能力,可以實現歐拉設備之間的自發現、自聯通,以及歐拉和鴻蒙設備的自發現。
雲計算強化
針對雲原生業務混合部署場景,歐拉操作系統中創新的 QAS 演算法,是一種適用於雲原生場景,業務混合部署的全新調度演算法,可以確保在線任務對 CPU 的快速搶佔,確定性的調度運行,同時壓制離線任務干擾。這些改進適用於對交互類等時延敏感型業務(比如 MySQL、Redis、Nginx 等)和 CPU 消耗重且時延不敏感的業務(如 AI 離線訓練)的混合部署。
根據歐拉發布會現場的演示,一台伺服器部署了歐拉操作系統 22.03 LTS 中的改進技術,而另一台沒有。這兩台伺服器上,都同時運行相同的在線和離線兩類業務。通過運行結果可以看到,在一台伺服器上的 QPS 是 1.18,而另一台上達到了 2.62,相差了將近一倍;而時延分別是 1.53 秒和0.60 秒,相差也將近一倍。
除此以外,歐拉操作系統還針對雲計算,推出了容器化操作系統 KubeOS,實現雲原生集群操作系統的統一容器化管理。它可以對操作系統進行容器化管理、對接 Kubernetes、原子化的生命周期管理;它也對操作系統進行了輕量化裁剪,減少不必要的冗餘包,可實現系統的快速升級、替換等。而在底層,歐拉操作字體結合虛擬化運行時 StratoVirt、容器管理引擎 iSulad 構建了安全容器方案,較之傳統的 Docker + Qemu 方案,其底噪和啟動時間優化高達 40% 以上,為應用提供了一個輕量、安全的執行環境,隔離了容器和宿主機操作系統間、容器間的安全風險。
四大場景 & 五個統一
作為一款發軔於伺服器領域的操作系統,歐拉在這個版本也正式支持了更多相關場景。按歐拉的話來說,就是四大場景:伺服器、雲計算、邊緣計算和嵌入式。伺服器和雲計算這並不足為奇,而擴展到邊緣計算和嵌入式領域,一方面是暗合了如今的計算潮流,另一方面,我認為,也和華為在邊緣計算、嵌入式領域的傳統優勢有關。此外,作為專註於邊緣計算和嵌入式等領域的鴻蒙,在這個領域和歐拉會師,我認為倒不是一種衝突,而是一種融合。
在四大場景的背後,歐拉宣稱,他們做到了五個統一:統一內核、統一構建、統一 SDK、統一聯接和統一開發工具。在社區開發過程中,歐拉把所有場景的所有組件的開發都歸到了一個 openEuler 代碼倉上,通過這種方式實現了任何場景都基於同一套代碼。並且,歐拉操作系統通過 EulerMaker 項目提供了一套完整的構建和裁剪能力,這使得基於同一套代碼構建的二進位,在面向不同的場景發布的時候,可以自如地進行構建和裁剪,最終形成適用於不同場景的鏡像。
「功崇惟志,業廣惟勤」
當然,能夠在一套代碼的基礎上同時適應多種場景,這其中一定存在必要的取捨。胡欣蔚說,「歐拉會針對各個場景對模塊/特性進行裁剪」,讓各個組件、模塊在不同場景能發揮各自的作用。「但是歐拉不接受只針對特定場景的定製開發,而且如果對整體架構形成衝擊的話,是不會納入到代碼倉的,」他說,「歐拉會設計好這樣的一套架構,使得不同組件在不同的架構下代碼是歸一的,通過裁剪工具,可以面向不同場景構建,並且差異化是可控的。」
在邊緣計算方面,openEuler 22.03 LTS Edge 支持 KubeEdge + 邊雲協同框架,具備邊雲 應用統一管理和發放等基礎能力。
而對於嵌入式領域,其鏡像大小 < 5M,啟動時間 < 5S,其基於 Linux 5.10 內核提供了軟實時能力,中斷響應時延達到看微秒級。它還支持樹莓派作為嵌入式場景通用硬體。所集成的鴻蒙分散式軟匯流排,可以實現歐拉嵌入式設備之間互聯互通。
除此之外,歐拉操作系統中還有很多值得一書的改進特性,只是限於 篇幅,我們無法一一道來,大家有興趣的話,可以參考《歐拉操作系統 22.03 LTS 的技術白皮書》。
下一代 LTS 路線圖
而關於歐拉接下來兩年的發展,胡欣蔚透露說:「接下來會對所支持的架構提供更多支持,包括對 RISC-V 的支持、完善對 SW 架構的支持,以及對英特爾的 Ice Lake 的完整支持和對 Sapphire Rapids 的後繼規劃。此外,在業務混部方面,也有很多正在進行中的創新。」這些將出現在預計今年二季度發布的 SP1 版本上。
讓我們以歐拉技術委員會主席胡欣蔚的一句座右銘結尾,共同拭目以待歐拉下一步的發展:
「惟精惟一,允執厥中」
(題圖及未註明出處的插圖來自於 Pixbaby,採用 CC0 協議)
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive