高效能儲存SIG月度動態:ANCK 5.10正式支援ublk、erofs容器映象按需讀時延最佳化60%

OpenAnolis小助手發表於2023-03-03

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

01 本月 SIG 整體進展

本月合入 Anolis 主線 PR 18 個,涉及多個重要元件的更新(特性支援、效能最佳化、以及 bugfix 等)。

ANCK 5.10 正式支援高效能使用者態塊裝置 ublk,將隨下一個 ANCK 版本 5.10-14 釋出。

tcmu zero copy 和 bypass data area 最佳化特性合入 ANCK 5.10,相比原生 tcmu 效能提升 1 倍以上。

erofs over fscache 最佳化 on-demand buffered 讀,按需讀取資料時延最佳化 ~60%。

dsms-storage 開始適配 Anolis 23,管理平臺相關開發工作按計劃進行中。

浪潮資訊同學貢獻多個 cve 修復和 bugfix。

02 專案具體進展

1、Anolis OS

CVE:CVE-2022-4696(PR1097),CVE-2022-1184(PR1140),CVE-2022-4139(PR1141),CVE-2022-47946 (PR1173) erofs:optimize on-demand IO path with buffered IO(PR1252)

ext4:fix fstests generic/626(PR1066),various bugfixes(PR1280/PR1292)

xfs:fix fstests xfs/546(PR1069/PR1144),stable fixes(PR1095)

reiserfs:remove useless new_opts in reiserfs_remount(PR1256/PR1302)

io_uring:fix uring-cmd task_work(PR1129)

ublk: [feature] support high performance ublk(PR1133),fix queue_size overflow(PR1230)

tcmu:[feature] improve tcmu performance(PR1255)

miscs: stable fixes for dm/md/nfs(PR1094)

2、容器映象加速

ANCK 5.10 erofs fscache 進一步最佳化 on-demand buffered 讀,在觸發按需讀資料時,使用者態 daemon 透過 buffered 寫方式將使用者申請訪問的資料寫入快取檔案,再使用 buffered 讀時命中快取,時延最佳化 ~60%。

erofs 支援非 4k 頁特性已合入上游主線,可支援非 4k 頁架構(如 aarch64)的執行。

erofs-utils 支援 subpage(即小於 PAGE_SIZE 的塊大小)特性,支援同一映象多壓縮演算法;另外,多執行緒解壓最佳化效果測試中。

3、使用者態儲存

ANCK 5.10 正式支援高效能使用者態塊裝置 ublk,將隨 5.10-14 版本釋出。接下來將基於該版本重新整理下分散式儲存專案的 POC 資料。配套的使用者態庫改造中,目前已經向上遊社群提出改造需求。

ebpf + io_uring 零複製方案已經傳送到社群,目前已經迭代到 v2 版本,需要繼續根據社群建議修改迭代。我們的想法是做成一個通用的解決方案,在通用塊層支援 ebpf 做資料過濾、重定向等,當前從零複製這個共性需求切入。

tcmu zero copy 和 bypass data area 最佳化特性合入 ANCK 5.10,相比原生 tcmu 效能有顯著提升,大塊 IO 如 512k 讀最 大提升 1 倍,寫提升 3 倍。

4、io_uring

目前正在對 c++ 庫 asio 的 io_uring 程式碼進行最佳化,asio 當前預設使用 io_uring 的 fast poll 特性去進行網路請求處理,初步測試效能相比 epoll 還要差 ~10%。

我們正在將其進行 io_uring 的 multi-shot 特性改造,目前適配工作還在進行中。

io_uring multi-shot 的資料可參考:

5、DSMS

dsms-storage 正在 Anolis 23 上進行適配,由於 Anolis 23 目前缺失一些相關依賴包,適配工作暫停。目前已經向社群提交了 issue,等待社群處理。dsms-engine 的開發工作按期進行中:

03 SIG 下一步計劃

mkfs.erofs 支援使用者設定的 block size(目前預設 4k),erofs 支援設定單獨的目錄 block size。

完成基於 5.10-014 核心版本的分散式儲存專案 POC 資料更新。

推動社群關於 ebpf + io_uring 零複製方案的 review 並繼續迭代。

完成 asio io_uring multi-shot 適配改造。

繼續推進 dsms 適配 Anolis23 相關工作。

附錄:SIG 專案一覽

  • io_uring

  • virtiofs

  • 容器映象加速

  • 資料庫最佳化

  • 使用者態儲存

  • DSMS

詳情內容見 ,歡迎各位感興趣的開發者加入共建。

—— 完 ——


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

相關文章