自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Alibaba Cloud Linux 2 開源后又有什么新動作?

開發(fā) 開發(fā)工具
2019 年 4 月,Alibaba Cloud Linux 2 (Aliyun Linux 2) 正式開源。時至今日,已經(jīng)走過三個月的里程。

 2019 年 4 月,Alibaba Cloud Linux 2 (Aliyun Linux 2) 正式開源。時至今日,已經(jīng)走過三個月的里程。在這段時間內(nèi),這個剛誕生不久的為阿里云 ECS 環(huán)境定制優(yōu)化的 Linux 操作系統(tǒng)發(fā)行版的裝機(jī)量穩(wěn)步上升。本文將重點(diǎn)介紹 Alibaba Cloud Linux 2 的特性更新及開發(fā)過程中的決策過程與質(zhì)量保證細(xì)節(jié)。

[[271466]]

 

圖:Alibaba Cloud Linux 2 (官網(wǎng)產(chǎn)品名:Aliyun Linux 2) 在 阿里云 ECS 上過去一個月 vcpu 保有量增長示意圖 (僅展示趨勢,不代表絕對數(shù)值)

1. 開源與背景

2019 年 4 月正式對外開源的 Alibaba Cloud Linux 2 是下一代 Alibaba Cloud Linux (官網(wǎng)產(chǎn)品名 Aliyun Linux)操作系統(tǒng)發(fā)行版,以 CentOS 7、社區(qū)長期支持版 (LTS) 內(nèi)核、其他社區(qū)版用戶態(tài)軟件及阿里巴巴多個開源內(nèi)部產(chǎn)品等多個來源為上游,為云上應(yīng)用程序環(huán)境提供 Linux 社區(qū)的最新增強(qiáng)功能,在提供云上最佳用戶體驗(yàn)的同時,也針對阿里云基礎(chǔ)設(shè)施做了深度的優(yōu)化和定制。

Alibaba Cloud Linux 2 開源的重要亮點(diǎn)是自帶的阿里云云內(nèi)核(Cloud Kernel),同時也是開放在 GitHub 上的 Alibaba Cloud Linux Kernel 項(xiàng)目[1],它是開發(fā)團(tuán)隊(duì)全體成員傾力打造的一款內(nèi)核產(chǎn)品,旨在將阿里巴巴操作系統(tǒng)團(tuán)隊(duì)多年技術(shù)積累分享給社區(qū),也歡迎志同道合的開發(fā)者一同參與內(nèi)核開發(fā)協(xié)作,共同創(chuàng)造更加有益的價值。

開源歷史

Alibaba Cloud Linux 2 的開發(fā)團(tuán)隊(duì)是阿里巴巴操作系統(tǒng)團(tuán)隊(duì),前身是淘寶內(nèi)核組,團(tuán)隊(duì)成員大多是活躍在內(nèi)核社區(qū)的開發(fā)者,九年來積累了深厚的操作系統(tǒng)和內(nèi)核開發(fā)底蘊(yùn)。

Alibaba Cloud Linux 產(chǎn)品是阿里技術(shù)商業(yè)化和開源思想完美結(jié)合的范例。在阿里云 ECS 產(chǎn)品中作為官方鏡像之一,Alibaba Cloud Linux 與 CentOS, Ubuntu 等社區(qū)發(fā)行版一同作為選項(xiàng)提供給客戶,并為 ECS 環(huán)境定制了多項(xiàng)特性和性能優(yōu)化;不僅如此,Alibaba Cloud Linux 更天生帶著開源的基因。開放源碼是一種共享的黑客精神,從開放源碼運(yùn)動誕生至今,無數(shù)優(yōu)秀的開源產(chǎn)品給數(shù)以百萬計(jì)的軟硬件產(chǎn)品和云產(chǎn)品提供了強(qiáng)大的基礎(chǔ)系統(tǒng)底座支撐。站在這些巨人的肩膀上,我們繼承開源的精神,創(chuàng)造了 Alibaba Cloud Linux 產(chǎn)品,現(xiàn)在,又推出了 Alibaba Cloud Linux 2 操作系統(tǒng)發(fā)行版,并以相同協(xié)議開源,將我們的工作成果回饋到社區(qū)。

