VMware Cloud on AWS (VMC) gives you the ability to control the availability and performance of a group of virtual machines, a single virtual machine or even an individual disk within a virtual machine. So you can tailor availability and performance based on the application or business requirement
The above animation gives a nice little overview of what storage polices can do.
VMC has two storage datastores, one for the management VMs and one for the workload VMs. Both datastores use the same underlying storage devices and consume from the same pool of free space.
By default when you deploy a virtual machine it is assigned a storage policy. You can assign storage policies when you create or reconfigure virtual machines.
There are three key items we can control with storage polices:
- Site disaster tolerance
- Failures to tolerate (FTT)
- RAID Configuration
There are also a number of advanced options that you can control, which include IOPS Limits, number of disk stripes per object, thin/thick provisioning and disabling object checksum. For further details on advanced options please review here.
Site Disaster Tolerance
When VMC stretched cluster is deployed, the site disaster tolerance settings allow us to configure the way a virtual machine can handle an AWS Availability Zone (AZ) failure. Click here more details about stretched clusters.
The Four options that can be selected for site disaster tolerance are:
- None (non-stretched cluster)
- Dual-site mirroring (stretched cluster)
- None – Keep data on primary (stretched cluster)
- None – Keep data on secondary (stretched cluster)
You can see from the diagram above that site disaster tolerance can control the availability of virtual machines across different AWS AZs.
Business critical workloads may require dual site mirroring, in the event of an AZ failure the protected workloads would simply reboot in the secondary AZ with minimal downtime. Non-business critical workloads or workloads that provide their own availability (i.e SQL Always-On) may utilise “None Keep data on Preferred/Non-Preferred site”.
Failures to Tolerate
FTT Defines the number of host and device failures that a virtual machine can tolerate. You can choose to have no data redundancy (FTT0), FTT1 or FTT2.
RAID configurations can be optimised for either performance (Mirroring) or capacity (Erasure Coding).
- RAID-1 uses more disk space as it mirrors every piece of data, but RAID-1 provides better performance for accessing the data.
- RAID-5/6 (Erasure Coding) uses less disk space (20%-50% less than RAID 1), but the application performance may be reduced when compared to RAID-1
RAID Configuration, FTT and Minimum Hosts Required
|RAID Configuration||FTT||Minimum Hosts Required|
|RAID-1 (Mirroring) This is the default setting. RAID-1||1||3|
|RAID-5 (Erasure Coding)||1||4|
|RAID-6 (Erasure Coding)||2||6|
The table below represents an example of the consumed storage space of a VM with 100GB storage. As the FTT and RAID levels change you can see the effect that this has on the consumed storage.
Configuring Storage Polices in VMC
Lets look at how we can create a storage policy, then we will see how we apply this to our workloads
- Login to your VMC vCenter
- Click Menu then Polices and Profiles
3. Click Create
4. Give the policy an name and click Next
5. Select Enable rules for “VSAN” storage and click Next
6. Set the Site Disaster Tolerance from the drop down (leave this as “None – standard cluster” if you do not have a VMC stretched cluster)
7. Set the Failure to Tolerate and RAID levels from the drop down
8. Configure any of the Advanced Policy Rules (if required) and click Next
9. Click WorkloadDatastore and click Next
10. Review the policy details and click Finish
You have now created a Storage Policy, the next step is to apply to this your required workloads or disks.
Apply Storage Polices to workloads in VMC
The below will show you how to apply a storage policy to a workload in VMC.
- Login to your VMC vCenter
- Right click a Virtual Machine that you want to apply / change their storage policy, select VM Policy and select Edit VM Storage policies
3. Select the VM Storage policy from the drop down, this will apply the storage policy to all the disks in the selected VM
4. To configure policies per disk within the VM, select the Configure per disk toggle, this will then enable the selection of storage polices per disk. One the correct policies have been selected, click Ok
5. This will apply the storage policy to the VM.
6. To monitor the storage policy that has been applied, you can review the status on the VM summary page in vCenter. Depending on the changes required on the VM, based on the storage policy selected, this will effect how long the polices will take to become compliant. Once the storage policy has completed being applied the summary screen will show compliant as seen below.
As you can see, creating and apply storage policies is very easy. This is a fantastic way to manage the performance and the availability of your application across multiple AWS AZs, without having to make any changes to your application.