The vSphere “update” releases are much more significant than they used to be–traditionally most of the new features came in the major releases. 6.5, 6.7, etc. vSphere 7.0U2 just released and there are quite a bit of storage-related features.
One of the features discussed here:
…is called “SPBM Multiple Snapshot Rule Enhancements“.
What does that mean?
Well that title is more of the description of a use case of this feature than really a description of what it is. And in fact, this feature isn’t truly new either–it has been in SPBM for quite some time, it just wasn’t taken advantage of often, and subsequently hadn’t been well understood.
So first off, what is it? Well in vSphere Storage Policy Based Management, a provider communicates capabilities to vSphere. These capabilities are, well whatever. Generally they are separated into two categories (for external storage): persistence and replication. Those capabilities could be RPO. They could be a RAID level. They are basically features or configurations that the storage layer can provide.
A user then take these capabilities, assigns them their desired values, and combines them into a storage policy.
Often though once you add a capability to a policy you cannot add it again:
The policies I added above are no longer available.
This makes sense for many things. Like QoS IOPS limits for instance. You aren’t going to have two IOPS limits on a volume.
But other things, it could make sense to have two configurations. A common request is: “I want to have this VM or volume snapshotted once a day with all of my VMs, but the particular ones in this policy also snapshotted hourly.
So it makes sense to be able to assign multiple versions of the “local snapshot interval” to the VMs in the policy to achieve that. The ability to do this IS in the vVol specification, and has been for quite some time. It is a flag on a capability called allowMultipleConstraints. Having this flag set on a capability from a VASA provider says that, yes the user can specify this multiple times in a policy.
The key here is that this is not an OR thing. If you specify it more than once it tells the VASA provider that this storage MUST be configured in all of the specified ways.
There are ways of doing OR in a policy.
A capability itself and take in more than one value (if the VASA provider enforces the values, it will be a drop down, known as a discrete set, if it doesn’t it will be like above and a user-defined set of rows there they can enter values). If it satisfies one of those values it is compliant with that policy. For instance the above, the volume must be on the x50-1 array or the x50-2 array.
So in the VMware blog post it mentions this is for snapshots, but this is really for any capability. For the vendor to support this, they need to set allowMultipleConstraints to true in the capability and of course also implement the correct logic. You know if a capability supports this if you can add it more than once into a policy.
We (Pure Storage) are working on some significant enhancements to our SPBM. So stay tuned from our side.