高性能存儲 SIG 月度動態:優化 xfs dax reflink 時延,獨立選型并維護 mdadm 和 ledmon

本次高性能存儲月度動態綜合了 SIG 在 5、6 兩個月的工作進展,包含多項特性支持,性能優化,以及 Bugfix 等。

01?SIG?整體進展

  • 引入 xfs deferred inode inactivation,進一步優化 xfs dax reflink 過程中的抖動時延。

  • Intel 將在 SIG 中獨立選型 mdadm & ledmon 并維護。

  • fuse 支持 resend pending 請求和讀寫分離優化,virtio-fs 支持多隊列。

  • erofs 支持 zstd 壓縮算法,并重構 utils 支持 lib 庫集成以及增量構建。

  • dsms 解決斷電場景數據丟失問題,并通過優化 ceph 內存分配解決碎片化場景 IO 延遲升高問題。

02?項目具體進展

2.1 Cloud?Kernel

2.1.1 erofs

[Bugfix] 修復 erofs_statfs() 中 UUID 問題,并優化 DEFLATE stream 分配邏輯。(PR3281/PR3285/PR3287)

[Feature] 支持 zstd 壓縮算法,已合入社區 6.10 主線。

[Feature] 重構 erofs utils,可提供 lib 庫供其他項目集成,如 DADI。

[Feature] 支持 centos oot。

[Feature] erofs utils 支持增量構建。

2.1.2?xfs

[Feature] quota functions 重構,該系列補丁為 deferred inode inactivation 的準備工作。(PR3154)

[Feature] 空間不足時 reclaim 策略優化,該系列補丁同樣為 deferred inode inactivation 的準備工作。(PR3156)

[Feature] posteof 和 cowblocks 重構,該系列補丁同樣為 deferred inode inactivation 的準備工作。(PR3158)

[Feature] incore inode walk 重構,該系列補丁同樣為 deferred inode inactivation 的準備工作。(PR3159)

[Feature] deferred inode inactivation。(PR3160)

[Bugfix] 修復 CONFIG_FS_DAX 關閉時編譯錯誤。(PR3164)

[Improment] 增加 XFS_IOC_SET_REFLINK_FLAGS 的檢查條件,并導出 xfs_wait_reflink_secondary()。(PR3205)

[Performance] 優化 xfs_log_force() 可能存在的數十 ms 阻塞導致的 reflink 抖動。(PR3273i/PR3306)

2.1.3 ext4

[Bugfix] 回合社區 stable 分支補丁。(PR3141)

2.1.4 io_uring

[Bugfix] 修復 io_uring percpu sqthread 特性,限制僅在同一個進程下多線程之間共享。(PR3127/PR3138)

2.1.5 fuse/virtio-fs

[Bugfix] 修復 statx 系統調用 ENOSYS 錯誤。(PR3118)

[Feature] 支持顯示禁用 export。(PR3166)

[Feature] 支持 resend pending 請求。(PR3264/PR3271)

[Feature] 支持多隊列。(PR3277/PR3278)

[Performance] bg_queue 讀寫分離優化。(PR3352)

2.1.6 misc

[Bugfix] overlayfs:修復 ovl_parse_param() 內存泄露。(PR3115)

[Bugfix] hugetlbfs:修復 hugetlbs_fill_super() 空指針解引用。(PR3126)

[Improvement] block:rq_hang 使用 %px 打印請求。(PR3129/PR3135)

[Improvement] cgroup writeback:限制僅在 cgwb_v1 場景使能 memcg_blkcg_tree 相關操作。(PR3142/PR3144/PR3147)

[Performance] kernfs 全局鎖競爭。(PR3132)

