We've talked about RAID, and we've talked about the number of drives you need. Now, let's talk about how to determine the right size drives for you. Getting the right size drives in your new server purchase can optimize the cost of the new server and give you better performance.

Hard drives have a physical limitation, so any practical application of a SQL Server file subsystem needs to address the fact that disk drives can only be so big. Fortunately, the drives available to us in 4U high servers have 7,500 RPM and 15,000 RPM speeds and come in sizes of 160 GB, 250 GB, 500 GB, and 1 TB. Why is this fortunate? Because two 500 GB drives can create a RAID level 1 array with a total size of 500 GB—enough to hold a 500 GB data file (roughly a 500 GB database). This is a very large SQL Server database—enough to hold the data of most medium sized businesses using ENOVIA V6.

Here is how we suggest that you size your hard drives:

1. Determine what the maximum size of your data file for ENOVIA V6 will be over the next four years. The Dassault Systèmes installation guide for ENOVIA V6 can help you determine this maximum size.

2. When you buy your new server, buy two hard drives that are equal to or bigger than the maximum size.

3. Configure RAID on the server by combing the two hard drives into a RAID level 1 array. RAID level 1 will give you data protection upon hard drive failure.

4. Format the logical drive that is created by the RAID level 1 array of the two physical drives. Then, copy the SQL Server data files (.mdf) for ENOVIA V6 to that drive.

5. Add nothing else to that drive, and never shrink the databases on that drive.

The data file array will be the largest drive array that you have in the server. So now, you need to size all the other drives on the server. Here is how you'll do that:

1. Divide the number of drive slots left in half—you are going to end up with matching RAID level 1 array pairs of drives. If you are buying a new server, try not to purchase an uneven number of drives.

2. Use this post to determine what goes where on each remaining pair of drives.

Note: In each array, the drives need to be of equal size for the RAID level 1 to work correctly. However, over all the arrays, the drives can be different sizes, creating differently sized arrays. With this in mind, you can choose a smaller array for the Windows installation. In fact, 160 GB is plenty large if the installation is on the logical drive by itself. The same goes for tempdb; on a logical drive by itself, 160 GB is large enough. If you consistently keep the transaction logs backed up, the .ldf files will not grow beyond 160 GB.

Sizing Larger Databases

If your database (.mdf) files are going to be larger than the maximum hard drive size that you can buy for your server, you can divide the .mdf files between two RAID level 1 arrays (four physical drives). The way to do this is to set up two pairs of RAID level 1 arrays and then format them. You have two logical drives, for example, drive E and drive D. For each SQL Server filegroup in the ENOVIA V6 database, make sure that there are two .mdf files, one on each logical drive. SQL Server will divide the extents (internal data segments) between the two .mdf files, dividing the database. This is very similar to a RAID level 1 + 0. But, the RAID level 0 is done at the SQL Server level, which applies a more logical division to the data than the hardware RAID level 0, for greater performance. Another advantage is that you can add the second RAID level 1 array later as your database grows. With RAID level 1 + 0, you have to plan ahead. You have to configure RAID and format the logical drive before you place the initial data file (.mdf).

It is important to remember that you want to size your drives around the size of your data and try to give yourself the maximum number of physical read/write heads for performance. In an upcoming post, we'll cover what type of drives to use (SCSI or SATA) and how to determine what drive speed is fast enough for you.


Wayne Berry is a computer programmer and serial entrepreneur with a passion for dynamic web sites running on SQL Server. When not blogging for MSDN you can find him blogging for Project 31-A. http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/ {6230289B-5BEE-409e-932A-2F01FA407A92}