# Hardware vs. Software RAID-0 Performance

## grannyknot

I've been poking around the forums and internet for a few hours, but I haven't really found any solid performance comparison of hardware (I'm thinking 3ware 8000 series) and software (no quasi-hardware intermediaries - pure software) RAID-0 solutions.

This (https://www.3ware.com/kbadmin/attachments/Linux2.6WP_0701.pdf) was helpful, but again there was no comparison to software RAID-0.

I'm rebuilding, a Myth+Asterisk+Storage box, and I would like to find the best solution for turning two 250GB drives into one 500GB drive with good performance.  If it helps, the processor is a 2.6 GHz P4 running on an Asus P4P800 Deluxe with 1GB of RAM.

I have seen the RAID Tests page, but it looks at RAID-5, a very different beast.

Any insight would be appreciated.  I don't mind spending the ~$200 CAD on a 3ware 8006-2LP, but I would like to know that I'm getting some return on the investment.  

Thanks,

Don.

----------

## NeddySeagoon

grannyknot,

There is no simple answer. RAID0 does not impose a huge overhead. Reads and writes are striped and can be overlapped. (Not on primary and secondary IDE devices) With SATA drives my sustained data transfer rate went from  50Mb/sec to 84Mb/sec from one drive to RAID0 pair with kernel.

My SATA controller is on a seperate PCI bus to the PCI slots, so there is no bandwidth contention.

If you use a PCI card, you have at most 133Mb/sec for everything on that bus, that could become your bottle neck rather than CPU load. Check your PCI bus layout with lspci.

```
0000:01:0b.0 RAID bus controller: Silicon Image, 
```

The :01: here indicates PCI bus 01. My A7N8X has 3 PCI buses.  Using all your bus bandwidth is a good thing.

Kernel raid won't do quite what you wanted because the drives are partitioned first and then the partitions contributed to RAID sets. I run a RAID1 boot (grub cannot boot from RAID0) and RAID0 everything else except swap. 

Personnaly, I would spend the $200 on another drive or two and have a 3 or 4 way RAID set.

----------

## Phancy Physicist

I just wanted to check in and let you know what i get. I use software RAID0 on my two sata and i get 130MB/s sustainable through-put. However this is assuming i have enough cpu free to do this. i'm running a AMD64 3500+ so i have more than enough juice. Have a huge mount of RAM is key because if your RAM is big enough the kernel doesn't need the swap and this cuts down on drive accesses = less cpu time needed for RAID. I'm uping mine to 2Gb soon. Unless you are doing something that accesses the drive all the time(like a server) then I don't think you need the hardware. Just my experiance and opinion  :Smile: 

----------

## NeddySeagoon

Phancy Physicist,

Hmm .. maybe my 84Mb/sec would go up if I stopped S@H running while I test. 

I only have a 32bit +3200 XP Athlon though. 

130Mb/sec is almost the PCI theoretical maximum transfer rate. How are your SATA controllers connected?

----------

## grannyknot

Here's the output from lspci:

0000:00:00.0 Host bridge: Intel Corp. 82865G/PE/P DRAM Controller/Host-Hub Interface (rev 02)

0000:00:01.0 PCI bridge: Intel Corp. 82865G/PE/P PCI to AGP Controller (rev 02)

0000:00:1d.0 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #1 (rev 02)

0000:00:1d.1 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #2 (rev 02)

0000:00:1d.2 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #3 (rev 02)

0000:00:1d.3 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI Controller #4 (rev 02)

0000:00:1d.7 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB2 EHCI Controller (rev 02)

0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev c2)

0000:00:1f.0 ISA bridge: Intel Corp. 82801EB/ER (ICH5/ICH5R) LPC Interface Bridge (rev 02)

0000:00:1f.1 IDE interface: Intel Corp. 82801EB/ER (ICH5/ICH5R) IDE Controller (rev 02)

0000:00:1f.2 IDE interface: Intel Corp. 82801EB (ICH5) SATA Controller (rev 02)

0000:00:1f.3 SMBus: Intel Corp. 82801EB/ER (ICH5/ICH5R) SMBus Controller (rev 02)

0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (rev 02)

0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R300 NE [Radeon 9500 Pro]

0000:01:00.1 Display controller: ATI Technologies Inc Radeon R300 [Radeon 9500 Pro] (Secondary)

0000:02:03.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80)

0000:02:04.0 RAID bus controller: VIA Technologies, Inc. VT6410 ATA133 RAID controller (rev 06)

0000:02:05.0 Ethernet controller: 3Com Corporation 3c940 10/100/1000Base-T [Marvell] (rev 12)

0000:02:0a.0 Multimedia video controller: Conexant Winfast TV2000 XP (rev 05)

----------

## NeddySeagoon

grannyknot,

All these devices are on the same PCI bus

