龍蜥社群高效能儲存技術 SIG 11 月運營回顧 | 龍蜥 SIG

OpenAnolis小助手發表於2022-12-09

高效能儲存技術 SIG 目標:高效能儲存技術興趣組致力於儲存棧效能挖掘,當前主要聚焦核心 io_uring 技術最佳化非同步 IO 效能,使用持久化記憶體提升業務單成本效能,容器場景儲存技術最佳化等課題。期望透過社群平臺,打造標準的高效能儲存技術軟體棧,推動軟硬體協同發展。

01 本月 SIG 整體進展

本月共合入 Anolis 主線 PR 23 個,包含多個主要元件的效能最佳化、CVE 修復,以及 bugfix 等。

erofs over fscache 回合上游新特性 shared domain 和 failover。這兩個特性是由火山引擎核心與虛擬化團隊同學貢獻,Jeffle Xu 和 gaoxiang 參與 review。shared domain 特性支援多映象間共享相同內容的 blob 儲存空間;failover 特性支援 daemon 崩潰後恢復。這兩個特性的合入,進一步促進了 erofs over fscache 映象加速方案的生產可用。

xfs 社群長期存在一個 inode extent-to-btree 轉換失敗,最終導致 fs shutdown 的問題。gaoxiang 透過構造相關場景,併成功抓取到問題發生時的 dump,最終將解決方案發到社群,並提前在 ANCK 中修復。同時,該修復合入後發現 xfstests 用例需要同步更新,正在推社群的過程中。

回合社群主線 fsdax-rmap 相關基礎補丁,用於支援 fsdax 場景 tracking shared page。後續將基於該方案進一步支援 xfs fsdax reflink。

凝思軟體貢獻 DSMS 專案到高效能儲存 SIG。當前專案倉庫已經構建,併發布整體工作計劃,預計 2023.6 釋出第一個版本。

02 專案具體進展

1、Anolis OS

cve:CVE-2022-3649(PR813),CVE-2022-2503(PR856),CVE-2022-26365(PR859),CVE-2022-3621(PR858),CVE-2022-3646(PR878)。

erofs:misc fixes for fscache mode(PR881/PR884),use kill_anon_super() to kill super in fscache mode(PR883),支援 fscache shared domain 特性(PR893),支援 fscache failover 特性(PR894/PR915)。

xfs:修復 syscalls/quotactl07 case 失敗(PR877),修復 inode extent-to-btree 轉換失敗導致的 fs shutdown(PR891),fsck 支援恢復日誌(PR14)。

fuse:修復 getattr 最佳化的問題(PR854)。

crypto:SM4 XTS symmetric algorithm support(PR895)。

dax:支援 dax cow(PR905)。

io_uring:sqthread park/unpark race fixes(PR857),don't convert to jiffies for waiting on timeouts(PR868/PR869),移除非同步 ioctl 支援(PR923),解決 IORING_ENTER_SQ_SUBMIT_ON_IDLE 與上游特性的衝突(PR924),anolis23 liburing(PR6)

2、容器映象加速

針對之前回合到龍蜥社群的容器映象加速方案 (erofs over fscache),從主線社群回合一系列修復補丁。

share domain 特性回合到 ANCK 5.10 核心,支援映象之間層 (image layer) 粒度的共享,從而節省映象在磁碟上的儲存空間。該特性於 v6.1 合入主線核心。

failover 特性回合到 ANCK 5.10 核心,支援 user daemon 異常退出並恢復之後,容器內對容器映象的訪問可以自動恢復,整體過程對容器無感透明。該特性目前仍在主線社群討論中,但是該方案已經在位元組內部生產環境上部署。

share domain 與 failover 特性回合 ANCK 4.19 核心仍在進行中。

3、使用者態儲存

ublk 已經開始在分散式儲存場景 POC,程式碼適配中。

目前我們正在為 ublk 開發零複製特性,方案設計已初步完成,預計12月下旬完成編碼和測試工作。

4、io_uring

Anolis 23 的 liburing 打包中,選型 2.3 上游版本 + 自研特性。

io_uring + async_simple 協程最佳化目前正在進行初步效能分析,預計 12 月底完成評估。後續計劃使能 io_uring 新的高階特性,進一步效能最佳化。

async_simple git repo:

5、dsms

凝思軟體的同學 yxpeng 介紹了 dsms 專案背景,整體架構和工作計劃,相關倉庫已經建立,預計 2023.6 釋出第一個版本。

03 SIG下一步計劃

1、share domain 與 failover 特性回合到 ANCK 4.19 核心。

2、chunk 級別 page cache 共享,以節省記憶體佔用,實現資源超賣,計劃合入上游主線 v6.3,然後再回合到 ANCK 5.10/4.19。

3、完成基於 io_uring + ebpf 的 ublk 零複製特性開發。

4、io_uring + async_simple 效能調優。

5、dsms 完成分散式儲存的選修以及在 Anolis 上的移植與開發測試。

附錄:SIG 專案一覽

  • io_uring

  • virtiofs

  • 容器映象加速

  • 資料庫最佳化

  • 使用者態儲存

  • DSMS

詳情內容見高效能儲存技術 SIG,歡迎各位感興趣的開發者加入共建。

高效能儲存技術SIG連結可移步龍蜥公眾號(OpenAnolis龍蜥)2022年12月9日相同推送檢視。

—— 完 ——


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70004278/viewspace-2927515/,如需轉載,請註明出處,否則將追究法律責任。

相關文章