[Bugfix] ceph:修復 encode_cap_msg() use-after-free 問題。(PR3152

[Bugfix] md:修復 rdev->serial 內存泄露。(PR3318)

[Bugfix] ring_buffer:修復 ring_buffer_free_read_page() 中潛在的空指針解引用。(PR3308)

2.2 dsms

[Bugfix] 解決斷電場景數據丟失問題。

[Improvement] 優化 ceph 內存分配器,解決內存碎片化后導致 IO 延遲升高的問題。

更多詳細進展,請參見項目主頁:
https://gitee.com/anolis/dsms

2.3 mdadm & ledmon

Intel VROC 為基于 NVMe 的企業級 RAID 解決方案,同時也支持對 SATA 類 RAID 的監控。該方案依賴 mdadm 和 ledmon 兩個軟件包,因此決策在龍蜥 OS 中獨立選型并維護。

目前基線版本經確定,并在 SIG 中創建倉庫:
mdadm: Manager of Linux Software RAID implemented through Multiple Devices driver.

ledmon: Enclosure LED Utilities

后續由 Intel 的兩位 Maintainer 負責將補丁合入 dev 分支,經過測試后合并到 main 分支,作為龍蜥 OS 的發布包來源。

03?開源會議

SIG 成員 gaoxiang 分享了 Container Plumber Days 和 OSSNA 的參會紀要:

https://openanolis.cn/sig/high-perf-storage/doc/1109666477415585831

相關鏈接:

高性能存儲SIG主頁:

High Performance Storage SIG - OpenAnolis龍蜥操作系統開源社區

注:更多龍蜥 SIG 月度動態可點擊這里查看。

高性能存儲?SIG(Special Interest Group)致力于存儲棧性能挖掘,當前主要聚焦內核 io_uring 技術優化異步 IO 性能,使用持久化內存提升業務單成本性能,容器場景存儲技術優化等課題。高性能存儲 SIG 期望通過社區合作,打造標準的高性能存儲技術軟件棧,推動軟硬件協同發展。

更多龍蜥SIG主頁點擊查看:SIG - OpenAnolis龍蜥操作系統開源社區

—— 完 ——

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45833.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45833.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45833.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

UE5.4新功能 - MotionDesign上手簡介

MotionDesign是UE中集成的運動圖形功能,我們在游戲中經常會見到,例如前方漂浮于空中的若干碎石,當玩家走進時碎石自動吸附合并變成一條路,或者一些裝飾性的物件做隨機運動等等,在引擎沒有集成運動圖形時,這…

網絡爬蟲開發:JavaScript與Python特性的小差異

JavaScript JavaScript具有以下一些主要特點: 動態類型: JavaScript是一種動態類型語言,變量可以存儲任意類型的數據,無需事先聲明變量的類型。事件驅動:JavaScript主要用于處理用戶在瀏覽器中的各種交互事件&#x…

group by 與 distinct去重性能

GROUP BY和DISTINCT在數據庫查詢中都可以用于去重,但它們的性能差異取決于多個因素,包括數據集的大小、數據庫的結構和索引、以及查詢的具體內容。 處理方式: DISTINCT:它會掃描整個數據集,然后刪除重復的記錄&#xf…

機體坐標系和導航坐標系

目錄 機體坐標系(Body Frame)例子:無人機的機體坐標系 導航坐標系(Navigation Frame)例子:地球固定的導航坐標系 具體例子說明機體坐標系描述導航坐標系描述 總結 機體坐標系(Body Frame&#x…

什么是大數據信用?它的作用有哪些?怎么查詢大數據?

在金融行業中,風險管理是至關重要的一環。傳統的信用評估方法主要基于借款人的財務狀況和信用歷史,但這些信息往往無法全面反映借款人的信用狀況。大數據信用的出現為金融風控提供了新的解決方案。 首先,大數據信用可以為金融機構提供更全面的…

jmeter持續學習之---控制器

IF控制器 下面這種寫法jmeter不推薦有性能的問題 jmeter推薦勾選上的這種寫法 使用"Interpret Condition as Variable Expression"工具的性能要好一些 循環控制器 ForEach控制器 與用戶定義的變量或者正則表達式提取器配合使用,循環讀取。用戶定義的變量或者正則…

Vue 接口用FormData() 提交數據

例子: let data { id: 12, name: 測試, list: [{ id: 22, name: "za", age: 12 }] };// 創建 FormData 實例 要使用 FormData 將數據提交給接口,首先需要了解 FormData 是如何工作的。FormData 是一種用于異步上傳數據的表單數據結構&#xf…

C語言-分支與循環(2)

目錄 1、while循環 1.1 if 和 while 的對比 1.2 while 語句的執行流程 6.3 while循環簡單例題 2、for 循環 2.1 語法形式 2.2 for循環與while循環對比 2.3 for循環的執行流程 2.4 for循環的簡單例題 2.5 擴展:for循環的初始化,判斷,…

django學習入門系列之第四點《圖標》

文章目錄 圖標往期回顧 圖標 圖標網站: Font Awesome,一套絕佳的圖標字體庫和CSS框架 (dashgame.com) bootstrap提供的不多 注意,要用框架啟動,但用html啟動的話是用不了的(圖標啟動不了) 如何使用 如果…

DAMA學習筆記(六)-數據安全

1.引言 數據安全包括安全策略和過程的規劃、建立與執行,為數據和信息資產提供正確的身份驗證、授權、訪問和審計。數據安全實踐的目標是根據隱私和保密法規、合同協議和業務要求來保護信息資產。這些要求來自以下幾個方面: 1)利益相關方: 應識別利益相關…

YOLO--置信度(超詳細解讀)

YOLO(You Only Look Once)算法中的置信度(Confidence)是一個關鍵概念,用于評估模型對預測框內存在目標對象的信心程度以及預測框對目標對象位置的準確性。 一、置信度的定義 數值范圍:置信度是一個介于0和…

ES6 對象的擴展(十五)

1. 屬性的簡潔表示(Property Shorthand) 特性:在對象字面量中,如果屬性名和變量名相同,可以省略屬性名,直接使用變量值。 用法:簡化對象字面量的書寫。 const x 1, y 2; const obj { x, y …

vscode 打開遠程bug vscode Failed to parse remote port from server output

vscode 打開遠程bug vscode Failed to parse remote port from server output 原因如圖: 解決:

網絡濾波器、EMI濾波器與EMC濾波器在電子元器件中的分類關系

在電子工程領域,濾波器作為關鍵的電子元器件,廣泛應用于信號處理、電磁兼容性和電磁干擾抑制等方面。本文將詳細介紹網絡濾波器、EMI濾波器和EMC濾波器的基本概念、工作原理及其在電子元器件中的分類關系。 一、網絡濾波器 網絡濾波器是一種通過處理信號…

Laravel與現代前端:Vue.js與React的無縫集成

Laravel與現代前端:Vue.js與React的無縫集成 在現代Web開發中,Laravel作為后端框架的佼佼者,與前端技術如Vue.js和React的結合,能夠創造出功能強大且用戶友好的應用。本文將詳細介紹如何在Laravel項目中集成Vue.js和React&#x…

臉書登錄指南:如何在同一臺設備登錄多個Facebook賬號?

海外社媒營銷人員和跨境賣家現在越來越依賴社交媒體平臺來拓展業務和接觸潛在客戶,尤其是Facebook。然而,在進行臉書登錄時,你可能會問:如何在同一臺設備上登錄多個Facebook賬號,而不違反Facebook的使用條款&#xff1…

Android 性能優化之卡頓優化

文章目錄 Android 性能優化之卡頓優化卡頓檢測TraceView配置缺點 StricktMode配置違規代碼 BlockCanary配置問題代碼缺點 ANRANR原因ANRWatchDog監測解決方案 Android 性能優化之卡頓優化 卡頓檢測 TraceViewStricktModelBlockCanary TraceView 配置 Debug.startMethodTra…

vivado 2019.2/modelsim SE-64 2019.2聯合仿真

參考鏈接 需要修改的地方: 編譯時幾個VHDL的庫會報錯,將language改為verilogfamily只選擇當前板子(artix-7),速度會更快,錯誤率更低compile library path最好選擇vivado安裝路徑下的位置,很久之…

怎么創一個新的vue3項目

創建一個新的Vue 3項目可以通過多種方式,以下是基于Vue CLI(命令行界面)和Vue官方新的腳手架工具create-vue的詳細步驟。 使用Vue CLI創建Vue 3項目 安裝Vue CLI: 確保你已經安裝了Node.js(建議使用LTS版本&#xff…

Python 基礎——元組

1.元組:元組元素不能修改 tuple1 (1, 2, 3, 4, 5, 6) tuple1[2] 3 #該代碼會顯示運行錯誤 2.元組的一些操作 #1. tuple1 (1, 2, 3, 4, 5, 6) tuple2 tuple1[:]#將tuple1復制到tuple2#2. tuple1 (1, 2, 3, 4, 5, 6) tuple1[:4] #輸出結果為(1&am…