Wednesday, March 7, 2012

Hard drives

Can anybody suggest a hdd configuration that offers the best performance and
reliability for a SQL server?I just finished deploying SQL 2000 Cluster.
I spent a solid week researching RAID configurations along with Microsoft
recommended cofigurations.
The settings that I came up with for the Drives are as follows.
Database is written across a RAID 1+0 across six drives. Each pair is being
written to by 2 different controllers.
Transaction Logs are written across a RAID 0+1 across 4 drives. Again each
pair is written to by 2 different controllers.
The RAID 10 provides the highest Availability for the database, since
multiple drive failures across mirrored sets will not effect the Virtual Disk
as much as a RAID 0+1.
The RAID 0+1 will provide a slightly faster write to disk then the RAID10
due to striping of the spanned disks.
Depending on the hardware of course this should be a pretty optimal setting
for your cluster...again I am running in a clustered SQL environment
therefore I am looking for MAX reliability first, then Good performance.
Cheers
John
"Peter Downes" wrote:
> Can anybody suggest a hdd configuration that offers the best performance and
> reliability for a SQL server?
>
>|||Hi Downes -
Please find the following link :-
http://www.sql-server-performance.com/hardware_tuning.asp
Hope this will help you to get the solution you looking for
Regards,
"Peter Downes" wrote:
> Can anybody suggest a hdd configuration that offers the best performance and
> reliability for a SQL server?
>
>|||John E Davis wrote:
> I just finished deploying SQL 2000 Cluster.
> I spent a solid week researching RAID configurations along with
> Microsoft recommended cofigurations.
> The settings that I came up with for the Drives are as follows.
> Database is written across a RAID 1+0 across six drives. Each pair is
> being written to by 2 different controllers.
> Transaction Logs are written across a RAID 0+1 across 4 drives. Again
> each pair is written to by 2 different controllers.
> The RAID 10 provides the highest Availability for the database, since
> multiple drive failures across mirrored sets will not effect the
> Virtual Disk as much as a RAID 0+1.
> The RAID 0+1 will provide a slightly faster write to disk then the
> RAID10 due to striping of the spanned disks.
> Depending on the hardware of course this should be a pretty optimal
> setting for your cluster...again I am running in a clustered SQL
> environment therefore I am looking for MAX reliability first, then
> Good performance.
> Cheers
> John
John,
Can you explain the difference between RAID 1+0 and RAID 10. I thought
they were one and the same. That is, a mirrored, striped set.
David|||Ouch - expensive!
It's all a trade-off, the better the performance the more it'll cost.
If you're using a SAN (as opposed to direct attached storage), chances
are the RAID group will be used by more than just the SQL box (that's
what usually happens in most companies anyway), even by multiple SQL
boxes, so getting the best disk config is usually less of a concern than
getting LUNs on RAID groups that aren't used by other busy servers (busy
in terms of IO).
So unless you can afford RAID groups dedicated just to your SQL box then
I wouldn't worry too much about it. But as John say, yes, RAID 0+1 is
sweet but RAID 5 usually will suffice as the read performance is pretty
good. The write performance on RAID 5 is not so good but usually
there's much more read activity than write activity on SQL DBs - you've
got to see what's more common/important (read vs write) and it's a trade
off between performance, cost & available space (RAID 5 allows much more
usable disk space than RAID 0+1 for the money you spend). Typically,
RAID 5 for data & RAID 0+1 for transaction logs works well.
If you're after the best performance, check out the Microsoft TPC-C
benchmark reports on their high-end configurations. The ones I've read
all use RAID 0 (striping) to get the best read & write performance for
the number of disks (and therefore raw $ price) in their arrays but, of
course, RAID 0 offer exactly zero fault tolerance.
Cheers,
Mike.
John E Davis wrote:
> I just finished deploying SQL 2000 Cluster.
> I spent a solid week researching RAID configurations along with Microsoft
> recommended cofigurations.
> The settings that I came up with for the Drives are as follows.
> Database is written across a RAID 1+0 across six drives. Each pair is being
> written to by 2 different controllers.
> Transaction Logs are written across a RAID 0+1 across 4 drives. Again each
> pair is written to by 2 different controllers.
> The RAID 10 provides the highest Availability for the database, since
> multiple drive failures across mirrored sets will not effect the Virtual Disk
> as much as a RAID 0+1.
> The RAID 0+1 will provide a slightly faster write to disk then the RAID10
> due to striping of the spanned disks.
> Depending on the hardware of course this should be a pretty optimal setting
> for your cluster...again I am running in a clustered SQL environment
> therefore I am looking for MAX reliability first, then Good performance.
> Cheers
> John
> "Peter Downes" wrote:
>
>>Can anybody suggest a hdd configuration that offers the best performance and
>>reliability for a SQL server?
>>|||David Gugick wrote:
> John E Davis wrote:
>
[snip]
>> The RAID 10 provides the highest Availability for the database, since
>> multiple drive failures across mirrored sets will not effect the
>> Virtual Disk as much as a RAID 0+1.
>> The RAID 0+1 will provide a slightly faster write to disk then the
>> RAID10 due to striping of the spanned disks.
[snip]
>
> John,
> Can you explain the difference between RAID 1+0 and RAID 10. I thought
> they were one and the same. That is, a mirrored, striped set.
>
Webopedia (http://www.webopedia.com/TERM/R/RAID.html) provides a
reasonable summary of RAID levels (although I notice they don't have
RAID 50). There are probably better resources, but that was a 10 second
google search. Essentially, it's the difference between a stripe of
mirrors (RAID 10) or a mirror of stripes (RAID 0+1). Pretty much the
same in my book but there are probably subtle differences. As I
mentioned in my other post in this thread, I think getting to that level
of detail for this subject is really splitting straws since other things
like server contention is going to play a bigger role in the IO
performance. That's my 2c worth.
Cheers,
Mike.|||Another (more graphical) description of RAID levels is:
RAID 10: http://www.acnc.com/04_01_10.html
RAID 0+1: http://www.acnc.com/04_01_0_1.html
It's pretty nice actually. :)
Cheers,
Mike.
Mike Hodgson wrote:
> David Gugick wrote:
>> John E Davis wrote:
> [snip]
>> The RAID 10 provides the highest Availability for the database, since
>> multiple drive failures across mirrored sets will not effect the
>> Virtual Disk as much as a RAID 0+1.
>> The RAID 0+1 will provide a slightly faster write to disk then the
>> RAID10 due to striping of the spanned disks.
>
> [snip]
>>
>> John,
>> Can you explain the difference between RAID 1+0 and RAID 10. I thought
>> they were one and the same. That is, a mirrored, striped set.
> Webopedia (http://www.webopedia.com/TERM/R/RAID.html) provides a
> reasonable summary of RAID levels (although I notice they don't have
> RAID 50). There are probably better resources, but that was a 10 second
> google search. Essentially, it's the difference between a stripe of
> mirrors (RAID 10) or a mirror of stripes (RAID 0+1). Pretty much the
> same in my book but there are probably subtle differences. As I
> mentioned in my other post in this thread, I think getting to that level
> of detail for this subject is really splitting straws since other things
> like server contention is going to play a bigger role in the IO
> performance. That's my 2c worth.
> Cheers,
> Mike.|||Peter
Were I work we have very strict standards on how the disk are used. We set
up the following disks for the following uses
'C' drive this is used by the windows operating system
'D' drive this is where we install SQL Server and have the system databases
'E' drive is where we have the user databases
'F' drive is where we have the transaction logs
'G' drive is where we keep our backups
'H' drive is available for application use
The way those logical drives are mapped to phyisical drives varies depending
on how many drives are available, what size databases you are going to have
etc, but we always try to have at least three seperate arrays. that way you
can keep the user databases, transaction logs and backups seperate from each
other.
We insist that all disks be 1+ 0 RAID unless write activity is less than 10%
of disk I/O in which case RAID 5 can be used.
Hope this helps
John
"surajits" wrote:
> Hi Downes -
> Please find the following link :-
> http://www.sql-server-performance.com/hardware_tuning.asp
> Hope this will help you to get the solution you looking for
> Regards,
> "Peter Downes" wrote:
> > Can anybody suggest a hdd configuration that offers the best performance and
> > reliability for a SQL server?
> >
> >
> >

No comments:

Post a Comment