vVols User Guide: Types of vVols
Types of vVols
The benefits of vVols are rooted in the increased storage granularity achieved by implementing each vVol-based virtual disk as a separate volume on the array. This property makes it possible to apply array-based features to individual vVols.
FlashArray Organization of vVols
FlashArrays organize the vVols associated with each vVol-based VM as a volume group. Each time VMware administrator creates a vVol-based VM, the hosting FlashArray creates a volume group with the following naming schema: vvol-{VM Name}-{unique 8 character string}-vg
FlashArray syntax limits volume group names to letters, numbers and dashes; arrays remove other characters that are valid in virtual machine names during volume group creation. The length of the volume group name is limited between 1 and 63 characters. In the event that the VM name is longer than 46 characters the VM name will be truncated as part of the volume group name.
Volume Groups Area of GUI Volumes Tab![]() |
To list the volumes associated with a vVol-based VM, select the Storage view Volumes tab. In the Volume Groups area, select the volume group name containing the VM name from the list or enter the VM name in the search box.
The Volumes area of the pane lists the volumes associated with the VM.
GUI View of Volume Group Membership![]() |
Clicking a volume name displays additional detail about the selected volume.
GUI View of a vVol's Details![]() |
Note:
Clicking the volume group name in the navigation breadcrumbs returns to the volume groups display.
As with all FlashArray data objects, destroying a volume group moves it to the array’s Destroyed Volume Groups folder for 24 hours before eradicating it permanently.
To recover or eradicate a destroyed volume group, click the respective icons in the Destroyed Volume Groups pane. A destroyed volume group can only be eradicated if all objects in that volume group have already been eradicated.
FlashArray GUI Destroyed Volume Groups View![]() |
The FlashArray CLI and REST interfaces can also be used to manage volume groups of vVols.
VM Datastore Structures
vVols do not change the fundamental VM architecture:
- Every VM has a configuration file (a VMX file) that describes its virtual hardware and special settings
- Every powered-on VM has a swap file.
- Each virtual disk added to a VM is implemented as a storage object that limits guest OS disk capacity.
- Every VM has a memory (vmem) file used to store snapshots of its memory state.
Conventional VM Datastores
Every VM has a home directory that contains information, such as:
Virtual hardware descriptions
Guest operating system version and settings, BIOS configuration, virtual SCSI controllers, virtual NICs, pointers to virtual disks, etc.
Logs
Information used during VM troubleshooting
VMDK files
Files that correspond to the VM’s virtual disks, whether implemented as NFS, VMFS, physical and virtual mode RDMs (Raw Device Mappings), or vVols. VMDK files indicate where the ESXi vSCSI layer should send each virtual disk’s I/O.
For complete list VM home directory contents refer to VMware's documentation that covers Virtual Machine Files.
When a VMware administrator creates a VM based on VMFS or NFS, VMware creates a directory in its home datastore.
vCenter UI View - VM Settings - VM Options![]() ![]() |
Web Client File Browser View of a VM's Home Directory![]() |
With vVol-based VMs, there is no file system, but VMware makes the structure appear to be the same as that of a conventional VM. What occurs internally is quite different, however.
vVol-based VM Datastores
vVol-based VMs use four types of vVols:
- Configuration vVol (usually called “config vVol” one per VM)
- Data vVol (one or more per VM)
- Swap vVol (one per VM)
- Memory vVol (zero, one or more per VM)
The sections that follow describe these four types of vVols and the purposes they serve.
In addition to the four types of vVols used by vVol-based VMs, there are vVol snapshots, described in the section titled Snapshots of vVols, starting
Config vVols
When a VMware administrator creates a vVol-based VM, vCenter creates a 4-gigabyte thin-provisioned configuration vVol (config vVol) on the array, which ESXi formats with VMFS. A VM’s config vVol stores the files required to build and manage it: its VMX file, logs, VMDK pointers, etc. To create a vVol-based VM, right-click any inventory pane object to launch the New Virtual Machine wizard and specify that the VM’s home directory be created on a vVol datastore.
vCenter UI View - New VM![]() |
Note:
For simplicity, the VM in this example has no additional virtual disks.
vCenter UI View - VM Hardware Settings![]() |
When VM creation is complete, a directory with the name of the VM appears in the array’s vVol datastore. The directory contains the VM’s vmx file, log file and an initially empty vmsd file used to store snapshot information.
vCenter UI View - vVol DS File Browser![]() |
In the Web Client, a vVol datastore appears as a collection of folders, each representing a mount point for the mini-file system on a config vVol. The Web Client GUI Browse Datastore function and ESXi console cd operations work as they do with conventional VMs. Rather than traversing one file system, however, they transparently traverse the file systems hosted on all of the array’s config vVols.
A FlashArray creates a config vVol for each vVol-based VM. Arrays name config vVols by concatenating the volume group name with config-<UUID>. Arrays generate UUIDs randomly; an array administrator can change them if desired.
An array administrator can search for volumes containing a vVol-based VM name to verify that its volume group and config vVol have been created.
FlashArray UI View - Volumes List![]() |
As objects are added to a vVol-based VM, VMware creates pointer files in its config vVol; these are visible in its directory. When a VM is deleted, moved to another array, or moved to a non-vVol datastore, VMware deletes its config vVol.
Data vVols
Each data vVol on an array corresponds to a virtual disk. When a VMware administrator creates a virtual disk in a vVol datastore, VMware directs the array to create a volume and creates a VMDK file pointing to it in the VM’s config vVol. Similarly, to resize or delete a virtual disk, VMware directs the array to resize or destroy the corresponding volume.
Creating a Data vVol
vVol-based virtual disk creation is identical to conventional virtual disk creation. To create a vVol-based virtual disk using the Web Client, for example, right-click a VM in the Web Client inventory pane and select Edit Settings from the dropdown menu to launch the Edit Settings wizard.
vCenter UI View - VM Edit Settings![]() |
Select New Hard Disk in the New device dropdown and click Add.
vCenter UI View - New Hard Disk Selection![]() |
Enter configuration parameters. Select the VM’s home datastore (Datastore Default) or a different one for the new virtual disk, but to ensure that the virtual disk is vVol-based, select a vVol datastore.
vCenter UI View - Specifying Data vVol Parameters![]() |
Click OK to create the virtual disk. VMware does the following:
- For a VM’s first vVol on a given array, directs the array to create a volume group and a config vVol for it.
- Directs the array to create a volume in the VM’s volume group.
- Creates a VMDK pointer file in the VM’s config vVol to link the virtual disk to the data vVol on the array.
- Adds the new pointer file to the VM’s VMX file to enable the VM to use the data vVol.
The FlashArray GUI Storage view Volumes tab lists data vVols in the Volumes pane of the volume group display.
FlashArray UI View - Volume Group Volume Objects View![]() |
Resizing a Data vVol
A VMware administrator can use any of several management tools expand a data vVol to a maximum size of 62 terabytes while it is online. Although FlashArrays can shrink volumes as well, vSphere does not support that function.
vCenter UI View - vSphere Disallows Volume Shrinking![]() |
Note:
VMware enforces the 62 terabyte maximum to enable vVols to be moved to VMFS or NFS, both of whose maximum virtual disk size is 62 terabytes.
At this time VMware does not support expanding a Volume that is configured with a SCSI controller that is enabled with sharing.
To expand a data vVol using the Web Client, right-click the VM in the inventory pane, select Edit Settings from the dropdown menu, and select the virtual disk to be expanded from the dropdown. The virtual disk’s current capacity is displayed. Enter the desired capacity and click OK, and use guest operating system tools to expose the additional capacity to the VM.
vCenter UI View - Entering Expanded Data vVol Capacity![]() |
FlashArray UI View - Updated Capacity Size of the Data vVol![]() |
Deleting a Data vVol
Deleting a data vVol is identical to deleting any other type of virtual disk. When a VMware administrator deletes a vVol-based virtual disk from a VM, ESXi deletes the reference VMDK file and directs the array to destroy the underlying volume.
To delete a vVol-based virtual disk, right-click the target VM in the Web Client inventory pane, select Edit Settings from the dropdown menu to launch the Edit Settings wizard. Select the virtual disk to be deleted, hover over the right side of its row and click the symbol when it appears.
vCenter UI View - Selecting Data vVol for Deletion![]() |
To remove the vVol from the VM, click the OK button. To remove it from the VM and destroy it on the array, check the Delete files from datastore checkbox and click OK.
vCenter UI View - Destroying the Volume on the Array![]() |
Note:
Delete files from datastore is not a default—if it is not selected, the vVol is detached from the VM, but remains on the array. A VMware administrator can reattach it with the Add existing virtual disk Web Client command.
The ESXi host deletes the data vVol’s VMDK pointer file and directs the array to destroy the volume (move it to its Destroyed Volumes folder for 24 hours.
FlashArray UI View - Deleted Data vVol in Destroyed Volumes Objects![]() |
An array administrator can recover a deleted vVol-based virtual disk at any time during the 24 hours following deletion. After 24 hours, the array permanently eradicates the volume and it can no longer be recovered.
Swap vVols
VMware creates swap files for VMs of all types when they are powered on, and deletes them at power-off. When a vVol-based VM is powered on, VMware directs the array to create a swap vVol, and creates a swap (.vswp) file in the VM’s config vVol that points to it.
vCenter UI View - vVol DS Browser - Powered Off VM Files![]() Illustrates the components of a powered-off vVol-based VM. There is no vswp file. |
FlashArray UI View - Volumes for Powered Off vVol based VM![]() The VM’s volume group does not include a swap volume. |
To power on a vVol-based VM, right-click it in the Web Client inventory pane, select Power from the dropdown menu, and Power On from the secondary dropdown.
vCenter UI View - Powering On the VM![]() |
When a VM is powered on, the Web Client file navigator lists two vswp files in its folder.
vCenter UI View - vVol DS Browser - Powered On VM Files![]() |
VMware creates a vswp file for the VM’s memory image when it is swapped out and another for ESXi administrative purposes.
The swap vVol’s name in the VM’s volume group on the array is Swap- concatenated with a unique identifier. The GUI Volumes tab shows a volume whose size is the VM’s memory size.
FlashArray UI View - Swap Volume for Powered On VM![]() |
vCenter UI View - VMs Virtual Memory Size![]() |
Like all FlashArray volumes, swap vVols are thin-provisioned—they occupy no space until data is written to them.
To power off a vVol-based VM, right-click it in the Web Client inventory pane, select Power from the dropdown menu, and Shut Down Guest OS from the secondary dropdown.
vCenter UI View - Command to Shutdown the Guest OS![]() |
When a VM is powered off, its vswp file disappears from the Web Client file navigator, and the FlashArray GUI Volumes tab no longer shows a swap volume on the array.
FlashArray UI View - Powered Off VM's Volumes (note there is no swap)![]() |
VMware destroys and immediately eradicates swap vVols from the array. (They do not remain in the Destroyed Volumes folder for 24 hours.)
FlashArray UI View - Audit log of operations to destroy and eradicate Swap![]() |
Memory vVols
VMware creates memory vVols for two reasons:
VM suspension
When a VMware administrator suspends a VM, VMware stores its memory state in a memory vVol. When the VM resumes, its memory state is restored from the memory vVol, which is then deleted.
VM snapshots
When a VMware management tool creates a snapshot of a vVol-based VM with the “store memory state” option, VMware creates a memory vVol. Memory vVols that contain VM snapshots are deleted when the snapshots are deleted. They are described in the section titled Creating a VM Snapshot with Saved Memory.
To suspend a running VM, right-click its entry in the Web Client inventory pane, select Power from the dropdown menu, and Suspend from the secondary dropdown.
vCenter UI View - Command to Suspend the VM![]() |
VMware halts the VM’s processes, creates a memory vVol and a vmss file to reference it, de-stages (writes) the VM’s memory contents to the memory vVol, and directs the array to destroy and eradicate its swap vVol.
FlashArray UI View - Memory vVol in the VM Volume Group![]() |
vCenter UI View - vVol DS Browser - Memory vVol File![]() |
When the VM’s memory has been written, the ESXi host unbinds its vVols. They are bound again when it is powered on.
To resume a suspended VM, right-click it in the Web Client inventory pane, select Power from the dropdown menu, and Power On from the secondary dropdown.
vCenter UI View - Powering on the Suspended VM![]() |
Powering on a suspended VM binds its vVols, including its memory vVol, to the ESXi host, and loads its memory state is from the memory vVol. Once loading is complete, VMware unbinds the memory vVol and destroys the volume and the VASA provider will automatically eradicate it on the FlashArray.
FlashArray UI View - Eradicated Memory vVol![]() |
Recovering Deleted vVols
Deleted data and config vVols are both recoverable within 24 hours of deletion.
Throughout a VM’s life, it has a config vVol in every vVol datastore it uses. The config vVol hosts the VM’s home folder which contains its VMX file, logs, swap pointer file, and data vVol (VMDK) and snapshot pointer files. Restoring a config vVol from a snapshot and the corresponding data and snapshot vVols effectively restores a deleted VM.
vCenter UI View - vVol DS Browser - Typical VM Home Directory![]() |
Creating a Config vVol FlashArray Snapshot
As there needs to be a snapshot of the Config vVol in order to run through this recovery workflow Pure has provided several ways to snapshot the Config vVol.
FlashArray UI View - Taking an array based snapshot of the Config vVol![]() |
vCenter UI View - Pure vSphere Plugin - Create Config Snapshot from VM Overiew Page![]() |
vCenter UI View - Pure vSphere Plugin - Create VM Home (config vVol) Snapshot from Pure Storage Snapshot Management Page![]() |
There are other ways to do this, including the FlashArray CLI, having the confg vVol be part of a FlashArray protection group, using storage policies with snapshot rulesets, etc. The main thing is that by default there are no array snapshots taken for any of the vVols. Pure encourages the use of Storage Policies to leverage array based snapshots to help protect the vms from accidental deletion.
Here the Config vVol now shows three volume snapshots that were taken using the above three methods.
FlashArray UI View - Config vVol that has volume snapshots on the FlashArray![]() |
Manually Restoring a Deleted Data vVol
Without using the Pure Storage Plugin for the vSphere Client, manually restoring a deleted data vVol without a backup of the config vVol looks like this:
- In vCenter, create a new Virtual Disk that is the same size as the VMDK that you destroyed.
- On the FlashArray, recover the destroyed VMDK
- Overwrite the new VMDK - Data VVol - with the Data VVol that was just recovered.
- From the Guest OS, check that everything is recovered.
This workflow is outlined in detail in another kb and can be found here.
Manually Restoring a Deleted vVol VM
To delete a VM, VMware deletes the files in its config vVol and directs the array to destroy the config vVol and any of its data vVols that are not shared with other VMs.
vCenter UI View - Destroying a Powered Off VM![]() ![]() |
An array administrator can recover destroyed vVols at any time within 24 hours of their destruction. But because the config vVol’s files are deleted before destruction, recovering a VM’s config vVol results in an empty folder. A recovered config vVol must be restored from its most recent snapshot.
Recovering a config vVol requires at least one pre-existing array-based snapshot. Without a config vVol snapshot, a VM can be recovered, but its configuration must be recovered manually.
When a VMware administrator deletes a VM, VMware directs the array to destroy its config vVol, data vVols, and any snapshots. The array moves the objects to its destroyed objects folders for 24 hours.
FlashArray UI View - Destroyed Volumes and Volume Group for the VM that was Deleted![]() |
To recover a deleted VM, recover its volume group first, followed by its config and data vVols. To recover a single object on the array, click the icon next to it.
To recover multiple objects of the same type with a single action, click the vertical ellipsis and select Recover… to launch the Recover Volumes wizard. Select the config vVol and the data vVols to be recovered by checking their boxes and click the Recover button.
FlashArray UI View - Command to Recover Destroyed Volumes![]() |
FlashArray UI View - Selecting Volumes to Recover![]() |
While the VMs Volumes and Volume Group were restored, recall that during the VM deletion process that the Config vVol is first erased at the VMFS level from vSphere. When navigating to the VMs Directory it will be empty.
vCenter UI View - Empty Directory of the Recovered Config![]() |
In the GUI Snapshots pane, click the vertical ellipsis to the right of the snapshot from which to restore, and select Restore from the dropdown menu.
FlashArray UI View - Restoring Config vVol from Volume Snapshot - 1![]() |
When the Restore Volume from Snapshot wizard appears, click the Restore button.
FlashArray UI View - Restoring Config vVol from Volume Snapshot - 2![]() |
Restoring the config vVol from a snapshot recreates the pointer files it contains. In the Web Client file navigator, right-click the vmx file and select Register VM… from the dropdown menu to register the VM.
vCenter UI View - Registering the Recovered VM![]() |
After registration, all data vVols, snapshots, and the VM configuration are as they were when the snapshot of the config vVol was taken.