```
0000:02:03.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80)

0000:02:04.0 RAID bus controller: VIA Technologies, Inc. VT6410 ATA133 RAID controller (rev 06)

0000:02:05.0 Ethernet controller: 3Com Corporation 3c940 10/100/1000Base-T [Marvell] (rev 12)

0000:02:0a.0 Multimedia video controller: Conexant Winfast TV2000 XP (rev 05)
```

I guess its your PCI expansion slots, since there is a TV card there.

----------

## colo

I did some benchmarks on my drives (Samsung SP1614C, 160GB 8MB Cache SATA non-native/bridged, connected via Intel ICH-5)

```
root@ubuntux:~ # dd if=/dev/sda5 of=/dev/null bs=1M count=1024

1024+0 records in

1024+0 records out

1073741824 bytes transferred in 19.493769 seconds (55081284 bytes/sec)

root@ubuntux:~ # dd if=/dev/md1 of=/dev/null bs=1M count=1024

1024+0 records in

1024+0 records out

1073741824 bytes transferred in 11.246365 seconds (95474567 bytes/sec)
```

sda5 is a part of md1, of course. Maybe this gives you a slight idea about what to expect from SoftRAID0 when it comes to sequential reading.  :Smile: 

----------

## Phancy Physicist

NeddySeagoon,

i have SATA on the north and south bridge of my motherboard. I have them on the south because it is faster.

----------

## NeddySeagoon

Phancy Physicist,

Would you care to  post your lspci ? 

I'm just curious. You say you are running 64bit AMD CPU, in which case you don't have a North bridge in the conventional sense because its built into the CPU.

----------

## moocha

This may be slightly off-topic, but don't forget the availability criterium when evaluating a RAID 0 solution. If your hardware controller goes byebye, so goes your data, unless you can get hold of another card (and 2-3 years down the line that may become a problem if the manufacturer no longer exists, no longer produces that particular model, or provides no upgrade path). Also, you can forget moving the drives into another system that doesn't have the same controller or can't use it for some reason.

By comparison, software RAID will always be around (you can even use the array on opposite-endian machines  :Wink: ). Comes at a cost too, of course (CPU cycles...), but for valuable data the lock-in problem shouldn't be easily discounted.

----------

## drescherjm

There should be very little performance difference between the two setups because raid-0 does not have very much overhead. In my opinion software should have a slight performance advantage and will definitly be more safe to transport between systems. As the above poster said. One of the big problems with hardware setups is that if the controller goes bad you usually need the same type to be able to read your data. It is highly unlikely that a different manufacturer's controller would read the data at all.

----------

## Phancy Physicist

```
charles@Casper charles $ lspci

0000:00:00.0 Host bridge: VIA Technologies, Inc.: Unknown device 0282

0000:00:00.1 Host bridge: VIA Technologies, Inc.: Unknown device 1282

0000:00:00.2 Host bridge: VIA Technologies, Inc.: Unknown device 2282

0000:00:00.3 Host bridge: VIA Technologies, Inc.: Unknown device 3282

0000:00:00.4 Host bridge: VIA Technologies, Inc.: Unknown device 4282

0000:00:00.7 Host bridge: VIA Technologies, Inc.: Unknown device 7282

0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI bridge [K8T800 South]

0000:00:0a.0 Ethernet controller: Marvell Technology Group Ltd. Gigabit Ethernet Controller (rev 13)

0000:00:0c.0 Multimedia audio controller: Creative Labs SB Audigy (rev 04)

0000:00:0c.1 Input device controller: Creative Labs SB Audigy MIDI/Game port (rev 04)

0000:00:0c.2 FireWire (IEEE 1394): Creative Labs SB Audigy FireWire Port (rev 04)

0000:00:0f.0 RAID bus controller: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80)

0000:00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)

0000:00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)

0000:00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)

0000:00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)

0000:00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)

0000:00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)

0000:00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800 South]

0000:00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration

0000:00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map

0000:00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller

0000:00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control

0000:01:00.0 VGA compatible controller: nVidia Corporation NV40 [GeForce 6800 GT] (rev a1)

charles@Casper charles $ 
```

and speed test

```
root@Casper root $ hdparm -Tt /dev/md2

/dev/md2:

 Timing cached reads:   3388 MB in  2.00 seconds = 1693.41 MB/sec

 Timing buffered disk reads:  406 MB in  3.01 seconds = 134.99 MB/sec

root@Casper root $ 

```

I think the controllers for the north bridge are on the cpu

----------

## NeddySeagoon

Phancy Physicist,

Thats some seriouly impressive numbers. 

Does your box usr 64bit and/or 66MHz PCI ?

134Mb/sec is in exxcess of the theoretical max for a 32bit 33MHz PCI bus

----------

## drescherjm

The controller is built into the chipset which is connected to a much faster bus than regular 32 bit 33 MHz PCI. This is one reason why I said that software raid-0 can be faster.

----------

## bendy

drescherjm is quite right.  On modern via chipsets, the sata raid controller is in the southbridge, which is in turn connected to the northbridge by a "v-link" connection.  This is way faster than pci.

This is how you can get 1600+ MB/sec cached transfers.

----------