2017 年,基于 CentOS 7.3 源碼重新制作的 Aliyun Linux 17.01 上線,定制提供了較新的 4.4 版本內(nèi)核,并完成整個操作系統(tǒng)發(fā)行版開源;

2018 年 10 月, Alibaba Cloud Linux 2 項(xiàng)目需求評審啟動,11 月項(xiàng)目正式立項(xiàng);

2019 年 3 月 1 日, Alibaba Cloud Linux 2 Beta 發(fā)布,邀請?zhí)焓箍蛻魠⑴c公測;

2019 年 4 月 2 日, Alibaba Cloud Linux 2 GA 正式發(fā)布,在 ECS 公有云產(chǎn)品官方鏡像列表上架;

同時, Alibaba Cloud Linux 2 發(fā)行版源碼在阿里 OPSX 軟件倉庫上架開源,內(nèi)核源碼在 GitHub 開源。

2. 功能與優(yōu)勢

2.1 初始版本功能

Alibaba Cloud Linux 2 最主要的功能更新是內(nèi)核更新,基于內(nèi)核社區(qū)長期支持(LTS)的 4.19 版本定制,在 CPU、內(nèi)存、文件系統(tǒng)、IO、網(wǎng)絡(luò)、cgroup 等子系統(tǒng)上增加了大量適用于云場景的新特性、性能改進(jìn)和重大缺陷修復(fù),支持:

CPU:多項(xiàng) CPU 安全修復(fù),CPU 負(fù)載預(yù)測功能改進(jìn)以增強(qiáng)調(diào)度均衡性;

內(nèi)存:TLB 相關(guān)優(yōu)化,writeback 相關(guān)優(yōu)化,OOM-Killer 可靠性優(yōu)化,空閑頁面跟蹤(Idle Page Tracking)特性支持;

文件系統(tǒng):Ext4, XFS, Btrfs, NFS, Overlayfs 等重要文件系統(tǒng)的新特性支持及優(yōu)化;

IO: 全新的異步 I/O 優(yōu)化,異步 I/O 輪詢特性支持;

網(wǎng)絡(luò):BBR,零拷貝 TCP API 支持,XDP 及 AF_XDP 機(jī)制支持;

cgroup: cgroup v2 支持, 基于 cgroup v2 的 cgroup writeback 支持, 和 blkio latency 支持。

此外,和內(nèi)核相關(guān)的功能和改進(jìn)還有:

內(nèi)核啟動參數(shù)和系統(tǒng)配置參數(shù)調(diào)優(yōu),提升啟動速度和錯誤恢復(fù)相關(guān)的能力;

提供操作系統(tǒng)崩潰后的內(nèi)核轉(zhuǎn)儲(Kdump)能力,用戶可以根據(jù)需要在線打開或者關(guān)閉該功能而無需重啟操作系統(tǒng);

提供內(nèi)核熱補(bǔ)丁升級(Live Patching)能力。

2.2 更新與發(fā)展

★ 2.2.1 系統(tǒng)鏡像更新

過去三個月,Alibaba Cloud Linux 2 發(fā)布了兩個鏡像更新。最新版本的系統(tǒng)的鏡像 ID 為 aliyun_2_1903_64_20G_alibase_20190619.vhd。

在最初發(fā)布的版本中,我們只允許用戶通過 ECS 控制臺購買的方式創(chuàng)建新的虛擬機(jī)。從 20190517 版本開始,我們提供了可獨(dú)立下載的系統(tǒng)鏡像文件,用戶可以更方便地基于 Alibaba Cloud Linux 2 系統(tǒng)鏡像創(chuàng)建并使用自己的虛擬機(jī)。我們希望藉由此方式,讓用戶更積極地參與到 Alibaba Cloud Linux 2 的使用中。

