能否詳細(xì)說(shuō)說(shuō)問(wèn)什么Block協(xié)議會(huì)比File協(xié)議快呢? 如果說(shuō)底層的協(xié)議當(dāng)然會(huì)比應(yīng)用層的快這個(gè)原因的話, 那么為什么RAID 3用的Strip就沒(méi)有RAID4用的Block好呢?

答:這個(gè)block,不是Raid里面那種block

block和file,其實(shí)就是數(shù)據(jù)結(jié)構(gòu),協(xié)議。

直接和磁盤(pán)打交道,或者和fs打叫道,利用的數(shù)據(jù)結(jié)構(gòu)和協(xié)議是不一樣的。但是他們的payload很大程度上是一樣的。

只不過(guò)他們的數(shù)據(jù)交互邏輯,交互格式,不太一樣

Linux kernel

一般順序是vfs->mapping layer(filesystem)->generic block layer->IO scheduler layer->block device driver

上層的進(jìn)程只知道vfs,具體的活由mapping layer做,例如一個(gè)文件系統(tǒng)。

具體的文件系統(tǒng)知道generic block layer,具體的活由IO scheduler layer和block device driver做。

IO scheduler是操作系統(tǒng)對(duì)IO的最后調(diào)度的部件,剩下的事情由device driver做,比如生成SCSI指令。

點(diǎn)擊進(jìn)入,參與討論該話題

分享到

多易

相關(guān)推薦