NimbleOS contains built-in VMware integration that allows NimbleOS snapshots to be synchronized with VMware Virtual Machine snapshots in the VMFS datastore environment.
There are few factors that we have to take into account when working with the sync'd snapshot and Nimble volume collections like:
Do I actually need to quiesce the guest OS to get a consistent snapshot?
How many volumes (datastores) in a single volume collection (Volcoll)?
How many VMs in each datastore and how many VMs in each volcoll?
Over the years here at Nimble Storage we've improved our protection engine and introduced specific configurations that will help when a volume collection is configured against the best practice, for example checks if VMware tools installed or not before requestion the snapshot of a VM, power on / off state of a VM and being able to stage the snapshots for the hosts as we don't want to overload the server and spike the CPU.
Some environments are not able to follow the best practice and the above taking it into consideration, the last feature for the VMware Synchronized Snapshots and Nimble Storage was introduced in NimbleOS 4.2.
By default, the VMware synchronized snapshots provided by NimbleOS include all the VMs and datastores in a volume collection. Starting with NimbleOS 184.108.40.206 (and vCenter 6.0), you have the option of including or excluding specific VMs and datastores from the snapshot.
Using VMware tags feature you can now use a pre-defined text as a tag name to act as a trigger for the Nimble array to either exclude or include the object in the snapshot request to vCenter.
It does not mean that your data is not protected, VMs or datastores that are excluded will still be part of the Crash consistent snapshot (array snapshot), it just means that we won't ask vCenter to quiesce the Virtual machines.
If you're not aware of VMware tags feel free to read a bit about it in the following great blogs, I wouldn't want to duplicate the work done by these great bloggers:
Time to switch your vCenter attributes to tags - Gabes Virtual World
Tags can be assigned to a VM or a datastore and will work together if both objects are tagged, for example if the datastore is tagged with the exclude but 1 VM out of the 5 inside is tagged to be included in the backup operation we will only take a VMware Synchronized snapshot of that single VM.
How to use it?
Category & Tags can be created and assigned from the vCenter UI or from PowerCLI.
1. Creating the tag category
$npmSnapTagCategory = New-TagCategory -Name "NimbleVMwareSyncSnaps" -EntityType VirtualMachine,Datastore -Description "Category of tags for Nimble VMware Synchronized Snapshots"
2. Creating the "Include" tag under the category created:
$include_tag = New-Tag -Name "NimbleSnapInclude" -Category NimbleVMwareSyncSnaps -Description "Tag for including VMs or datastores from Nimble VMware Synchronized Snapshots"
3. Creating the "Exclude" tag under the category created:
$exclude_tag = New-Tag -Name "NimbleSnapExclude" -Category NimbleVMwareSyncSnaps -Description "Tag for excluding VMs or datastores from Nimble VMware Synchronized Snapshots"
Should look like this:
- From the Navigator pane in the VMware vSphere Web Client, select Tags & Custom Attributes.
- Select the Tags tab.
- Select Categories.
- Select the Create icon and perform the following tasks:
- Create a category called NimbleVMwareSyncSnaps that has the One Tag per object attribute. This attribute ensures that only one tag from this category can be associated with a vSphere object at a time.
- Under Associable Object Types, select Datastore and Virtual Machine. This selection ensures that these tags can be applied to only these objects.
5. Select the Create icon.
6. Create a tag called NimbleSnapExclude and associate it with the NimbleVMwareSyncSnaps category.
7. Create a tag called NimbleSnapInclude and associate it with the NimbleVMwareSyncSnaps category.
Now we have the tags ready we can assign NimbleSnapExclude and NimbleSnapInclude tags to VMs and datastores. The VMware tags feature allows you to explicity designate VMs and datastores to be excluded or included when VMware takes a synchronized snapshot.
Side note: VMs and datastores that are excluded will still be backed up but not using VMware sync'd snapshot.
Assign a tag:
- Right click either the VM or datastore.
- Select Tags and Custom Attributes.
- Select the NimbleSnapExclude tag to exclude that VM or datastore from synchronized snapshots. Select the NimbleSnapInclude tab to include that object.Note: You cannot assign both tags to the same vSphere object.
- Repeat these steps until you have assigned a tag to all the objects that you either want to exclude or to explicitly include. Any object that does not have a tag is automatically included in all synchronized snapshots and their restore operations.
I have a volume collection called MyVMs it includes 2 volumes "EMEA-VMDK-DS" and "EMEA-Infrastructure-1 (Do Not Delete)".
I can't relocate some of my VMs out of these 2 dedicated datastores, but I must have an application consistent snapshot i.e VMware sync'd snapshot.
What I can now do with the new feature is tag both my datastores with the NimbleSnapExclude tag.
The VMs that I must have an application consistent snapshot can be tagged with the NimbleSnapInclude tag.
"EMEA-Infrastructure-1 (Do Not Delete)"
Assign Tag to both the datastores (repeat for both):
Now you've excluded the datastores, you can decide on the VMs that you want to protect with sync'd snapshot.
The above is one example of few use cases that this new feature can be used with.
Hope you enjoy it, let us know what you think and if you like it
Crash Consistent – The state of disks equivalent to what would be found following a catastrophic failure that abruptly shuts down the system. A restore from such a shadow copy set would be equivalent to a reboot following an abrupt shutdown.
Application Consistent – In general terms, a database application will respond to its VSS writer being triggered by flushing all of its memory and I/O operations so that the database is completely consistent. In doing so, there is nothing in memory and no pending I/O to be lost. When the VSS snapshot is complete, it signals the VSS writers, which are then to resume normal operation of the attendant application while the backup software safely copies out of the snapshot.