Choosing the right number of hard drives and the correct RAID (redundant array of independent disks) configuration when you design your database server can save you a lot of time. If you make a mistake, changing the RAID configuration and moving the database to correct any problems on a deployed server will cause long downtimes and consume IT resources. In fact, we have known people who have purchased new servers in order to mitigate the downtime of deploying a new disk subsystem.

We Are Just Getting Started

File subsystems for SQL Server is really a "which came first, the chicken or the egg" topic—do we tell you about RAID before we talk about hard drive configuration? Do we talk about the number of physical disks before we explain how the database files are accessed on the disk? Or, should we describe how to reconfigure an old server or how to purchase the best configuration?

We need to start somewhere, and we decided to start with RAID. But stay tuned, this is the beginning of a series of blog posts about SQL Server disk subsystems and RAID. Sign up for the RSS feed so you are notified when our next posts are published.

Software RAID

There are two types of RAID available to the SQL Server administrator: hardware RAID and software RAID. Software RAID is a fancy way of saying Windows RAID, because the only software RAID available is the one that comes with Windows Server 2003 and Windows Server 2008.

When should you use Windows RAID with SQL Server? The answer is never.

Windows RAID is implemented at the file system level (not the disk subsystem level) and involves diverting CPU resources from the server into managing the RAID. With SQL Server, you need to retain this CPU horsepower to handle the queries against the database. Plus, modern servers come with RAID built into the motherboard, or they have inexpensive add-on RAID options. Because of the low price (or no price), there is no financial benefit from not using the better-performing hardware RAID. So why do we mention it? Just in case you were thinking about using it.

Hardware RAID

RAID is the simulation of a single disk over more than one physical disk drive. This simulation can be done in a variety of different ways, called levels. Each level has advantages and drawbacks—let's discuss each as it relates to SQL Server.

RAID level 0.

SQL Server 2008 Books Online says "This level [0] is also known as disk striping. . . . Data is divided into blocks and spread in a fixed order among all disks in an array. RAID 0 improves read and write performance by spreading operations across multiple disks" ("RAID Levels and SQL Server," SQL Server 2008 Books Online, MSDN).

Another way to think about RAID level 0 is that a single write happens on only one disk, and reads can be done asynchronously across all the physical disk heads in the array.

We're going to go out on a limb here and make an assumption: You like your data.

If you like your data and you don't want to lose any because of disk failure, do not use RAID level 0.

RAID level 0 doesn't provide redundancy and doesn't protect against disk failure. One thing that you can take away is that RAID doesn't always mean data protection.

Coming Soon . . .

In our next blog post in this series, we will discuss RAID level 1, level 5, and level 10, which provide data redundancy over multiple drives.