[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: RAID-1 to RAID-5 online migration?



Russell Coker wrote:

On Mon, 6 Sep 2004 23:35, Adrian 'Dagurashibanipal' von Bidder <avbidder@fortytwo.ch> wrote:
RAID5 does need more computation than RAID1, so if you have a CPU
bottleneck RAID5 will always be slower (assuming RAID5 is computed on the
main CPU.)

raid5: automatically using best checksumming function: pIII_sse
  pIII_sse  :  1296.000 MB/sec
raid5: using function: pIII_sse (1296.000 MB/sec)
md: raid5 personality registered as nr 4

The above is put in my kernel message log when I load raid5.ko on a P3-650. I am not aware of there having ever been any P3-650 machines that could sustain a 1296MB/s IO load (that requires more than two 64bit 66MHz PCI buses).

Machines that can handle such an IO load have faster CPUs. So for any but the very biggest machines there is no chance of CPU performance being a problem for RAID-5.

For really big machines there is a good performance benefit of using hardware RAID-5, it's not to save CPU but to save IO. RAID-5 operations on the host can double the amount of IO going through the system bus or more (think about the read-modify-write cycles for RAID-5).

Low end hardware RAID solutions have throughput bottlenecks because of computation speed. I believe that the sole reason for this is to improve sales of high-end hardware RAID from the same companies.

For reading, RAID5 is very fast, since access can be spread over many
disks. OTOH each read from RAID5 touches n - 1 disks, so concurrent reads
tend to be not as fast as some may expect them to be. Big caches are
mandatory here!

If you read a single block from RAID-5 it should only hit a single disk.

For RAID 1, you can get quite close to the theoretical max bandwidth: 1 x
disk speed on writing, and 2 x disk speed for reading. (Of course,
available bus bandwidth etc. will limit this, and there is some minimal
management overhead, but RAID1 is quite simple, after all.)

Do you have benchmark results to support this assertion? Last time I tested the performance of software RAID-1 on Linux I was unable to get anywhere near 2x disk speed for writing.
Not to be a stickler but i hope you mean reading

I did tests by reading two files that were 1G in size and the operation took considerably longer than reading a single 1G file from a non-RAID system. If RAID-1 was delivering twice the read throughput then I should be able to read two 1G files concurrently from a RAID-1 in the same time as would be taken to read a single 1G file from a single disk.

also i think that the original poster was assuming that the raid 1 driver would read in stripes as you would a raid 0, its not required to implement raid 1 as far as i know, but it might be a nice thing to add (not sure if it fits nicely in the Linux software raid drivers). You might have to trade some memory usage and cpu to make sure the blocks were put back together again(a fifo buffer 2 stripe sizes big would probably be all it would need) so whether it helps would all come down to where the bottleneck is.



Reply to: