互联网上的许多资源包含有关 RAID 块的读/写逻辑的相互矛盾的信息。
该答案包含以下(看似相互矛盾的)信息:
512 KB 块大小并不要求系统每次写入 4 KB 时都写入 512 KB,或者每次应用程序读取 4 KB 时都读取 512 KB 的设备表面。
[当从具有 64 KiB 块大小的 RAID 读取 16 KiB 块时] RAID 将在写入该 4 KiB 文件/16 KiB 块时执行读取/修改/写入操作,因为 RAID 的最小存储单位是 64 KiB。
另一方面,该资源包含以下信息:
例如,如果您有一个 10 KB 的文本文件,且块大小为 256 KB,则该 10 KB 的数据将存储在 256 KB 的块中,其余块将留空。相反,如果使用 16 KB 的块,则存储该 10 KB 文件时浪费的空间要少得多。
我特别有以下问题:
- 当使用无奇偶校验的方案读取/写入小于 RAID 块大小的某些数据单元时,是否需要对整个块进行读取/修改/写入操作,还是仅对修改的部分块进行读取/修改/写入操作?
- 当使用具有奇偶校验的RAID 方案时,这会改变问题 1 的答案吗?
- 正如第二个参考文献中提到的,写入小于 RAID 块的数据单元是否会以某种方式使 RAID 块的其余部分保持空白?这在我看来似乎是不正确的,但我想澄清一下,因为这个资源非常明确地说明了这一点。
- 这些答案是否会根据 RAID 实现(Linux 内核、硬件 RAID 等)而改变?
如果可能的话,提供某种权威参考(一些 RAID 规范、源代码等)就太好了。
提前致谢!