Raid 5 performance?

krelkor

Weaksauce
Joined
Dec 9, 2006
Messages
89
I want to impliment a software raid 5 array for my linux server box thats going to be serving a media frontend like linuxMCE. I was going to use mdadm to create the raid on 3 320gb 7200.10 seagate drives.

I know that reading is not really a problem, but ive heard that writing to the array can be a huge problem when its a true software based raid. Now, the server will only really be written to by a local bittorrent client i want to be running on it 24/7, and when i move some digital photos from my desktop and put them into longterm storage on the raid array. The network link will be a 10/100 connection for the meantime, with the migration to 100/1000 in a few months.

So, although software raid 5 takes a writing performance hit, is it going to bottleneck my entire plan? or will the Ethernet connection be the bottleneck.
 
Now, the server will only really be written to by a local bittorrent client i want to be running on it 24/7, and when i move some digital photos from my desktop and put them into longterm storage on the raid array. The network link will be a 10/100 connection for the meantime, with the migration to 100/1000 in a few months.

From what I remember reading on here, the write performance of a linux-software RAID-5 array is about equal to a single disk, when it comes to sustained transfers. That should give you a starting point to figure out if backing up will be limited.

I do not know how fast your internet connection is, but I would be surprised if a single bittorrent client will be limited by the array, especially if you have a decent amount of RAM in that machine.
 
thanks for the reply.

i only have 6Mbs connection right now, although i may be able to move to a 15Mbs connection soon. even so, i doubt it that my connection would surpass the drives speed.

If it is only equal to a single disk im not going to be worried, the speed of that is fine, and is below that of a network connection.



Since software raid 5 requires the CPU to compute the parity data on each write, will having a faster CPU help me increase write times? or is just the nature of the architecture which makes software raid 5 slow. I planned on undervolting an athlon 3000+ and underclocking it so i could attempt to cool it passive. how much would that affect my raid performance
 
Since software raid 5 requires the CPU to compute the parity data on each write, will having a faster CPU help me increase write times?

IIRC unhappy_mage did some benchmarks that showed a PIII-733 being fast enough for most consumer level RAID-5 arrays in terms of raw XOR calculation speed. So a faster CPU is unlikely to gain you anything.

or is just the nature of the architecture which makes software raid 5 slow. I planned on undervolting an athlon 3000+ and underclocking it so i could attempt to cool it passive. how much would that affect my raid performance
RAID-5 has some architectural limitations that hamper its random small write performance. If you write a small piece of data, the system needs to read it back, then compute the parity and rewrite the parity block. It is possible to mitigate this with an intelligent caching algorithm, i.e. doing writes to the cache and flushing that when `idle', however I doubt that this can be implemented without hardware assistance.
 
I have a software RAID5 of four older Maxtor disks that writes close to 100 MB/sec. The RAID5 kernel thread eats between 7 and 10 percent of one processor while doing it (Core2Duo 6400). The performance is close to what I would expect of three of those drives in RAID0, so it is actually very good. The read speed tops 140MB/sec at the start of the RAID volume. Needless to say, the array is never the bottleneck during gigabit network transfers.
 
i only have 6Mbs connection right now, although i may be able to move to a 15Mbs connection soon. even so, i doubt it that my connection would surpass the drives speed.
Speaking as someone with 100 mbit internet, a Raptor keeps up with it just fine doing BitTorrent transfers. A 7200.10 lags sometimes due to the amount of seeking done with BT.
Since software raid 5 requires the CPU to compute the parity data on each write, will having a faster CPU help me increase write times? or is just the nature of the architecture which makes software raid 5 slow. I planned on undervolting an athlon 3000+ and underclocking it so i could attempt to cool it passive. how much would that affect my raid performance
A 3000+ should be plenty. What network connection are you using? What's iperf show as its transfer rate?
IIRC unhappy_mage did some benchmarks that showed a PIII-733 being fast enough for most consumer level RAID-5 arrays in terms of raw XOR calculation speed. So a faster CPU is unlikely to gain you anything.
I showed 50 MB/s sequential read/write transfers, which I believe were limited by the driver for the controller I was using. But 50 MB/s is enough to stream ten Blu-Ray disks at once... more than enough for most home uses.
 
im just using a standard 10/100 connection right now throughout the house. using a DD-WRT flashed wrt54gl. However, ill probably end up getting a gigabit switch in the future.

if your raid 5 can do 50MB/s write, that is well above what my current infrastructure can handle. Id be worried about moving to 10/100/1000 since the theoretical limit is 125MB/s and your tested raid 5 write speed is 1/2 that.


hmmmmmmm
 
if your raid 5 can do 50MB/s write, that is well above what my current infrastructure can handle. Id be worried about moving to 10/100/1000 since the theoretical limit is 125MB/s and your tested raid 5 write speed is 1/2 that.

I don't think you'll have a problem. I was using a controller that had some pretty severe issues under Linux (namely, data corruption and no DMA!) and still managed to get 50 MB/s out of it. With DMA on (which your controller will almost certainly support) it'd be much faster. As Bones points out, 100 MB/s is doable easily, with only four disks.

What controller(s) would your disks be on? What makes you think that 125 MB/s is something you'd be able to use?
 
im actually browsing for a mid-level motherboard right now, i do not plan on having more than 4 drives in the raid array. if the time comes for me to upgrade space ill just swap in larger drives.

ill most likely be using linux software raid.
 
im actually browsing for a mid-level motherboard right now, i do not plan on having more than 4 drives in the raid array. if the time comes for me to upgrade space ill just swap in larger drives.

ill most likely be using linux software raid.

If it helps any, my four-disk Linux-software RAID-5 rebuilds at 80MiB/s at the beginning and 50MiB/s at the end. I have WD5000YS drives.
 
thanks! that seems like a decent speed for writing for sure.

now i just need to find a decent motherboard
 
Hardware: Intel DG965WHMKR with a Celeron 420 CPU
OS: Debian (Etch)

Tested with bonnie++

4x WD3200SD on Silicon Image 3114 card:
Code:
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
files            2G 31067  76 40275   8 24953   7 35012  84 77573  15 229.0   1
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                100 59150  98 +++++ +++ 89488  98 54411  88 +++++ +++ 85404 100

4x WD2500KS on onboard ICH8R controller:
Code:
Version  1.03       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
files            2G 35936  86 78550  16 42373  11 37300  89 138732  25 264.4   0
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                100   488  98 +++++ +++ 151922  99   510  98 +++++ +++  1414  92
 
Back
Top