您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“ceph sparse read的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“ceph sparse read的示例分析”這篇文章吧。
在解釋ceph的sparse read前,先要解釋一個概念:文件系統的fiemap。
ext4已經支持的一個特性是基于Extent 的文件存儲,簡寫為fiemap.
現代很多文件系統都采用了 extent 替代 block 來管理磁盤。Extent 能有效地減少元數據開銷。
再說ceph 的sparse read
ceph 基于fiemap特性來實現sparse read. 具體舉例來說:
1. client 發出sparse-read 某個object請求.
2. osd 收到請求,傳遞至filestore,它 通過FS_IOC_FIEMAP ioctl判斷底層文件系統是否支持fiemap,還要判斷ceph配置選項是否默認打開fiemap.
3. 如果兩個選項都支持,filestore通過此ioctl進一步獲取到extent map信息,即哪些extent存有真實的數據。
4. filestore 利用extent map 分析出這個object的哪些部分真正在磁盤上分配了空間并存儲了數據, 然后把這些部分讀出并返回給客戶端。
注意:
1. ext4默認支持了fiemap, 但是 ceph 默認是關閉了fiemap選項, 原因是測試發現某系kernel/fs的bug. 所以 所有的client sparse read 在ceph內部都是走的跟一般的read一樣的路徑。
2. sparse read 對大讀有性能提高,但是對小讀,如小于一個block size(4096B)的讀,則沒有性能提升。所以要避免對小讀做sparse read.
以上是“ceph sparse read的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。