這篇文章主要為大家展示了“ceph sparse read的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“ceph sparse read的示例分析”這篇文章吧。
成都創(chuàng)新互聯(lián)長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為霍山企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都網(wǎng)站設(shè)計,霍山網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
在解釋ceph的sparse read前,先要解釋一個概念:文件系統(tǒng)的fiemap。
ext4已經(jīng)支持的一個特性是基于Extent 的文件存儲,簡寫為fiemap.
現(xiàn)代很多文件系統(tǒng)都采用了 extent 替代 block 來管理磁盤。Extent 能有效地減少元數(shù)據(jù)開銷。
再說ceph 的sparse read
ceph 基于fiemap特性來實現(xiàn)sparse read. 具體舉例來說:
1. client 發(fā)出sparse-read 某個object請求.
2. osd 收到請求,傳遞至filestore,它 通過FS_IOC_FIEMAP ioctl判斷底層文件系統(tǒng)是否支持fiemap,還要判斷ceph配置選項是否默認打開fiemap.
3. 如果兩個選項都支持,filestore通過此ioctl進一步獲取到extent map信息,即哪些extent存有真實的數(shù)據(jù)。
4. filestore 利用extent map 分析出這個object的哪些部分真正在磁盤上分配了空間并存儲了數(shù)據(jù), 然后把這些部分讀出并返回給客戶端。
注意:
1. ext4默認支持了fiemap, 但是 ceph 默認是關(guān)閉了fiemap選項, 原因是測試發(fā)現(xiàn)某系kernel/fs的bug. 所以 所有的client sparse read 在ceph內(nèi)部都是走的跟一般的read一樣的路徑。
2. sparse read 對大讀有性能提高,但是對小讀,如小于一個block size(4096B)的讀,則沒有性能提升。所以要避免對小讀做sparse read.
以上是“ceph sparse read的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!