We have a customer who is purchasing new hardware and has a question on RAID. They are planning on four RAID 1 drive pairs. Our Knowledgebase articles suggest that RAID 10 is preferred. Is this only with databases which exceed the capacity of a physical drive? Or would RAID 1 be sufficient?
More detail from the customer below
sufficiently fast disks and RAID card with caching we believe are more important to throughput.
suggests RAID 10 is better, but I wonder if that is only with databases which exceed the capacity of a physical drive?
We would appreciate any feedback you have, especially as to how to setup the 8 disks for maximum performance
Well, RAID 1 is for redundancy. If one drive fails you always have the other. RAID 0 is not so much for extending the disk capacity but more for performance reasons. Since there's a limit on how much data a hard disk can deliver (in terms of bandwidth) the idea behind RAID 0 (striping) is that if have a file, half the file is on one disk and the other half on the other disk. So if one drive can deliver x MB/s, two drives can deliver 2x.
In short RAID 10 (with 4 disks) gives roughly twice the throughout speed of a RAID 1 config (with 2 disks). If you need it, that's up to you.
You can do 2 thing IMHO for max performance:
- 8 disks in 1 RAID 10 config
- split these disks, 6 in RAID 10 for the data, 2 in RAID 1 for the before image files.
I've seen customers with 3 logical disks, 1 for the OS, 1 for temp files and before image files and the rest for the data. The possibilities are endless, there's hardly a one size fits all for this.
If you are going to split the disks into more than one volume, I would suggest using the second volume for AI extents and local backups, rather than BI. So if you lose the DB volume/array, you can still recover with last night's backup and the recent AI files on the other volume.
You may also want to consider a separate volume for the OS and anything application-related: r-code, logs, temp files, etc., so that those things don't take I/O bandwidth from the DB. Do you have server-side clients or is this machine just a DB server?
You haven't said what kind of disks you are considering. Are they spinning disks or SSD?
RAID 0 is disk striping. that improves performance by equalizing the i/o load over the members of the stripe set. but RAID 0 has NO REDUNDANCY. If one disk in the stripe set fails, you lose everything with no chance of recovery. Therefore it should not be used by itself - it should be combined with RAID 1 (mirroring) to give you RAID 10.
For RAID 10, you set up a number of mirrored disk paris and then stripe the pairs. this way, as long as you don’t lose both sides of the same pair, you can tolerate multiple disk failures. Also, you get improved read throughput with mirrors as the system can read from both sides of the pairs simultaneously. Writes of course require updating both sides at the same time.
If you do RAID 1 by itself, you get redundancy without striping but then you have to manually lay out what goes on each volume. That is hard to do and will most likely result in some volumes being idle and one or more being maxed out.
The Dell R730 is a good machine and you have plenty of RAM.
I would use 6 disks in a RAID 10 setup with the databases, bi logs, and temp files there, 1 for the operating system and software, and 1 for after-imaging.
If "maximum performance" is an important consideration they should be implementing SSD rather than rotating rust.
CPU speed *is* important. ERPs have a number of CPU throttled processes and even if they didn't once IO bottlenecks are adequately addressed CPU speed will quickly become relevant.
4 - CPUs currently
4 - CPUs configured
3720 - MHz CPU clock rate
Yeah you probably right the ERP will still be around, however, hopefully just for historical data.