问:iSCSI所用的Block协议中的Block是否是和RAID概念中所说的Strip size一个概念啊? 就是可以自行设置数据块大小的.
能否详细说说问什么Block协议会比File协议快呢? 如果说底层的协议当然会比应用层的快这个原因的话, 那么为什么RAID 3用的Strip就没有RAID4用的Block好呢?
答:这个block,不是Raid里面那种block
block和file,其实就是数据结构,协议。
直接和磁盘打交道,或者和fs打叫道,利用的数据结构和协议是不一样的。但是他们的payload很大程度上是一样的。
只不过他们的数据交互逻辑,交互格式,不太一样
Linux kernel
一般顺序是vfs->mapping layer(filesystem)->generic block layer->IO scheduler layer->block device driver
上层的进程只知道vfs,具体的活由mapping layer做,例如一个文件系统。
具体的文件系统知道generic block layer,具体的活由IO scheduler layer和block device driver做。
IO scheduler是操作系统对IO的最后调度的部件,剩下的事情由device driver做,比如生成SCSI指令。