If ever there was a black art in the world of IT, RAID certainly fits the bill. In this document, I detail some RAID performance issues and describe how to maximize Vista's performance when using RAID. I also do some real-world testing to see just exactly what you can expect when implementing RAID on a desktop PC. The results I find and the conclusions I make may surprise you.
I have been interested in RAID for several years now. It was late summer 2006 when I purchased two 250GB Maxtor SATA drives to be used in a RAID array. I have since learned from real-world experience the pros and cons of RAID 0, RAID 1, RAID 5, and Intel® Matrix RAID.
I read with interest the written banter between George Ou and Robin Harris over at CNET in the summer of 2007. They were debating the data redundancy merits of RAID on desktop PCs. I want to look at the RAID issue from a different angle — using RAID primarily for speed and not data redundancy.
I will be discussing RAID and Windows Vista on a desktop PC, though the concepts apply to all versions of Windows from Windows 2000 on (for the purists out there — NT 4.0 Workstation supports RAID 0). The RAID capabilities discussed in this article pertain specifically to Intel® Matrix RAID.
If you decide that RAID belongs on your desktop PC, then the most important considerations are which RAID level or levels to implement and which RAID level is best for the operating system. Exactly how you implement RAID will have a big impact on the final performance of the RAID array and Windows Vista.
I won't go into RAID basics in this blog post, but if you want more information about RAID, please read "What Is RAID? Some RAID Basics."
Note: I have taken great care to verify the accuracy of the information in this article, but RAID is complicated. If you find an error, please report it in the forum.
This is the first of a two-part series. This blog post is also available in PDF format in a free TechRepublic download.
The need for speed
What is the single best way to improve your Windows Vista systems performance? If you have one GB of system memory, then the answer would be to add more memory. If, however, you already have two or more gigabytes of system memory, then the answer is to tackle the next likely bottleneck in your system. And that bottleneck is your hard disk drive.
You could go with a 10,000 RPM hard disk drive like the Western Digital VelociRaptor or a Solid-State Drive (SSD). Both offer faster performance — at the price of lower capacity and higher cost. There is another option thanks to the wide availability of motherboards supporting Intel Matrix RAID. Intel Matrix RAID offers improved performance and the option of data redundancy as a bonus. In case you were wondering, you can use 10,000 RPM drives and SSDs in a RAID array with the caveat that, as of the fall of 2009, SSDs can be problematic and very expensive.
I have read information on the Internet that claims that a two-drive RAID 0 volume is nearly twice as fast as a single drive. I have also read that the performance benefits of RAID 0 striping are a myth. I wanted to do some testing to get some real-world results. The tests were run with and without volume write-back cache enabled so let me take a moment to explain what volume write-back cache is and how it can improve RAID performance before we get to the test results.
Volume write-back cache
One feature of Intel Matrix RAID that can improve performance is volume write-back cache (VWBC). Don't confuse volume write-back cache with hard drive data cache (see definition below).
Volume write-back cache uses system memory in a similar way that disk cache is used on a hard drive. Data throughput is improved by temporarily storing frequently used data sectors in system memory. Volume write-back cache can improve write speeds, especially on a RAID 5 array. It can, however, lead to data loss or corruption due to an improper shutdown of the system.
It is best to have a good UPS if you want to turn volume write-back cache on for any RAID level with data fault tolerance. If your computer is connected to a UPS and a power outage occurs, VWBC is automatically and temporarily disabled.Volume write-back cache can be disabled or enabled for each RAID volume (Figure A).
Right-click the volume and then click Enable Volume Write-Back Cache in the Intel Matrix Storage Manager Console to turn on volume write-back cache.
Intel Matrix RAID also uses a coalescer that combines write requests. The coalescer is enabled by default and cannot be turned off.
Performance testing procedures
The tables below show the percentage gains or losses in performance for four different RAID levels as compared to a single drive.
- Table A shows the performance gains or losses with volume write-back cache disabled.
- Table B shows the same tests with volume write-back cache enabled.
- Table C shows the changes in performance, positive or negative, when volume write-back cache is enabled.
The tests were done with Windows Vista Ultimate x64 SP2 running on a single drive, a two-drive RAID 0 volume, a two-drive RAID 1 volume, a three-drive RAID 0 volume, and a three-drive RAID 5 volume. Five different system utilities were run in seven different tests using an application I wrote to launch and time each process. Each system utility reads from and writes to files on the RAID level being tested.
Stripe sizes of 128KB for RAID 0 and 64KB for RAID 5 were used. The times recorded for the single drive test are used as a baseline to calculate the percentage gains or losses.
Each Vista installation included the following applications — Intel Matrix Storage Manager, avast! Anti-virus and definition updates through 5-21-2009, the Windows Automated Installation Kit and my Script Builder and Timer app. The drivers and control panels were installed for the nVIDIA graphics card and the Realtek on-board HD audio. Drivers were installed for the monitor.
All tests were performed on the following system:
- Foxconn x48 ICH9R BlackOps motherboard
- Intel Core 2 Quad Q9650 3.0GHz CPU
- 2 x 1GB Corsair TWIN3X2048-1333C9 1333MHz DIMMs
- 3 x Samsung Spinpoint F1 HD753LJ 750GB SATA II 7200 RPM 32MB hard drives
- CORSAIR CMPSU-400CX 400 Watt power supply
- Samsung SH-S202G PATA WriteMaster 20X DVD burner
- eVGA 256-P2-N549-TR Geforce 7600GS 256MB GDDR2 PCI Express x16 video card
Times will vary widely from system to system. Use the times provided in the tables as a guide to compare relative times between different RAID levels.
Percentage gains or losses for four RAID levels as compared to a single drive. Volume write-back cache disabled.
Percentage gains or losses for four RAID levels as compared to a single drive. Volume write-back cache enabled.Conclusions
- All tasks run faster on a RAID 0 volume.
- Performance gains exceeding 10% are typical for RAID 0.
- Performance losses exceeding 10% are possible for RAID 1 and RAID 5.
Percentage gains or losses when turning on volume write-back cache.
Turning on volume write-back cache should, in theory, improve performance. Table C shows poorer performance for some processes except for those running on RAID 5. Don't be misled by the cells for RAID 5; enabling VWBC did improve performance of the RAID 5 volume, but Table B shows that four of the seven test processes still took longer to perform than on a single drive.Conclusions
- Using volume write-back cache on a RAID 0 volume can actually decrease performance.
- Volume write-back cache can have a significant positive impact on performance for RAID 1.
- Volume write-back cache has the most significant positive impact on performance for RAID 5.
- Use volume write-back cache with care. An improper shutdown is more likely to cause data corruption, and volume write-back cache can cause poorer performance.
Please note that the mix of tasks that you perform on a daily basis will determine your performance gains or losses. The imagex test results are a good combination of read/write requests and intensive CPU usage. The xcopy and oscdimg test results are best to use if you do a lot of read/write processing. The format test results provide a good expectation of the performance gains or losses you should see for tasks that do a lot of write-only requests to the RAID volume. If you do a lot of read-only tasks, place more weight on the results from the findstr test.
I performed four series of tests. During the first series of tests I measured the Vista Ultimate X64 SP2 installation and startup times. I found that installation times were a surprisingly consistent 24 minutes for all but RAID 5. Installing Vista to a RAID 5 volume took 31 minutes. The differences in startup times, from power on to clock showing on desktop, were negligible for all RAID levels.
Best stripe size for performance
Stripe size can have an impact on performance. The best stripe size for performance is typically smaller stripe sizes when working with large files. Desktop PC users perform a wide range of task, and those tasks can change over time so there really is no best stripe size.
The problem in choosing the optimal stripe size is that the stripe size is set when the RAID volume is created and cannot be changed. Unless you have a lot of spare time on your hands, there is no easy way to experiment with different stripe sizes.
The best option for desktop use is to simply accept the default stripe choices. For RAID 0 the default is 128KB and for RAID 5 the default value is 64KB.
RAID 1 does not use striping so you won't have to set a stripe size.
Other factors that influence performance
There are a number of technologies that have been developed to improve data throughput to and from disk drives. As engineers sometimes want to do, they have used an alphabet soup of acronyms to name these technologies.
- S.M.A.R.T.: S.M.A.R.T. stands for Self-Monitoring, Analysis and Reporting Technology. It is used on hard drives to report the drive health and status. Any data errors that occur on a hard drive with S.M.A.R.T. are stored and reported by utilities that can read the S.M.A.R.T. information. When running Intel Matrix RAID, the S.M.A.R.T. information for RAID array member drives is unavailable to the OS or utilities that can read the S.M.A.R.T. information. The Intel Matrix RAID controller, however, can and does read the S.M.A.R.T. data. If a S.M.A.R.T. error event is reported to the controller, the user will be notified that a S.M.A.R.T. event has occurred.
- Hard Disk Buffer or Cache: Hard drives have on-board memory, typically 8MB to 32MB that is used to cache data as it is written to the disk. This memory buffer improves data throughput but can cause data corruption if a BSOD or improper shutdown occurs before the data can be flushed from the memory and written to the disk (Figure B).
Right-click on the RAID array volume in the Device Manager under Disk Drives and select Properties and the Policies tab to disable or enable hard disk write caching. The write caching will be enabled or disabled for all RAID array member drives.
- NCQ: NCQ or Native Command Queuing improves data throughput by reordering up to 32 read/write requests to the drive. While transparent to and independent from the RAID controller, I include NCQ here because it can improve overall RAID performance (Figure C).
The Intel Matrix Storage Manager Console showing Native Command Queuing Support and Hard Drive Data Cache Enabled with statuses of Yes or enabled.
- TLER, ERC, and CCTL: TLER — Time-Limited Error Recovery, Western Digital; ERC — Error Recovery Control, Seagate; and CCTL — Command Completion Time Limit, Samsung and Hitachi
TLER, ERC, and CCTL allow for better data error handling between the disk drive and the RAID controller. Turning this feature on allows a drive to complete the data error recovery process before the RAID controller can drop it from the RAID array.
Seagate's ERC is available only on the Barracuda ES and ES.2 SATA enterprise drives.
While this technology can be beneficial on a hard drive running in a server, its merits on a desktop PC are questionable. It is not necessary when running Intel Matrix RAID since a member drive will not be dropped from the array if a S.M.A.R.T. event occurs.
Which RAID level is best for Windows Vista?
The operating system is at the heart of every activity performed on a PC. Which RAID level you choose to install the OS on can have a significant impact on system performance.
If you are running Windows Vista and you pay any attention at all to the LED showing disk activity you will know that the disk drives are often busy when the system is idle. Ideally you want all that background disk activity to complete as quickly as possible if only to reduce the amount of work the member drives have to perform.
Windows Vista on RAID 0
Clearly, RAID 0 is the right place for Windows Vista if you are looking for maximum performance, but what about a drive failure? Isn't it better to install Windows on a RAID 1 volume where the data wouldn't be lost when a drive fails?When you get right down to it, there is not much data in a typical Windows installation that you cannot easily replace or reconfigure. There is a relatively short list (Table D) of what will be lost if a Windows reinstall is necessary due to a drive failure.
|E-mails you might receive in Windows Mail or your e-mail reader of choice||E-mails can be routinely exported to a RAID 1 volume. You should already have a standard backup routine. That shouldn't change if you implement RAID. Copies of e-mails should exist as part of a routine backup plan.|
|Downloaded files, images, videos, music, etc. that may have been saved to a personal user folder||Downloaded files, pictures, or any other user specific data should also exist on the backup. You can change the destination folder for applications that save files to the user's default folders or you can move the downloaded files, pictures, etc. to the RAID 1 volume after the download completes.|
|Unique and important data collected and stored by an application||Most applications can be installed on a RAID 0 volume. You can change the destination folder for applications that store important data or you can install these applications on a RAID 1 volume.|
|Favorites or bookmarks you might have saved in your browser||Bookmarks and favorites can be occasionally exported to a file on a RAID 1 volume and will exist on the backup.|
|Customized Windows settings||Customized Windows settings can be restored fairly quickly.|
|Drivers and updates||Drivers and updates can be easily downloaded and installed.|
Personal information, Windows updates, and customizations will be lost when running Vista on a RAID 0 volume and a drive fails and what you can do to prevent data loss.
Thankfully, hard drive failures are not very common. You will likely have to reinstall Windows at least once before you experience the joys of a drive failure — and that is the perfect time to find out just how good your backups really are.
If you do some planning in advance and are disciplined with your backups, you can successfully run Windows Vista on a RAID 0 volume without personal data loss.
Windows Vista on RAID 1
Intel recommends this solution. Roger Bradford from Intel has this to say:
"Our position on RAID 1 is around data protection and minimizing downtime for business environments and mainstream consumers who may not be willing to incur the downtime associated with a HDD failure and may not have the expertise or resources on hand to quickly get their systems back up and running. ... Ultimately we enable choice."
If you choose to install Windows on a RAID 1 volume you will have to accept slightly slower response times than a single drive. The biggest advantage of RAID 1 is that Windows Vista will still load after a single member drive failure.
However, if you want maximum performance, don't put the operating system on a RAID 1 volume.
Windows Vista on RAID 5
Windows Vista on a RAID 5 volume is a bad idea, especially if you are looking for improved performance.
I originally set out to write some scathing words about the use of RAID 5 on a desktop. After doing the failure testing and discovering that most recovery events require much less time than the time for a full rebuild, I have moderated my opinion a bit. I still don't think RAID 5 on a desktop PC is a good idea, but there are a few desktop users that can benefit from RAID 5 — if they implement both RAID 0 and RAID 5, put the OS on the RAID 0 volume, and treat their new array with a little extra tender loving care. For example, treat your RAID 5 volume to a new UPS.
Roger Bradford recommends RAID 5 for the home multimedia center. "The HTPC environment is a good fit for RAID 5 in the desktop as they crave large amounts of storage and data protection."
For a full recounting of my RAID 5 misadventures and more information about why RAID 5 might be a bad idea on a desktop PC, please read "RAID 5 on a Desktop Computer Is Not Such a Good Idea!"
Windows Vista on Intel Matrix RAID
Almost everyone has important data that they can't afford to lose. The Intel Matrix RAID solution allows two RAID volumes on only two drives per RAID array. For best performance you should consider creating two RAID volumes, a striped RAID 0 volume for the OS and apps, and a mirrored RAID 1 volume for all your important data, e-mails, photos, music, documents, etc. A RAID 1 volume is the perfect complement to a RAID 0 volume.
The RAID levels performance scorecardIn summary, I have scored the four RAID levels based on performance in the scorecard shown in Table E.
Rankings from 1 (best) to 5 (worst) for the performance of the four RAID levels and a single drive with volume write-back cache disabled and volume write-back cache enabled.
The best explanation of the poor rankings for RAID 1 and RAID 5 is that data redundancy has a price, and that price is poor performance.
In the second part of this series, I discuss what happens to your RAID array when things go wrong and how this can have a big impact on performance.
I want to thank Roger Bradford and Intel for their help and Intel Matrix RAID expertise and my parents for the gift that made the purchase of three new hard drives and RAID 5 possible.
TechRepublic's Windows Vista and Windows 7 Report newsletter, delivered every Friday, offers tips, news, and scuttlebutt on Vista and Windows 7, including a look at new features in the latest version of the Windows OS. Automatically sign up today!
Alan Norton began using PCs in 1981, when they were called microcomputers. He has worked at companies like Hughes Aircraft and CSC, where he developed client/server-based applications. Alan is currently semi-retired and starting a new career as a writer for TechRepublic.