Link to home
Start Free TrialLog in
Avatar of ammexit

asked on

Best RAID configuration for Exchane 2007?

I have a brand new server that I'm preparing to use as our Exchange 2007 server.  I want to be sure that I configure it with the optimal RAID configuration (for speed) so I'm not kicking myself later.  I've gathered that I should stay away from RAID 5 all together.  The rep who sold me the server also runs his own hardware consulting business and swears to me that I should make all 8 drives (146 gb each) a single RAID 10 array and create logical drives for the OS, Database and Logs.  I'm uncertain about this.  It seems to me that I should at least separate the OS and put it on a hardware RAID 1.

Something along the lines of:

OS = 2 drives in a RAID 1
DATABASE = 4 drives in a RAID 10
TRANSACTION LOGS = 2 drives in a RAID 1

I guess that would only leave me with the option of leaving the paging file with the OS.

Any advice?
Avatar of rindi
Flag of Switzerland image

Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Link to home
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of ammexit



So one hardware RAID 10 for all partitions?  Or two RAID 10's (4 drives each)?  I have 8 - 146 gb drives.


Sorry for the confusion.  I agree with you.  I meant that I would do 1 hardware RAID 10 and do separate logical drives for the OS, Database and Trans Logs.
I mean would it not be better something like:
RAID 1 for OS
RAID 10 (made of 6 disks) for both Transaction logs and DB (on 1 or 2 partitions)
I dont recommend RAID 5 as if  one drive fails performance drop will be significant as oppose to RAID 10 when it performs as good as before failure.

One raid 10 is OK.
Avatar of ammexit


Trompele and Rindi,

That's really what I was stuck on.  Everything on one RAID 10, or seperate the OS on a RAID 1.  Don't take this wrong, but which one of you is right?
RAID 10 offers faster data reads and writes than RAID 5 because it does not need to manage parity. However, with half of the Disk Drive Modules in the group used for data and the other half used to mirror that data, RAID 10 disk groups have less capacity than RAID 5 disk groups

Also - RAID 10 provides high availability by combining features of RAID 0 and RAID 1. So I were you, i would go with Rindi's suggestion.

Wait for Trompele's validation on not to go for one logical drive for all partitions.

The only advantage of having separate RAID1 for OS is that any operation on RAID in future will be made on DATA or SYSTEM. So if in future you'll be able to get 300 GB SAS drives you can replace 2 of them and then 6. You can also leave your OS running (2x146GB) make backup of DB and LOGS to tape, replace 6x147 to 6x300 recover backup and voila. As in RAID 10 setup you'll have to replace all of them and reinstall (or reimage) OS, recover DB etc.
Disadvantage of that setup is that write speeds on RAID 10 will be better. Read speeds should be similar.

I hope i helped.
Firstly, you've covered the main issue: assuming performance is more important than cost to you, you are fair better off with raid 1+0 than raid 5, as mentioned above (and we can assume that certainly if you have a fair amount of logging, your server will be writing a lot - so RAID 5 is not for you...)

So to your question. I guess you are considering RAID-ing for robustness, and performance.

Robustness : the scores are level here, in either of the configurations you describe, you can lose 1 disk (and even a subsequent one, provided that it isn't the dead disk's partner).

Performance: generally speaking, the more pairs of disks you have, the better.  
If we have 4x2 disks (RAID 10), then we can read a file more quickly due to our ability to read off each pair in parallel.  The same is true when we write.
If we go for your alternative and split up the OS, DB and Logs; then suddenly the OS and the logs lose this ability (they are effectively degraded to RAID1).  Indeed the DB loses it to an extent; as it only has 2 pairs to play with, not 4.

So on the face of it your advisor is correct.

However, many exhange server resources document a recommendation to keep the transaction logs on their own dedicated disks. Perhaps this is behind your question.  
One of the reasons given for this, is that as the log files are written sequentially, it makes sense not to have the disk heads being moved about by other processes (i.e. so they are used exclusively for the purposes of writing logs),then  they will always be in the right place (ready to append to the logs).  
[The other reason usually given, is that this separation also provides fault tolerance, but you can ignore that in this case as you are mirroring all of your disks]
As logs are written do frequently (and in small amounts) - we might also assume that there would be little to be gained by parallel writes (that is, not having to move the disk heads around outweights the disadvantage of not being able to perform parallel writes).

I don't think we can really make the above argument for either the OS or the database ('the rest' of exchange).  That is to say we can't really be sure that we know where the disk heads should be at any given moment, nor do we really know exactly what will be written, when.

So basically then, we have 'sequential' access for the logs, and we can make the argument that in this particular case, RAID 1(with the disk heads in the right place before a write) will perform just as well or better than RAID 1+0 (with the disk heads in a 'random' position).  Do bear in mind though, that with fragmentation and the like, this argument might not hold 100% of the time (files on disk are by no means guranteed to be in a contiguous line)

For both the OS and the rest of Exchange, I think we have to assume we have 'random' access.  That being the case, we'd be better off with parallel reading and writing.

So if you follow the argument about sequential log access, then I'd actually go for 1*2 (RAID 1) for the transaction logs e.g. on drive 'D:\', and 3*2 (RAID 10) on drive 'C:\' for everything else (OS and the rest of Exchange).

Should you need more space for your logs, then you could go for c:\ = 2*2 and d:=\ 2*2

Now, you may have other reasons to keep your OS separate (for ease of re-installation etc.) - in which case your suggestion may indeed be appropriate.  If you're going purely for performance though, i'd say 3*2 and 1*2 would probably be optimal.

P.S. I have configured an exchange 2003 server as above (it was actually 2*2 and 1*2), and it certainly beat RAID 5, but we didn't compare it with (3*2).