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!
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.
Here is a question I asked a while ago on this site:
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.
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.
I'd go exactly with what you've suggested, the 2+6 idea, I think it's well thought out.
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.
Here is a question I asked a while ago on this site:
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.