Managing the capacity usage of your VMFS datastores is an important part of regular care in your virtual infrastructure. There are a variety of mechanisms inside of ESXi and vCenter to monitor capacity. Frequently, the concept of data reduction on the FlashArray is seen as a complicating factor, when in reality it is a simplifying factor, or at worse, a non-issue.
Letās overview some concepts on how to best manage VMFS datastores from a capacity perspective.
VMFS Usage vs. FlashArray Volume Capacity
VMFS reports how much is currently allocated in the filesystem on that volume. Depending on the type of virtual disk (thin or thick), dictates how much is consumed upon creation of the virtual machine (or virtual disk specifically). Thin disks only allocate what the guest has actually written to, and therefore VMFS only records what the virtual machine has written in its space usage. Thick type virtual disks allocate the full virtual disk immediately, so VMFS records much more space as being used than is actually used by the virtual machines.
This is one of the reasons thin virtual disks are preferredāyou get better insight into how much space the guests are actually using.
Regardless of what type you choose, ESXi is going to take the sum total of the allocated space of your virtual disks and compare that to the total capacity of the filesystem of the volume. The used space is the sum of those virtual disks allocations. This number increases as virtual disks grow or new ones are added, and can decrease as old ones are deleted, moved, or even shrunk.
Compare this to what the FlashArray reports for capacity. What the FlashArray reports for volume usage is NOT the amount used for that volume. What the FlashArray reports is the unique footprint of the volume on that array.
In the example below we can see that we are using a 5 TB FlashArray volume and VMFS datastorea. The example confirms that the VMFS datastore reports a total of 720.72 GB of used space on the 5TB filesystem. This tell us that there is a combined total of 720.72 GB of allocated virtual disks on this filesystem:
Now letās look at the FlashArray volume.
The FlashArray volume shows that 50.33 GB is being used. Does this mean that VMFS is incorrect? No. VMFS is always the source of truth. The āVolumesā metric on the FlashArray simply represents the amount of physical capacity that has been written to the volume after data reduction that no other volume shares.
This metric can change at any time as the data set changes on that volume or any other volume on the FlashArray. If, for instance, some other host writes 2 GB to another volume (letās call it āvolume2ā), and that 2 GB happens to be identical to 2 GB of that 50.33 GB GB on āsn1-m20-e05-28-prod-dsā, then āsn1-m20-e05-28-prod-dsā would no longer have 50.33 GB of unique space. It would drop down to 48.33 GB, even though nothing changed on āsn1-m20-e05-28-prod-dsā itself. Instead, another application just happened to write similar data, making the footprint of āsn1-m20-e05-28-prod-dsā less unique.
For a more detailed conversation around this, refer to this blog post:
http://www.codyhosterman.com/2017/01/vmfs-capacity-monitoring-in-a-data-reducing-world/
Why doesnāt VMFS report the same used capacity as the FlashArray for the underlying volume?
Well, because they mean different things. VMware reports what is allocated on the VMFS and the FlashArray reports what is unique to the underlying volume. The FlashArray value can change constantly. The FlashArray metric is only meant to show how reducible the data on that volume is internal to the volume and against the entire array. Conversely, VMFS capacity usage is based solely on how much capacity is allocated to it by virtual machines. The FlashArray volume space metric, on the other hand, actually relates to what is also being used on other volumes. In other words, VMFS usage is only affected by data on the VMFS volume itself. The FlashArray volume space metric is affected by the data on all of the volumes. So the two values should not be conflated.
For capacity tracking, you should refer to the VMFS usage. How do we best track VMFS usage? What do we do when it is full?
Monitoring and Managing VMFS Capacity Usage
As virtual machines grow and as new ones are added, the VMFS volume they sit on will slowly fill up. How to respond and to manage this is a common question.
In general, using a product like VCF Operations with the Everpure FlashArray Management Pack for VMware Cloud Foundation (VCF) Operations is a great option here. But for the purposes of this document we will focus on what can be done inside of vCenter alone.
You need to decide on a few things:
- At what percentage full of my VMFS volume do I become concerned?
- When that happens what should I do?
- What capacity value should I monitor on the FlashArray?
The first question is the easiest to answer. Choose either a percentage full or at a certain capacity free. Do you want to do something when, for example, a VMFS volume hits 75% full or when there is less than 50 GB free? Choose what makes sense to you.
vCenter alerts are a great way to monitor VMFS capacity automatically. There is a default alert for datastore capacity, but it does not do anything other than tag the datastore object with the alarm state. Everpure recommends creating an additional alarm for capacity that executes some type of additional action when the alarm is triggered.
Configuring a script to run, an email to be issued, or a notification trap to be sent greatly diminishes the chance of a datastore running out of space unnoticed.
BEST PRACTICE: Configure capacity alerts to send a message or initiate an action.
The next step is to decide what happens when a capacity warning occurs.
There are a few options: