引用:
原帖由 asyqm 于 2006-12-30 16:18 发表
那么RAID3 的stripe size是在什么范围呢?假设最大设置为512K(现实中512K已经很大了,一般均为各厂商的最大值),如果某个I/O为非512K的倍数如何解决?请教了。
或者某个I/O的大小不足512K呢?某连续两个I ...
size可调的。
非512K的倍数,这个是不会发生的。正如不能用刀子切开一个夸克么,走路不能移动半个原子的距离一样
磁盘读数据,最小单位就是扇区,512字节,即使有文件占了1字节,那么它也会读取整个扇区。当然文件系统又加了一层,也就是簇。文件占用最小单位是簇,要么1簇,不可能办簇。但是fs代码调用卷管理器api的时候,可以根据文件长度判断占用的扇区数(也可能直接读出整簇,或者N簇,这个得看fs的代码),然后卷api向总线放入lba地址,磁盘读出整个lba块的数据,不可能只读出半个lba块。
rechardluo兄说得一句话很好:做存储是作系统,系统从上到下,每个环节都要了解,不然就是盲人摸象。