近日,阿里巴巴宣佈重磅開源其雲操作系統 Alibaba Cloud Linux 2,這可以理解為下一代 Alibaba Cloud Linux 操作系統,軟件包以 CentOS 7.6 和內核長期支持 (LTS)4.19 版本等社區來源為上游,為雲上應用程序環境提供 Linux 社區的最新增強功能,在提供雲上最佳用戶體驗的同時,也針對阿里雲基礎設施做了深度優化。
真正熟悉阿里巴巴雲操作系統歷史的人應該知道,Alibaba Cloud Linux 一開始就是開源的,但相比於成熟的社區發行版來說,Alibaba Cloud Linux 在阿里雲市場一直不溫不火,此時推出Alibaba Cloud Linux 2 OS是出於哪些考慮?與第一代相比,進行了哪些重大創新?雲操作系統的發展趨勢會是什麼?
對此,InfoQ 對 Alibaba Cloud Linux 2 項目負責人夷則進行了獨家專訪,試圖尋找上述問題的答案。
九年積累:Alibaba Cloud Linux 2 OS
我們的開發團隊是阿里巴巴操作系統團隊(前身是淘寶內核組),團隊成員大多是活躍在內核社區的開發者,九年來積累了深厚的雲操作系統和內核開發底蘊,希望通過 Alibaba Cloud Linux 2 的開源,將阿里巴巴多年技術積累持續對外輸出,將底層系統領域的技術通過操作系統這個大平臺輸出給所有人。九年來,阿里巴巴一直致力於操作領域的研發和創新,眾所周知的飛天操作系統就是阿里雲自研的分佈式集群操作系統,主要負責統一管理數據中心內的通用服務器集群,一經推出就備受關注。雖然,Alibaba Cloud Linux 2 OS 的範圍遠小於阿里雲飛天操作系統,僅指代傳統單機上的操作系統,但這一技術的開源多少彌補了國內雲操作系統領域的不足。
作為雲基礎設施的底座,操作系統的存在就好比是水和空氣,雖然雲上客戶日常運行很難注意到操作系統,但是一旦出現問題,便讓用戶無法忍受甚至難以生存,可見操作系統對雲上客戶的重要性。在阿里雲環境中,增強客戶與阿里雲底層各類雲產品的聯繫,完成客戶與阿里雲產品之間“最後一公里”的同樣是操作系統。
過去,雲上客戶使用的操作系統已是豐富多彩,主要以 Linux 操作系統為主,有企業級的收費操作系統發行版 RHEL (紅帽企業版 Linux),也有受眾極廣的免費操作系統發行版 CentOS、Ubuntu 等。夷則表示,這些發行版的特點是誕生、發展於傳統環境,幾乎沒有針對雲上產品和環境進行定製、優化。
在這種背景下,阿里巴巴操作系統團隊決定開發 Alibaba Cloud Linux。
2015 年,阿里巴巴推出過早期版本的 Alibaba Cloud Linux,但是當時並沒有圍繞阿里雲產品和基礎設施環境做定製和開發。因此,相比 CentOS 和 Ubuntu 這種成熟的社區發行版來說,Alibaba Cloud Linux 一直顯得不溫不火,此次推出的 Alibaba Cloud Linux 2 是否有望改變這一現狀呢?
夷則表示,在 Alibaba Cloud Linux 2 項目立項之初,整個團隊就制定了多項優化計劃,分別基於短期、中期和長期等不同開發節奏將阿里雲產品和基礎設施的優化分批落地,致力於針對阿里雲產品和基礎設施環境在操作系統級別進行定製和優化,力求可靠銜接阿里雲上客戶與阿里雲產品的“最後一公里”。
開放源碼是一種共享的黑客精神,從開放源碼運動誕生至今,無數優秀的開源產品給數以百萬計的軟硬件產品和雲產品提供了強大的基礎系統底座支撐。談及開源,夷則認為,操作系統開源更能獲得用戶認同感和信任感,也有助於阿里雲生態的良好發展。
如今,Linux 操作系統已經囊括了一系列龐大而成熟的開源生態圈,Alibaba Cloud Linux 2 是這個龐大開源生態圈的收益者,阿里巴巴也在努力成為優秀的貢獻者,希望將操作系統領域的多年技術積累回饋給開源社區,也歡迎志同道合的開發者一同參與內核開發協作,共同創造更加有益的價值。
重要特性
相比之下,Alibaba Cloud Linux 2 的最大亮點是搭載阿里雲內核(Alibaba Cloud Linux Kernel, ALK)。較之前的版本,ALK 選用了基於內核社區最新的長期支持版本 4.19 內核;該版本的內核在 CPU、內存、文件系統、IO、網絡、cgroup 等子系統上增加了大量新特性、性能改進和重大缺陷修復,具體如下:
- CPU: 多項 CPU 安全修復,CPU 負載預測功能改進以增強調度均衡性;
- 內存:TLB 相關優化,writeback 相關優化,OOM-Killer 可靠性優化,空閒頁面跟蹤 (Idle Page Tracking) 特性支持;
- 文件系統:Ext4, XFS, Btrfs, NFS, Overlayfs 等重要文件系統的新特性支持及優化;
- IO: 全新的異步 I/O 優化,異步 I/O 輪詢特性支持;
- 網絡:BBR,零拷貝 TCP API 支持,XDP 及 AF_XDP 機制支持;
- cgroup: cgroup v2 支持, 基於 cgroup v2 的 cgroup writeback 支持, 和 blkio latency 支持。
開發團隊對其進行了大量功能和穩定性測試,確保對外輸出最新內核社區技術紅利的同時,也能保證系統穩定;在定製優化上,針對阿里雲環境,做了內核啟動參數和系統配置參數調優,大幅提升啟動速度和錯誤恢復相關能力;對於數據庫場景、高併發多線程場景、阿里雲彈性裸金屬 (EBM) 實例和雲原生場景,Alibaba Cloud Linux 2 也做了相應性能優化,以適應雲產品快速迭代的特點。
整體上, Alibaba Cloud Linux 2 的特點可以概括為:
- 性能:大幅優化啟動性能,並針對 ECS 大規格實例,彈性裸金屬服務器等產品深度優化性能;
- 軟件:積極引入諸如 4.19 內核等新版本開源軟件,並承諾持續豐富開源軟件包生態,並不斷完善;
- 生態:源於開源社區,幫助用戶及時獲得開源社區創新紅利,同時引入更完善的發行版質量體系,提高發行版品質,並積極回饋開源社區;
- 安全:對系統進行定製裁剪,減少系統受攻擊面,提升系統安全,同時承諾及時跟進修復產品中的安全漏洞,並持續提升系統的安全標準;
夷則表示,相比 CentOS、Ubuntu 等社區版,Alibaba Cloud Linux 2 在同樣免費的基礎上,提供來自阿里雲的官方支持,這是專門為阿里雲環境定製的發行版,開箱即用,無需過多設置,並將持續針對阿里雲環境和上層應用進行優化;相比同樣有企業支持的紅帽企業版 Linux 系統,Alibaba Cloud Linux 2 又具有免費優勢。後續,阿里巴巴操作系統團隊會持續對該項目進行維護,持續集成新功能和修復缺陷,並繼續向開源社區回饋。
雲操作系統研發不易
作為傳統技術領域,操作系統具備極強的通用擴展性,而對於雲計算領域的專有優化則略顯不足。因此,亟需解決的痛點便是如何開發定製基於雲產品的操作系統功能,將操作系統這棵“老樹”在雲計算上煥發新的生命力。
在雲端操作系統領域,各大雲廠商幾乎都有側重的操作系統,以業界前列的幾位廠商為例,Amazon 作為行業領頭羊,其 Amazon Linux 是 AWS 上最受用戶歡迎的操作系統;微軟作為老牌操作系統廠商,在 Azure 上的 Windows Server 必當是首選系統;Google Cloud Platform (GCP) 略微有些不同,其更強調雲原生,而非傳統 IaaS 架構,因此沒有特意推出某款操作系統,但 GCP 上運行的顯然是一個精心優化過的基於容器的操作系統。
長遠來看,操作系統研發是一項重要技能,但其研發門檻較高,即便有各類開源解決方案也需要企業自身的研發能力足夠強大。此外,操作系統的受關注程度遠不如上層應用,這也讓很多企業不願意將精力投入到這一領域,而更願意放到能直觀吸引客戶注意力的應用層面。夷則表示,底層操作系統包括內核優化是全鏈路優化中至關重要的一環,許多新產品都依賴底層操作系統的實現或優化,缺少操作系統研發能力就等於不具備全鏈路優化的能力。
未來規劃
如今,越來越多的公有云廠商進入快速發展階段,有能力也有時間投入到技術的精細化打磨,無論是基於開源技術改進還是自主研發,未來應該都會看到更多雲廠商的技術輸出。至於 Alibaba Cloud Linux 2 ,如果感興趣,現有 Alibaba Cloud Linux 用戶可以在阿里云云服務器 (ECS) 產品控制檯中更換系統鏡像到 Alibaba Cloud Linux 2,阿里雲近期也將支持原地升級,用戶無需更換系統鏡像即可滾動升級到 Alibaba Cloud Linux 2。此外,阿里巴巴將進一步完善開源相關文檔,包括初學者文檔,吸引更多用戶參與操作系統與內核開發,在該領域與開發者進行持續交流。
未來,Alibaba Cloud Linux 2 將持續開發新特性,也會積極將開源社區的最新成果帶給 Alibaba Cloud Linux 2 用戶,回饋開源社區。同時,夷則提到,阿里雲將重點關注典型雲上應用場景的垂直優化,致力於建設最易用、性能最好的阿里雲上操作系統。Alibaba Cloud Linux 將會持續滾動更新軟件包和操作系統鏡像,以大約三個月為一個版本發佈週期持續更新迭代該操作系統。
項目官方開源地址:https://alibaba.github.io/cloud-kernel/os.html
閱讀更多 InfoQ 的文章