I just wanted to provide a followup on my earlier post. I may not have stated my concern clearly. My concern is that the ICH10R(or Intel RST) didn't appear to take advantage of reads from all four disks in RAID10 and instead was reading only from two of the four.
I booted up Knoppix 6.4.4 and created a RAID10 with far copies... well, the results speak for themselves:
Here's my "untuned" RAID10 built on 10GB partitions of four 7K3000 2TB disks...
root@Microknoppix:~# cat /proc/mdstat
Personalities : [raid10]
md0 : active raid10 sdd1[3] sdc1[2] sdb1[1] sda1[0]
20475904 blocks super 1.2 512K chunks 2 far-copies [4/4] [UUUU]
unused devices: <none>
root@Microknoppix:~# cat /proc/mdstat
Personalities : [raid10]
md0 : active raid10 sdd1[3] sdc1[2] sdb1[1] sda1[0]
20475904 blocks super 1.2 512K chunks 2 far-copies [4/4] [UUUU]
I also created an "untuned" ext4 filesystem on the /dev/md0 device...
root@Microknoppix:~# !mkfs
mkfs.ext4 /dev/md0
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=512 blocks
1281120 inodes, 5118976 blocks
255948 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
157 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Sequential Write Tests (5GB file)...
root@Microknoppix:~# dd if=/dev/zero of=/raid/test2 count=5000000 bs=1024
5000000+0 records in
5000000+0 records out
5120000000 bytes (5.1 GB) copied, 19.2518 s, 266 MB/s
I actually executed the write test and it varied between 266 MB/s and 297 MB/s. Sorry, I didn't capture the text from the runs.
Sequential Read Tests (5GB file)...
root@Microknoppix:~# dd if=/raid/test2 of=/dev/null count=5000000 bs=1024
5000000+0 records in
5000000+0 records out
5120000000 bytes (5.1 GB) copied, 8.79608 s, 582 MB/s
root@Microknoppix:~# dd if=/raid/test2 of=/dev/null count=5000000 bs=1024
5000000+0 records in
5000000+0 records out
5120000000 bytes (5.1 GB) copied, 8.65911 s, 591 MB/s
root@Microknoppix:~# dd if=/raid/test2 of=/dev/null count=5000000 bs=1024
5000000+0 records in
5000000+0 records out
5120000000 bytes (5.1 GB) copied, 8.59371 s, 596 MB/s
I performed these same tests on some older 500GB Seagate 7200.11 disks and had similar results (about half the expected read speed under Intel RST).
In Summary:
Windows7 (ICH10R, Intel RST, RAID10)
seq read speed: 275 MB/s
seq write speed: 280 MB/s
Linux (mdadm, RAID10)
seq read speed: 596MB/s
seq write speed: 297MB/s
It seems pretty clear that Intel RST (or the ICH10R perhaps) likely does not read from all disks (probably reading from only one of each mirrored set) which effectively reduces your potential RAID10 read speeds by 50%.
Now, I would love to think there might be a way to achieve reads from all four disks in RAID10 under Windows 7, but I'm not that optimistic. If anyone knows of a way, please, let me know.
BTW: The BIOS was in AHCI (NOT RAID) mode for the Linux tests.
UPDATE: I confirmed with Intel support that the Intel RST does not support reading from both disks in each mirrored set which confirms why the read speeds are half that of the Linux mdadm RAID10.