Go Premium for a chance to win a PS4. Enter to Win


Recommended setup for 14 drive SQL server

Posted on 2010-11-10
Medium Priority
Last Modified: 2012-05-10
There are a ton of best practices out there for setting up database servers. We have 14 drive bays on a new server we ordered. We're trying to determine the best setup for the drives. All are 15K SAS drives. The server has 2 quad core CPUs with 2 threads per core (16 total threads). The server is far heavier on the write than on the read for the database. Basically customers are writing data to it 24/7 with heavier loads at night. They do pull data all the time but not nearly as much. However our database does lots of lookups to determine if it should write more data (it does dedup) or if it can use data it already has.

We planned on putting the OS (including page file) on a RAID 1 set (2 drives). That leaves 12 left. Here are some options I thought of:

RAID 1 set for OS/pagefile
RAID 1 set for tempdb
RAID 10 set (4 drives) for transaction logs
RAID 10 set (6 drives) for database

RAID 1 set for OS/pagefile
RAID 1 set for 1st tempd file
RAID 1 set for 2nd tempdb file
RAID 1 set for transaction logs
RAID 10 set for database (6 disks)

RAID 1 set for OS/pagefile
RAID 1 set for 1st tempd file
RAID 1 set for 2nd tempdb file
RAID 1 set for 3rd tempdb file
RAID 1 set for 4th tempdb file
RAID 10 set for database and transaction logs (4 disks)
Question by:MrVault
  • 6
  • 3
LVL 42

Assisted Solution

kevinhsieh earned 800 total points
ID: 34103878
That's a lot of spindles. There is probably no way to determine the best way without just trying it with your workload. Have you considered SSD? It may be have similar cost to 14 15K SAS drives, and the performance will be better.

Author Comment

ID: 34103970
can you expand regarding SSD? are they really the same cost? an overview or link would be great regarding SQL.

also do you know if a modern RAID controller card's performance is affected by RAID stripes that span multiple channels?

So if Channel 1 has 2 drives (RAID 1 set) and then another 2 drives (half of a raid 10 set) and then the next channel on the card has 2 drives (2nd half of RAID 10 set), is that a significant degredation compared to the first channel only having 2 drives and putting all 4 drives in the RAID 10 set on the second channel?

LVL 42

Assisted Solution

kevinhsieh earned 800 total points
ID: 34105692
You didn't say how big your SAS drives are, but my guess if that you are looking at $2400-8000 for the hard drives. You get more capacity from hard drives, but if you need performance more than space, SSD really is the way to go.
NewEgg has OCZ Z-Drive R2 M84 OCZSSDPX-ZD2M84512G PCI-E 512GB PCI Express MLC Internal Solid State Drive for $1849.
Look at this review for FusionIO http://www.tomshardware.com/reviews/fusioinio-iodrive-flash,2140.html
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.


Author Comment

ID: 34106582
Our drives are 15K 300 GB drives. We have 14 of them in a chassis with 2x 10K 146GB drives for the OS/Pagefile RAID 1 set. Our database volume in a RAID 10 6 drive set gets roughly 850 GB usable. Our database easily grows to 500GB per setup. Sometimes it's gotten over 2 TB in which case we had to temporarily offload it to external storage, clean it up so it's back down to 400 GB and then put it back on.

Author Comment

ID: 34112584
We're pretty set on using 6 drives for a RAID 10 array for the databases. The question is how to break up the indexes, tempdb, and transaction logs. There are 6 drives left for this:

RAID 1 - tempdb
RAID 1 - trans log
RAID 1 - indexes


RAID 1 tempdb1
RAID 1 tempdb2
RAID 1 trans log + indexes

when SQL best practices say to have 1 tempdb file per core and we have 2 quad core processors, that means 8 tempdb files. Do they expect/hope people would dedicate 2 whole drives per tempdb file, or just have all 8 on a tempdb RAID 1 set? there's no way we can use 16 drives for the tempdb files.

Our indexes are pretty heavily used so we're debating where to put those too.
LVL 42

Expert Comment

ID: 34117024
My though would be to make it 1 large RAID10 array to get as many spindles involved as possible, but I think that you're going to have to experiment. I am sure that the the relative activity between the indices, logs, and tempdb will determine the optimum placement.  If the hard drives aren't fast enough, puting indices on SSD will certainly make a difference.

Author Comment

ID: 34219183
while the tempdb is over 12 GB in size (it's a 500GB db) 98% is free space and the ave disk queue length on the drive it's on is under .1 (raid 1 set). Thus I'm guessing now I can put the tempdb on the boot volume. I think we're thinking:

(2) RAID1 C - OS/page/tempdb
(2) RAID1 E - trans logs
(4) RAID10  - table in db with 45% of IO
(4) RAID10  - other table in db with 45% of IO
(2) RAID 1 F - rest of DB tables

Accepted Solution

MrVault earned 0 total points
ID: 34360460
we decided on this solution:

2 - RAID1 - C/pagefile
2 - RAID1 - tempdb
2 - RAID1 - tlogs
2 - RAID1 - less active part of DB
2 - RAID1 - high IO, small size part of DB
4 - RAID10 - high IO, larger size part of DB

Author Closing Comment

ID: 34391615
suggestion was not per best practices and went another direction than requested

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
In this article we will get to know that how can we recover deleted data if it happens accidently. We really can recover deleted rows if we know the time when data is deleted by using the transaction log.
This tutorial will walk an individual through locating and launching the BEUtility application and how to execute it on the appropriate database. Log onto the server running the Backup Exec database. In a larger environment, this would generally be …
This tutorial will walk an individual through locating and launching the BEUtility application to properly change the service account username and\or password in situation where it may be necessary or where the password has been inadvertently change…

916 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question