How good is Windows 7 software RAID? Is it faster or slower than a cheap hardware controller (aka “fake RAID”)?
This past month I’ve realized the simultaneous need to add more hard drive storage and decrease the probability of losing the data stored within. While I fully realize that redundant hard disks are not a substitute for a backup, I do want to use a RAID array to reduce the likelihood that I have to restore that data from a backup. Also, I plan to put data on that disk that I would be annoyed to lose, but it wouldn’t be the end of the world (i.e. music, movies, etc.).
Disk drives are cheap (1.5TB is currently running around $100), but industrial-grade RAID controllers are not. Being that I’m cheap, have an old (4 years is old, right?) system, and just need a bare-minimum amount of reliability I’m looking for the cheapest way to add a couple of mirrored drives. That basically means that I use a “fake RAID” hardware controller or a solution managed completely by Windows. There are various pros and cons to each, but I’ll tell you up front that Windows 7 software RAID was what I chose because of performance & trust. After the break I’ll get to the details as to why.
There’s plenty of advice around on what type of RAID you should use for your particular application. I recommend this Tom’s Hardware Guide write-up, and this one is also pretty good. In general, hardware RAID is better than both software RAID and so-called “fake RAID” solutions which rely upon a combination of hardware and software. But hardware RAID is expensive and overkill for my needs.
As someone who is not willing to spend the money on a hardware RAID solution, I wanted to determine the performance implications of choosing between the cheap RAID 0 (striping) and RAID 1 (mirroring) options available to me, along with the other advantages/disadvantages of each option. If you really want to get into the pros and cons of the solutions below, check out:
Option 1: Microsoft Windows 7 Software RAID
Windows has built into the OS the ability to RAID disks (since Windows 2000, I believe). The biggest advantages are that it does not require special hardware or drivers as it is completely managed by the Windows OS. This is good because if your motherboard or hard disk controller goes out, you can put those same disks in another Win7 machine and not worry about if the hardware is compatible. Another advantage, if this is important, is that you can RAID at the disk volume level – the entire disk does not need to be dedicated to a RAID (so you can make good use of unmatched disks). I particularly liked that the management of the disks is built into the Windows “Computer Management” management console.
Option 2: Hardware-Software RAID (a.k.a. Fake RAID)
Hardware RAID is exactly what it sounds like – a special hardware controller card manages the disks to provide the striping and/or redundancy. The key advantage of a full, dedicated hardware RAID is that it requires no software or drivers. That is not the case with “fake RAID” hardware cards that use a combination of special hardware and software to manage the disks. Still, hardware-software RAID should provide some performance advantage over full software RAID. In my testing, however, I did not find that to be the case.
Performance Testing Methodology & Setup
System: ASUS P4P800-E Deluxe Motherboard (Socket 478, Intel 865PE),Intel Pentium 4 3.0 Prescott 3.0GHz 1MB L2 Cache, 4 GB RAM, Windows 7 Ultimate
Drives: Two Seagate Barracuda 7200.11 ST31500341AS 1.5TB 7200 RPM 32MB Cache SATA
I used IOMeter (http://www.iometer.org/) to test each configuration using the same configuration. My IOMeter configuration file is located here. I ran 4 sets of tests; sequential read, sequential write, 70% sequential read + 30% sequential write, and 70% random read + 30% random write. For each test, 1GB of data was read or written in 256KB chunks. Each test was run twice to gain some (limited) measure of trust in the results.
Each test was run on two different hard disk controllers that support RAID: the Intel ICH5R SATA Controller RAID that is built into my motherboard and a SIIG SATA 4-channel RAID PCI Card – (Silicon Image Sil3114r5 Chipset) – which I purchased for testing. The SIIG PCI controller was an absolute piece of crap. The included management software was buggy as hell on Windows 7, and the performance was atrocious – roughly 50% slower than the Intel controller in almost all the tests. This is to be expected, since it is a PCI card and doesn’t have the advantage of being as tightly integrated into the processor’s southbridge. Plus Windows wouldn’t build a RAID 1 on it so that configuration couldn’t be tested. For that reason, I’m not showing the graphs here but they’re in the attached Excel file for the curious.
Windows RAID performed just as well, if not better than, the hardware controller RAIDs tested and Windows always incurred the lowest CPU utilization. The results are a mixed bag, where there were some cases where Windows did somewhat better than the Intel RAID and others where the HW solution did slightly better. The key take away from the performance results are that the speeds were all within a few MBps of each other, which I consider to be in the noise, while Windows used less CPU consistently.
Sequential Read Tests
Sequential Write Tests
Sequential Read/Write Tests
Random Read/Write Tests
Supposedly the main advantage of a fake RAID is that is should perform better than full software RAID, both in the disk transfer rates as well as CPU load. And that may be the case for some configurations, but I did not find that to be the case in my testing. Windows performed just as well as the “fake RAID” with a slightly lower CPU load. Given that I’m more comfortable with the Windows management consoles than the software provided by Intel to manage their RAID, I chose to mirror my drives via Windows RAID 1.
I don’t claim that your results will be the same as mine – I ran these tests because I was curious. If you disagree with the results, or have a different opinion, that’s cool. I’m not here to debate you. I just wanted to share my findings in the hopes that it will be useful for someone else in a similar situation. Please feel to comment if you get a different result or have experience. Enjoy!