當(dāng)前的獨(dú)立系統(tǒng)鏡像文件為 qcow2 格式,運(yùn)行時支持基于 QEMU/KVM 的虛擬化環(huán)境,在虛擬機(jī)中使用 virtio 驅(qū)動。獨(dú)立鏡像下載后初始化需要依賴 cloud-init 機(jī)制,詳情請參考獨(dú)立鏡像說明文檔[2]。

★ 2.2.2 軟件包更新

除了鏡像迭代, Alibaba Cloud Linux 2 還持續(xù)保持系統(tǒng) YUM 源的更新,用戶可以在操作系統(tǒng)內(nèi)通過 yum update 命令維持軟件包的最新狀態(tài)。

內(nèi)核方面的更新,我們持續(xù)基于社區(qū) LTS 4.19 內(nèi)核 rebase 代碼,加上自研功能和 Bug 修復(fù)。每三到四個星期,我們會快速迭代發(fā)布一個新的內(nèi)核包。在迭代周期內(nèi),除了完成必要的穩(wěn)定性測試,我們也會積極修復(fù)內(nèi)核BUG并反饋到內(nèi)核社區(qū)。在接下來的章節(jié)會詳述。

在操作系統(tǒng)發(fā)行版基礎(chǔ)系統(tǒng)(BaseOS)功能方面,除了常規(guī)同步上游社區(qū)的修復(fù)與更新,我們選擇性地更新了多個用戶態(tài)軟件包,以匹配最新的內(nèi)核功能及其他日常使用需求,并且對這些包進(jìn)行了必要的測試和獨(dú)立的維護(hù)。更新的軟件包包括但不限于:crash, e2fsprogs, xfsprogs, iproute 等。

此外,我們還與阿里巴巴內(nèi)部其他團(tuán)隊(duì)合作,持續(xù)將阿里巴巴的開源成果集成到 Alibaba Cloud Linux 2 中并輸出給用戶。目前集成并保持更新的阿里巴巴內(nèi)部軟件有:

Alibaba Dragonwell:Ali-JDK 的開源版本,6月下旬剛剛發(fā)布 GA 版本,我們及時跟進(jìn)集成并完成了軟件測試后,輸出到 Alibaba Cloud Linux 2;

PouchContainer:阿里巴巴開發(fā)的高效容器引擎;

Dragonfly client:開源的基于P2P鏡像及文件分發(fā)系統(tǒng);

Tengine:在 Nginx 的基礎(chǔ)上,針對大訪問量網(wǎng)站的需求,添加了很多高級功能和特性的 Web 服務(wù)器項(xiàng)目;

aliyun-cli:開源的用于管理阿里云資源的工具;

ossfs:用于將阿里云 OSS buckets 掛載到本地的工具;

eBCC:社區(qū)版 BCC 的功能擴(kuò)展。

用戶可以在操作系統(tǒng)內(nèi)通過 yum install 命令直接安裝對應(yīng)的軟件包。

★ 2.2.3 Cloud Kernel 社區(qū)貢獻(xiàn)

Alibaba Cloud Linux 2 是一個建立在社區(qū)協(xié)作基礎(chǔ)上的開源操作系統(tǒng)發(fā)行版項(xiàng)目,同時也非常重視回饋社區(qū)。

Cloud Kernel 是 Alibaba Cloud Linux 2 最重要的開源內(nèi)核,也是在 GitHub 上的開源項(xiàng)目。如前所述,我們保持三周到四周的迭代周期,在每個迭代都保持對外推送最新開發(fā)補(bǔ)丁。在迭代開發(fā)過程中,我們多次測得 4.19 版本 的 LTS 內(nèi)核的 BUG,并及時向社區(qū)報(bào)告,或者通過定位將主線內(nèi)核的修復(fù)移植回 LTS 內(nèi)核,或者主動向社區(qū)提交補(bǔ)丁。

