Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm configuring a new server: it has 1 raid controller with 8x 146 Gb disks. The system is currently configured in Raid 1+0 but has only 1 logical drive, which is not that optimal as data and logfiles should be on seperate disks?

Does it make sense to reconfigure the system to use:

  • 2 disks as a raid-1 logical disk for OS+logs
  • 6 disks as a raid-10 logical disk for data

All the disks are still on the same raid-controller, so' I don't know if this gives me a performance advantage?

Thanks for the advice!

share|improve this question

migrated from stackoverflow.com Jan 27 '10 at 14:44

This question came from our site for professional and enthusiast programmers.

add comment

6 Answers 6

It depends on whether your database will be mostly reads, mostly writes, or an unknown mix.

If the database will be mostly reads (SELECTs), then go with all eight drives in the same RAID 10.

If the database will be mostly writes (INSERTs/UPDATEs/DELETEs), then you might even want to consider two 4-drive RAID 10 arrays - especially if your databases will be doing frequent transaction log backups, database mirroring, or log shipping.

If you just don't know, I would go with 2+6 if the server has space to add additional hard drives in the future. That way, if you decide you need more performance on the data or log arrays later, you can usually hot-add pairs of drives and restripe them without an outage. If you post the RAID card model, we can check that for sure.

If you don't know, and you don't have space to add additional drives, then I'd go with a single 8-drive array for easier management. You won't be as worried about running out of space on the log drives.

And no matter which option you choose, put the log files on a separate logical drive from the OS. If you suddenly have a ton of transaction volume and the log files fill up the OS's logical drive (C), your server can go down hard.

share|improve this answer
1  
Mostly reads on RAID 10? Dude, going to smack you. Mostly reads on RAID 5. Give you more spindles to use for the reads, and the RAID 5 overhead isn't much because you aren't doing much writing. RAID 10 only gives you 10% of the disks for reading, but RAID 5 gives you n-1 (or n depending on RAID 5 design used) for reading. –  mrdenny Jan 27 '10 at 22:53
    
Depends on your definition of "mostly" and how much performance matters on the writing part. Though I agree RAID 5 seems to get pushed aside too often. But can you elaborate on the 10% math? –  SqlACID Jan 28 '10 at 0:41
    
I 'll put a limit on the log-file growth, to avoid the OS logical drive from filling up. I think that's as good as creating another logical drive? –  sfonck Jan 28 '10 at 10:38
    
@mrdenny means RAID 10 gives you 50% of the disks for reading. We can split hairs about that one - RAID 5 is better for one person reading, RAID 10 can be better for multiple simultaneous reads. Either one is a good choice for mostly SELECTs though. @sfonck - no, that's not as good as creating another logical drive. In theory it is, but here's the reality: sooner or later, someone (maybe you) is going to add another database and they're going to forget about setting a limit on the log file growth. Or, all of the log files will grow simultaneously and they'll add up to fill up the drive. –  Brent Ozar Jan 28 '10 at 12:46
add comment

Here is a question I asked a while ago on this site:

http://serverfault.com/questions/19866/recommended-disk-partition-setup-for-a-sql-server

It sounds like it may help you with your current scenario.

Basically try to get your OS on RAID 1, data on RAID 10 (I go off of RAID 5 at the moment), and logs on RAID 1. The posts in the topic do a very good job of describing why you'd want this.

I would advise against putting your log files on the same drives as your OS. Log files have an annoying tendency to grow a lot and this could potentially fill up your OS drive which would not be good. If they're on their own drives, it should only affect SQL if the drives fill up.

share|improve this answer
add comment

In both 1 and 0+1 RAID you read a single sector from one disk and write it on two.

Diferent story if you have RAID 5, on which, given n physical disks, you read from n-1 and write on n.

In your setup, the only difference between two scenarios is that a raidset fails badly, you still have the other raidset, for what is worth.

share|improve this answer
    
The raid-1 with 2 disks should be optimal for writing sequentially, which is needed for log-files. The raid 10 with 6 disks will read from 3 disks and write on 6 disks. My question is if this is a better setup than the raid-10 with 8 disks, which will read from 4 disks and write to 8, but probably no good access for the log-files? –  sfonck Jan 27 '10 at 13:36
    
Assuming you have a decent controller and good queue management - with RAID 5 (distributed parity) you read from n disks, not n-1, all disks contain data (and parity) - this is one of the benefits of distributed parity. With RAID 10 you also read from n disks. For writes RAID 5 requires 2 reads and 2 writes (generally) while RAID 10 requires 2 writes - the write penalty for RAID 5 is therefore 4 (1/4 the read rate) and for RAID 10 is 2 (half the read rate). The isolation prevents interference in IO patterns and is good but there is no real difference in aggregate IO rate between the two. –  Helvick Jan 27 '10 at 22:14
    
@lrosa I'm assuming you meant 1+0 and not 0+1. 1+0 is almost always preferable to 0+1. –  MDMarra Jan 27 '10 at 22:30
add comment

I'd go exactly with what you've suggested, the 2+6 idea, I think it's well thought out.

share|improve this answer
add comment

I would reconfigure to have 2 logical drives. For starters, having the OS on a separate spindle from your data is good practice because it makes restorals easier. Also, although I don't know the details of the RAID controller, in general splitting your OS onto a different set of drives will increase performance because it will reduce contention on the drives and decrease so called IO Thrashing when the disks spend too much time seeking and not enough reading/writing.

share|improve this answer
add comment

Here is a question I asked a while ago on this site:

http://serverfault.com/questions/19866/recommended-disk-partition-setup-for-a-sql-server

It sounds like it may help you with your current scenario.

Basically try to get your OS on RAID 1, data on RAID 10 (I go off of RAID 5 at the moment), and logs on RAID 1. The posts in the topic do a very good job of describing why you'd want this.

I would advise against putting your log files on the same drives as your OS. Log files have an annoying tendency to grow a lot and this could potentially fill up your OS drive which would not be good. If they're on their own drives, it should only affect SQL if the drives fill up. This can be tough with only 8 drives but if you can avoid it, it's probably for the best.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.