This post is intended to cover the VCAP-DCA objective of understanding the various RAID levels that you will come across when working with vSphere storage. There are already some great resources on RAID available on the Internet, so the aim here is to go over some of the more common RAID configurations and look at their benefits and weaknesses. The most commonly used RAID levels used with vSphere are RAID 0, 1, 5, 6 and 1+0.
RAID 0
RAID 0 is striping only, without redundancy. The data is striped over all disks in the RAID group. A RAID 0 configuration requires a minimum of two disks, and has the following characteristics:
- Very Good Performance
- Allows for all disk capacity to be used for storage. However;
- There is no redundancy. A single drive failure will destroy all data on the RAID volume.
RAID 1
RAID 1 is mirroring data across disks. For example, if you have two disks, the same data is on both disks. A RAID 1 set requires a minimum of two disks.
- Redundant. If a disk fails, there is a copy of the data on the other disk ready to take over.
- Minimal write performance degradation. But;
- You lose half of your total capacity. If you have two 1 TB disks, you will only have approximately 1 TB usable capacity.
RAID 5
RAID 5 is striping with parity. Data is striped across all disks in the RAID set along with the parity bits. RAID 5 requires a minimum of three disks.
- Can afford to lose one disk in the set without loss of data
- Excellent read performance . However;
- Write performance less than that of RAID 1 due to the need to calculate the parity
- When a disk fails performance will be degraded.
RAID 6
RAID 6 is striping with double parity. Like RAID 5, data is striped across all disks in the RAID set, along with double parity. This means the minimum number of disks required is four.
- Can cope with the loss of two disks in the RAID set without data loss
- Excellent read performance. But;
- More disk space is used up due to the additional parity, resulting in less usable capacity.
- Write performance is not as good as either RAID 1 or RAID 5 due to the requirement of calculating the double parity.
RAID 5 and 6 are good, cost effective, options providing both performance and redundancy. It’s best for applications that are heavily read orientated due to the impact the parity calculations have on write performance.
RAID 1+0
Otherwise known as RAID 10, this is combining mirroring with striping. Disks in a RAID 10 group are mirrored then striped across more disks. This means the total number of disks must be an even number, with the minimum number of disks in a RAID 10 set being four.
- Excellent read and write performance
- Can cope with many drive failures, so long as all disks in the set do not fail. However;
- Only 50% of the total capacity of the disks is available due to the mirroring.
RAID 10 is the best option for mission critical applications due to the performance and redundancy it offers.
Calculating Disk Performance Requirements
Typically RAID 5/6 is used for operating system data and application data, with RAID 10 being used for data that has a high volume of changes such as transaction logs. I tend to see the most datastores on RAID 5 volumes with some datastores on RAID 10 to satisfy the performance requirements of applications such as SQL and Oracle. Whichever RAID you decide to use for virtual machine workloads its important to ensure there are enough spindles in the RAID set to satisfy the demands of the virtual machines. With that in mind there is a formula you can use to work out how many disks you need to satisfy demand depending on which RAID type you use:
(total required IOPs * Read %) + (total required IOPs * Write % * RAID penalty) = total IOPs required
Along with this formula, we also need to know how many IOPs the different disk types provide, which are as follows:
Device
|
Type
|
IOPS
|
Interface
|
|
---|---|---|---|---|
7,200 rpm SATA drives | HDD | ~75-100 IOPS |
SATA 3 Gbit/s | |
10,000 rpm SATA drives | HDD | ~125-150 IOPS |
SATA 3 Gbit/s | |
10,000 rpm SAS drives | HDD | ~140 IOPS |
SAS | |
15,000 rpm SAS drives | HDD | ~175-210 IOPS |
SAS |
Finally, we need to know the RAID penalties for the different RAID types.
RAID Level
|
Read Penalty
|
Write Penalty
|
||
---|---|---|---|---|
RAID 0 | 1 | 1 | ||
RAID 1 and RAID 10 | 1 | 2 | ||
RAID 5 | 1 | 4 | ||
RAID 6 | 1 | 6 |
Therefore, with this information we can use the formula to calculate how many disks we need to support the virtual machine workloads. So, for example, if we have a workload that requires 500 IOPs that is 40% read and 60% write, then for RAID 10 it looks like:
(500 * 0.40) + (500 * 0.60 * 2) = 1000
To support 1000 IOPs then around 10 7200k rpm SATA disks would be required or 5 15,000k rpm SAS drives. Doing the same calculation, but using RAID 5 results in:
(500 * 0.40) + (500 * 0.60 * 4) = 1600
To support 1600 IOPs then around 16 7200k rpm SATA disks would be required or 8 15,000k rpm SAS drives. As you can see, the RAID level chosen can drastically change the numbers of disks required to support the virtual machine workloads. Of course, IOPs isn’t the only factor when deciding how many disks you need. You need to get the right balance of cost and performance for your needs. With the option above I would say RAID 5 with the 15,ooo rpm disks is the best option as it doesn’t incur the 50% data capacity loss that you get with RAID 10.
Useful Links and Resources
https://www.thegeekstuff.com/2010/08/raid-levels-tutorial/
https://www.techrepublic.com/blog/the-enterprise-cloud/calculate-iops-in-a-storage-array/