對于測試中發(fā)現(xiàn)的 LTS 內(nèi)核 BUG,我們首先會根據(jù)已劃分的內(nèi)核領(lǐng)域進(jìn)行初步判斷,如果難以直接定位,則會進(jìn)行 bisect 尋找最有可能出現(xiàn)問題的代碼。經(jīng)過初步的分析之后,根據(jù)問題的難易程度,我們會選擇直接向社區(qū)提交修復(fù)補(bǔ)丁或者進(jìn)行討論。

有一種常見的情況是,某個內(nèi)核 BUG 在主線內(nèi)核中已經(jīng)修復(fù),但是由于種種原因,該修復(fù)沒有出現(xiàn)在 4.19 LTS 內(nèi)核中,這種情況下,我們會選擇先將主線內(nèi)核修復(fù)的代碼 cherry-pick 到 Cloud Kernel 的開發(fā)分支中,并且向 4.19 LTS 內(nèi)核的維護(hù)者、以及對應(yīng)內(nèi)核子系統(tǒng)的維護(hù)者發(fā)送一封 backport 請求的郵件,提示維護(hù)者及時將該修復(fù)移植回來。

截止6月30日,團(tuán)隊(duì)在開發(fā) Cloud Kernel 過程中,向內(nèi)核社區(qū)提交并被接收的內(nèi)核補(bǔ)丁有 19 個。此外,我們還積極向知名的社區(qū)測試套件 LTP, xfstests 等項(xiàng)目貢獻(xiàn)了多個修復(fù)補(bǔ)丁以及新測試用例。

除此之外,Cloud Kernel 還與 Intel 0-day 項(xiàng)目等開源項(xiàng)目達(dá)成合作,0-day 項(xiàng)目團(tuán)隊(duì)主動向 Cloud Kernel 推送了多個修復(fù)建議及補(bǔ)丁,均已被接受合入開發(fā)分支。

★ 2.2.4 內(nèi)核重要功能更新

由于 Aliyun Linux 2 的內(nèi)核需要運(yùn)行在通用的 ECS 系統(tǒng)上,或者用戶自定義的基于 QEMU/KVM 的虛擬機(jī)中,保持內(nèi)核功能的通用性一直是我們在增加 Cloud Kernel 功能時的原則。在開發(fā)自研內(nèi)核功能時,我們會對功能進(jìn)行充分的評估,如果該功能的實(shí)現(xiàn)方式過于 Hack,或者引入該功能會造成內(nèi)核維護(hù)成本急劇上升,我們會從架構(gòu)的完整性考慮而酌情放棄該功能的開發(fā)。下面是兩個近期自研的內(nèi)核功能的例子:

(a) cgroup writeback v1

在4月份 GA 版本發(fā)布中,我們提到了基于 cgroup-v2 的 cgroup writeback 功能是 LTS 4.19 內(nèi)核的一項(xiàng)重要更新;發(fā)布后,我們收到多個客戶反饋,亟需此功能在 cgroup-v1 上的實(shí)現(xiàn)。在深入分析之后,我們意識到,cgroup writeback 功能天生適合 cgroup-v2 的平坦結(jié)構(gòu),卻也不是不可能在 cgroup-v1 上實(shí)現(xiàn)。關(guān)鍵點(diǎn)在于在使用 cgroup-v1 時,需要人為保證對應(yīng)的 blkcg 和 memcg 兩個 cgroup 保持合理對應(yīng)的映射關(guān)系。在梳理清楚 cgroup 映射關(guān)系限制條件后,我們完成了 cgroup writeback v1 在 Cloud Kernel 上的實(shí)現(xiàn),并在 GitHub 上發(fā)布[3] 對應(yīng)的更新;同時為了保證用戶對于使用時的映射關(guān)系約束有足夠的了解,我們在內(nèi)核中默認(rèn)將此功能保持關(guān)閉,并制作了相關(guān)文檔[4]說明。

