高效能儲存SIG月度動態:EROFS支援直接索引容器映象tar包等
高效能儲存 SIG(Special Interest Group)目標:儲存領域的發展歷程,本質上是儲存介質與軟體棧相互促進發展的過程。高效能儲存 SIG 致力於儲存棧效能挖掘,當前主要聚焦核心 io_uring 技術最佳化非同步 IO 效能,使用持久化記憶體提升業務單成本效能,容器場景儲存技術最佳化等課題。高效能儲存 SIG 期望透過社群合作,打造標準的高效能儲存技術軟體棧,推動軟硬體協同發展。
01 本月 SIG 整體進展
1)本月合入 Anolis 主線 PR 共計 11 個,包含重要元件的特性支援,效能最佳化和 bugfix 等。
2)ANCK 5.10 支援 erofs subpage block 特性,提升容器映象 tar 包解壓效能以及 golden image 的安全性。
3)ublk 零複製方案仍在社群討論中。
4)ANCK 5.10 計劃支援 io_uring nvme passthrough 特性,以進一步最佳化核心 IO 棧開銷,提升業務效能。
5)DSMS Anolis 8.6 聯調持續進行中。
02 專案具體進展
1、Anolis OS
cve:CVE-2023-1611(PR1548/PR1549)
erofs & fscache:最佳化按需場景 IO 效能(PR1557),erofs block-based IO 切換到 iomap 框架(PR1531),erofs 支援 subpage block for tarfs(PR1561)
io_uring:修復 IORING_OP_URING_CMD 的相容問題(PR1564/PR9)
xfs:修復多個 xfstests 問題,xfs/191,xfs/144,xfs/549(PR15)
virtiofs:修復 cache=none 模式下 fd 長時間不釋放的問題(PR1533)
misc:修復 nilfs2 sysfs 介面生命週期 bug(PR1559),修復 nfsd server crash 問題(PR1590)
2、容器映象加速
隨著 Linux v6.4 合併視窗開啟,erofs 檔案系統的 long xattr name prefixes 特性正式合入社群主線,最佳化儲存 overlayfs xattr 後設資料(例如 composefs 模式)重複 name 的額外開銷:。
ANCK 5.10 支援 erofs subpage block 特性,可應用於容器映象場景中 erofs 直接索引容器映象的 tar 包,省去容器映象生命週期管理中 tar 包的 untar 以及清理流程,從而提升效能和穩定性,並提升容器映象作為 golden image 的安全性。
ANCK 5.10 支援 erofs 的 flattened block device 模式,使得 multi-blob images 儲存於同一個 block device,該特性可以應用於機密容器的儲存方案。
3、使用者態儲存
截止目前,上游社群一共提出了三種 ublk 零複製方案:
近期 io_uring 社群核心開發者 Pavel 也提出一個方案,目前還在討論中。目前判斷該方案對 io_uring 侵入較小,最終接收到主線的可能性較高: https://lore.kernel.org/all/cover.1682701588.git.asml.silence@gmail.com/
另外,向上遊社群 blktests 貢獻了 6 個測試用例,覆蓋 ublk 裝置的正常刪除、crash 後刪除、檔案系統掛載和故障恢復等特性:
4、io_uring
基於分散式儲存業務需求,開始調研 nvme passthrough 技術。我們測試發現效能並沒有想象中那麼好,經過分析我們認為可以做得更好,並丟擲了我們的方案,獲得了三星開發人員的認可:
另外,我們計劃在 ANCK 5.10 中支援 nvme passthrough 技術。該技術基於已經支援的 io_uring uring_cmd 方案,允許 nvme 請求透過 io_uring 直接傳送到 nvme 塊裝置驅動,從而最佳化 nvme 裝置讀寫經歷的軟體棧提升效能。
5、DSMS
dsms 是一個分散式儲存系統管理平臺,旨在實現視覺化的儲存叢集管理,提升分散式儲存軟體的易用性。專案地址:
目前 dsms 持續在 Anlios 8.6 上面進行 dsms-engine、dsms-storage 以及 dsms-ui 等元件的功能聯調。
另外,經過 SIG 例會討論,ceph 15 確定在 dsms 專案中維護,先整體基於 Anolis 8 開發,後續再遷移至 Anolis 23 併發布。
03 SIG 下一步計劃
支援 erofs 的 bloom filter 特性,進一步提升 erofs 的 xattr 訪問效能;在 ANCK 4.19 中支援 erofs subpage block 與 flattened block device 等特性。
ANCK 4.19 支援 virtual fuse 模組,其可以方便雲原生場景下 FUSE 檔案系統的部署,可應用於大資料和 AI 訓練的儲存接入;ANCK 4.19 增強 fuse 的快取一致性,使其支援分散式檔案系統後端,可應用於大資料和 AI 訓練的儲存接入方案。ANCK 5.10 支援 io_uring nvme passthrough 特性,並在分散式儲存專案完成 POC,同時在社群推進更加高效的 nvme passthrough 方案。
dsms 繼續進行 dsms-engine、dsms-storage 以及 dsms-ui 等元件的功能聯調,並開始適配 Anolis 23。
詳情內容見 ,歡迎各位感興趣的開發者加入共建。
相關連結可移步龍蜥公眾號(OpenAnolis龍蜥)2023年5月10日相同推送檢視。
—— 完 ——
為給大家提供更好的內容和服務,龍蜥社群誠摯地邀請大家參與問卷調研,請掃描下方二維碼填寫,我們將篩選出優質反饋,送出龍蜥周邊!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70004278/viewspace-2951594/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 高效能儲存SIG月度動態:ANCK 5.10正式支援ublk、erofs容器映象按需讀時延最佳化60%
- 高效能儲存SIG月度動態:ANCK ublk完成POC測試,EROFS最佳化xattr後設資料開銷
- 高效能儲存SIG月度動態:DSMS開始適配Anolis OS、將在ANCK 5.10中支援ublk
- 高效能儲存SIG月度動態:ublk完成POC、dsms-storage在Anolis OS上成功適配
- Cloud Kernel SIG月度動態:釋出 Anolis 8.8 映象、kABI 社群共建流程Cloud
- 高效能網路 SIG 月度動態:推動 virtio 支援動態中斷調節及更靈活的分流機制
- OpenCloudOS Kernel SIG 月度動態:釋出 OCK 6.6.30-4 版本,新增特性支援Cloud
- 高效能網路SIG月度動態:virtio-net 支援動態中斷調節,SMC v2 協議增加新擴充套件協議套件
- 商密SIG月度動態:檔案加密支援SM4演算法、Anolis 8.8將預設整合 | 龍蜥 SIG加密演算法
- 高效能網路SIG月度動態:virtio 動態中斷調節最佳化、多項核心網路缺陷修復
- 自動儲存、靜態儲存和動態儲存
- 高效能網路SIG月度動態:SMC 與 IBM 就擴充套件協議達成一致,virtio 支援 XDP 新特性IBM套件協議
- Docker 基礎-映象&容器&網路&儲存Docker
- Docker配置本地映象與容器的儲存位置Docker
- 高效能網路 SIG 月度動態:長期投入得到業界認可,新增一位 virtio reviewerView
- 龍蜥社群高效能儲存技術 SIG 11 月運營回顧 | 龍蜥 SIG
- Cloud Kernel SIG 月度動態:釋出 ANCK 5.10-013 版本、完整支援 Intel SPR 處理器CloudIntel
- Cloud Kernel SIG月度動態:釋出 ANCK 新版本及 Plugsched v1.2.0Cloud
- 高效能網路SIG月度動態:virtio新裝置進入virtio規範、smc新特性IPC效能比tcp提升88%TCP
- docker 儲存映象Docker
- 移動索引的儲存過程索引儲存過程
- 動態儲存過程儲存過程
- docker容器儲存Docker
- 配置pod拉取harbor容器映象倉庫私有映象:secret儲存賬號密碼密碼
- 兩個修改Docker本地映象與容器的儲存位置的方法Docker
- 容器儲存介面--CSI
- 容器附加儲存(CAS)是雲原生儲存
- 索引儲存小記索引
- 動態表單儲存設計
- 動態呼叫儲存過程 sample:儲存過程
- Cloud Kernel SIG月度動態:釋出ANCK 5.10、4.19新版本,ABS新增倉庫構建功能Cloud
- 修改docker的預設儲存位置及映象儲存位置Docker
- SQLServeronLinux列儲存索引SQLServerLinux索引
- 函式索引的儲存函式索引
- SQL Server 深入解析索引儲存(聚集索引)SQLServer索引
- 容器化RDS—— 計算儲存分離 or 本地儲存
- 海量資料儲存之動態SchemaOU
- oracle動態sql儲存過程示例OracleSQL儲存過程