为什么 EMCSymmetrix 的RAID5是(3+1)或(7+1)?为什么要做成不可调节的呢?
根据Symmetrix白皮书提供的有限信息(Symmetrix RAID5 的track size 是64KB),我推论如下,欢迎讨论:
EMC Symmetrix 是企业级 存储,主要用于数据中心的大型数据库、数据仓库等应用。
对于 OracleASM,I/O request size 在64KB和1MB之间可调,我认为Symmetrix 在Direct Matrix架构下,I/O 数据块大小(I/O request size)是256KB或者512KB时性能最好。
[注: 对于主机来说,把Parity track 去掉,I/O request size (主机I/O数据块本身的大小)是192KB或者448KB。对于Oracle 数据库,I/O request size = db_block_size x MBRC;Oracle db_block_size默认8KB,192KB的I/O块对应MBRC(db_file_multiblock_read_count)是24。]

这 样在RAID5条带化(Stripping)时,因为Symmetrix RAID5 的track size(或叫Strip size) 是64KB,256KB的I/O数据块被分割(Strip)成4个track(3个数据track,1个Parity track)时刚好在同一个Track层,只需一次Parity计算,也就是(3+1)需要4个物理盘或hypervolume.
为什么(4+1)、(5+1)不行呢?因为如果那样,就会有256KB的I/O Block被分割到不同的Track 层,至少需要2次Parity 计算,性能就会比(3+1)低。如下图所示:
同样,512KB的I/O Block 需要被分割成8个track,也就是(7+1),需要8个物理盘或hypervolume。同一个Symmetrix系统里,RAID5 (3+1)和(7+1)不能共存。
总之,I/O request size 和RAID5 模式是根据实测性能的一个经验组合。
以上纯属我个人的推测,欢迎讨论。