(b) TCP TIME-WAIT 狀態(tài)超時接口

這個功能允許用戶動態(tài)調(diào)整 TCP 連接的 TIME-WAIT 狀態(tài)超時時間,允許其被設(shè)置為小于默認(rèn)的 60s 值,從而在大量短連接應(yīng)用中,提高應(yīng)用性能。這個功能實(shí)際上是早期版本的 Taobao Kernel 已經(jīng)實(shí)現(xiàn)并對外提供的功能,在決定是否要將此功能在 Aliyun Linux 2 上重新移植一遍時,我們重新評估了該功能的風(fēng)險。在翻閱了 RFC 793 標(biāo)準(zhǔn)中 “The TCP Quiet Time Concept” 相關(guān)的概念后,我們認(rèn)為該功能不符合 TCP "Quiet Time" 的概念,在不知曉該風(fēng)險的情況下使用可能會造成系統(tǒng)不穩(wěn)定;但是由于該功能確實(shí)被客戶需要,且功能結(jié)構(gòu)、代碼實(shí)現(xiàn)較為獨(dú)立,維護(hù)成本和風(fēng)險可控。所以我們在內(nèi)部實(shí)現(xiàn)時,顯性備注了接口使用風(fēng)險后,將功能在 GitHub 上發(fā)布[5]。

3. 研發(fā)過程中的質(zhì)量保證

Alibaba Cloud Linux 2 使用了大量社區(qū)的功能,核心組件 Cloud Kernel 沒有使用 Red Hat 內(nèi)核版本,而是使用了基于內(nèi)核社區(qū) 4.19 LTS 版本。眾所周知,社區(qū)版的內(nèi)核的穩(wěn)定性一直為人所詬病,我們在采用此版本內(nèi)核時,也有一樣的擔(dān)心。因此在研發(fā)過程中,我們對 Cloud Kernel 進(jìn)行了積極的測試。

首先,得益于阿里巴巴操作系統(tǒng)團(tuán)隊(duì)中有多個內(nèi)核子系統(tǒng)維護(hù)者、內(nèi)核測試套件的維護(hù)者或前維護(hù)者,我們對于開源社區(qū)主流的測試套件對內(nèi)核子系統(tǒng)的覆蓋率及測試細(xì)節(jié)掌握較為全面。通過這些開源測試套件,我們發(fā)現(xiàn)了不少社區(qū)版內(nèi)核的問題,并為社區(qū)貢獻(xiàn)了多個補(bǔ)丁。

其次,在研發(fā)過程中,我們遵循“自己吃自己的狗糧”的原則,要求研發(fā)同學(xué)自行完成單元測試用例開發(fā),并且集成到內(nèi)部測試平臺中進(jìn)行回歸測試。在測試平臺的選擇上,基于研發(fā)開發(fā)測試代碼的便利性原則,我們選擇了成熟的測試框架 Beaker[6],這是一個源自 Red Hat 的社區(qū)開源測試框架項(xiàng)目,可以很方便地集成測試代碼,并且輸出直觀的測試結(jié)果。我們將自己開發(fā)完成的測試代碼放到 Beaker 測試平臺上,進(jìn)行自動化的每晚構(gòu)建回歸測試(Nightly Regression Testing)。在每個迭代中,我們也發(fā)現(xiàn)了不少內(nèi)核回歸缺陷,都及時向社區(qū)提交了補(bǔ)丁或者參與了修復(fù)討論,為穩(wěn)定 4.19 LTS 內(nèi)核做出了自己的貢獻(xiàn)。

