Filesystems and databases try to maintain good performance over time by keeping to a minumum the number of disk seeks required to access the data. They use the block number to indirectly indicate how close the blocks are on the disk. For example, block 47 and 48 are probably right next to each other and block 47 and 2,897,403 are probably really far apart. So utilities like Windows defrag will try to put each individual file into a range of block numbers that are close together.
You’re probably wondering what the heck does this have to do with your question.
Striping is a method of interleaving chunks of multiple blocks. In this case, you have two RAID-5s, one in the first half of each physical drive and one in the second half. If you stripe these RAID-5s, then the logical RAID-50 as seen by the host will have the first few blocks (256 perhaps) on the first RAID-5, the next few on the second RAID-5, the next few on the first RAID-5, etc.
Now you’ve got logical blocks as seen by the host that are close together as numbers, i.e., block 255 and 256 would be assumed to be close together, when in actuality, blocks 255 and 256 could be up to half a disk away from each other. That’s a 7-8ms seek to go from block 255 to 256.
Since the location of the RAID-5s are not known to the host, it has no way to know to avoid these huge seeks when trying to place files on the disk.
Another way to look at this is that if you were to read the disk sequentially, you’d actually see big half-bore seeks occuring every 256 blocks. This would kill performance. Now, I realize you are using a database, and it is mostly random access, but that database will still attempt to locate important pieces close together on the disk via blocks numbers that are close together. Striping two RAID-5s that are on the same disk will make that task impossible.
I hope all that made sense.
P.S. If your database is doing a lot of writes, you shouldn’t be using RAID-5. Each host write will result in four disk IOs. You should really use RAID-10 for databases. And if you do, let the RAID card do both the RAID-1 and RAID-0 piece. Don’t try to put all the RAID-1s on the same disks and have the OS do the RAID-0. That will kill performance just as much as the RAID-50 case I explained above.