此外,在阿里巴巴操作系統(tǒng)團(tuán)隊(duì)內(nèi)部有專業(yè)的質(zhì)量保證團(tuán)隊(duì)。質(zhì)量保證團(tuán)隊(duì)的測試平臺集成了 40多個測試套件,覆蓋了功能性測試、性能測試、冒煙及穩(wěn)定性測試等各方面。在 Alibaba Cloud Linux 2 迭代周期進(jìn)入交付測試階段,會由質(zhì)量保證團(tuán)隊(duì)負(fù)責(zé)相關(guān)測試,測試結(jié)果經(jīng)過 Review 通過后,則可進(jìn)行迭代發(fā)布。

4. Alibaba Cloud Linux 2 后續(xù)計(jì)劃

持續(xù)開發(fā)新特性,也積極將開源社區(qū)的最新成果帶給 Alibaba Cloud Linux 2 用戶,并回饋開源社區(qū);

進(jìn)一步完善相關(guān)文檔,包括初學(xué)者文檔,吸引更多用戶參與操作系統(tǒng)與內(nèi)核開發(fā);

分享操作系統(tǒng)及內(nèi)核相關(guān)的技術(shù)文章,籌建線上與線下活動,增強(qiáng)操作系統(tǒng)與內(nèi)核領(lǐng)域的交流。

5. 結(jié)語

操作系統(tǒng)最近幾個月成為了熱門的話題,此時推出這樣一篇介紹 Alibaba Cloud Linux 2 發(fā)行版的技術(shù)文章還顯得比較應(yīng)景。作為一個技術(shù)人,在日常的工作中,堅(jiān)持技術(shù)的錘煉,樂于思考與分享,對操作系統(tǒng)和內(nèi)核領(lǐng)域不斷鉆研,才能立足于瞬息萬變的技術(shù)之潮中,并且游刃有余。

Alibaba Cloud Linux 2 由阿里巴巴操作系統(tǒng)團(tuán)隊(duì)負(fù)責(zé)開發(fā),誠招有志之士參與,共同在云上操作系統(tǒng)領(lǐng)域探索更多的可能。簡歷可發(fā)至 caspar@linux.alibaba.com

附:本文所用鏈接

[1] Cloud Kernel GitHub Page:

https://github.com/alibaba/cloud-kernel

[2] 獨(dú)立鏡像說明文檔:

https://github.com/alibaba/cloud-kernel/wiki/Aliyun-Linux-2-On-Premise-Image

[3] cgroup writeback v1 發(fā)布:

https://github.com/alibaba/cloud-kernel/releases/tag/alk-release-12

[4] cgroup writeback v1 功能說明文檔:

https://github.com/alibaba/cloud-kernel/wiki/cgroup-writeback-v1-interface

[5] tcp_tw_timeout 接口發(fā)布:

https://github.com/alibaba/cloud-kernel/releases/tag/alk-release-13

[6] Beaker 測試平臺:

https://beaker-project.org/

【本文為51CTO專欄作者“阿里巴巴官方技術(shù)”原創(chuàng)稿件,轉(zhuǎn)載請聯(lián)系原作者】

 

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2017-10-25 16:04:35

2021-10-14 15:03:47

網(wǎng)絡(luò)安全谷歌攻擊

2021-06-04 14:25:29

鴻蒙HarmonyOS應(yīng)用

2021-11-15 12:14:49

零信任網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2009-12-10 08:57:44

Linux新版驅(qū)動

2023-09-21 18:16:57

Linux內(nèi)核系統(tǒng)

2022-06-13 15:49:38

LinuxLinux 5.19

2023-06-25 14:58:08

C++語言Rust

2013-12-25 10:24:42

微信認(rèn)證收費(fèi)微信店鋪系統(tǒng)

2013-12-27 11:02:07

微信認(rèn)證收費(fèi)

2023-10-31 17:57:52

C++編程語言

2012-04-06 13:51:01

RIM黑莓

2017-04-12 23:01:47

2025-01-06 09:43:36

SpringAI?模型

2020-03-31 18:50:33

微軟Windows操作系統(tǒng)

2021-11-16 22:56:05

Windows 11Windows微軟
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號