Skip to main content
Pure Technical Services

vVols User Guide: Types of vVols

Currently viewing public documentation. Please login to access the full scope of documentation.

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
vvol-kb-volume-type-01.png

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
vvol-kb-volume-type-02.png

Clicking a volume name displays additional detail about the selected volume.

GUI View of a vVol's Details
vvol-kb-volume-type-03.png

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
vvol-kb-volume-type-04.png

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
vvol-kb-volume-type-05.png

vvol-kb-volume-type-06.png

 

Web Client File Browser View of a VM's Home Directory
vvol-kb-volume-type-07.png


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
types-of-vvols-kb-01.png

Note:
For simplicity, the VM in this example has no additional virtual disks.

vCenter UI View - VM Hardware Settings
types-of-vvols-kb-02.png

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
types-of-vvols-kb-03.png

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
types-of-vvols-kb-04.png

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
types-of-vvols-kb-05.png

Select New Hard Disk in the New device dropdown and click Add.

vCenter UI View - New Hard Disk Selection
types-of-vvols-kb-06.png

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
types-of-vvols-kb-07.png

Click OK to create the virtual disk. VMware does the following:

  1. For a VM’s first vVol on a given array, directs the array to create a volume group and a config vVol for it.
  2. Directs the array to create a volume in the VM’s volume group.
  3. Creates a VMDK pointer file in the VM’s config vVol to link the virtual disk to the data vVol on the array.
  4. 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
types-of-vvols-kb-08.png

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
types-of-vvols-kb-09.png

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
types-of-vvols-kb-10.png
FlashArray UI View - Updated Capacity Size of the Data vVol
types-of-vvols-kb-11.png

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  vv52.png  symbol when it appears.

vCenter UI View - Selecting Data vVol for Deletion
types-of-vvol-kb-adhoc.png

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
types-of-vvols-kb-12.png

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
types-of-vvols-kb-13.png

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
types-of-vvols-kb-14.png

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
types-of-vvols-kb-15.png

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
types-of-vvols-kb-16.png

 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
types-of-vvols-kb-17.png

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
types-of-vvols-kb-18.png
vCenter UI View - VMs Virtual Memory Size
types-of-vvols-kb-19.png

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
types-of-vvols-kb-20.png

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)
types-of-vvols-kb-21.png

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
types-of-vvols-kb-22.png

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
types-of-vvols-kb-23.png

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
types-of-vvols-kb-24.png
vCenter UI View - vVol DS Browser - Memory vVol File
types-of-vvols-kb-25.png

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
types-of-vvols-kb-26.png

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
types-of-vvols-kb-27.png

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
types-of-vvols-kb-28.png

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
types-of-vvols-kb-29.png
vCenter UI View - Pure vSphere Plugin - Create Config Snapshot from VM Overiew Page
types-of-vvols-kb-30.png
vCenter UI View - Pure vSphere Plugin - Create VM Home (config vVol) Snapshot from Pure Storage Snapshot Management Page
types-of-vvols-kb-31.png

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
types-of-vvols-kb-32.png

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:

  1. In vCenter, create a new Virtual Disk that is the same size as the VMDK that you destroyed.
  2. On the FlashArray, recover the destroyed VMDK
  3. Overwrite the new VMDK - Data VVol - with the Data VVol that was just recovered.
  4. 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
types-of-vvols-kb-33.png

types-of-vvols-kb-34.png

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
types-of-vvols-kb-35.png

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 array options image.png  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
types-of-vvols-kb-36.png
FlashArray UI View - Selecting Volumes to Recover
types-of-vvols-kb-37.png

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
types-of-vvols-kb-39.png

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
types-of-vvols-kb-38.png

When the Restore Volume from Snapshot wizard appears, click the Restore button.

FlashArray UI View - Restoring Config vVol from Volume Snapshot - 2
Screen Shot 2021-08-26 at 2.20.03 PM.png

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
types-of-vvols-kb-40.png

After registration, all data vVols, snapshots, and the VM configuration are as they were when the snapshot of the config vVol was taken.

Restoring a Deleted Data vVol with the FlashArray vSphere Plugin

The Pure Storage vSphere plugin has the ability to recover a destroyed vVol within 24 hours of when the vVol was destroyed.  There is also an integration to overwrite an existing vVol with a previous FlashArray snapshot of the vVol.  These workflows are covered in the Demo Video here.  Click to expand the workflows below.

Restoring a Destroyed vVol with the Pure Storage vSphere Plugin
  1. From the Virtual Machines Configure page, navigate to the Pure Storage - Virtual Volumes tab, select Restore Deleted Disk.

    When deleting a Data vVol, the FlashArray will destroy the volume and the volume will be in a Pending Eradication state for 24 hours.

    In this workflow example, the VM 405-Win-VM-2 has had the virtual disk "Hard disk 2" deleted from disk.  
    vvols-plugin-kb-05-Restoring-vvol-1.png
  2. After selecting the Restory Deleted Disk option, any Data vVols that have been destroyed and are pending eradication will be displayed.  Select the Data vVol that should be restored and click Restore to complete the workflow.
    vvols-plugin-kb-05-Restoring-vvol-2.png
  3. After the workflow is complete, the recovered vVol will be displayed in the Pure Storage Virtual Volumes tab.
    vvols-plugin-kb-05-Restoring-vvol-3.png
Rolling Back a vVol with the Pure Storage vSphere Plugin
  1. From the Virtual Machines Configure page, navigate to the Pure Storage - Virtual Volumes tab, select Overwrite Disk.
    vvols-plugin-kb-05-Restoring-vvol-4.png
  2. From this page, select the vVol based VM and the Data vVol from that VM that you want to use to overwrite the Data vVol with.  While this can be a different vVol VM or the same vVol VM that you want to import the data vVol to, the example show will be to roll back this Data vVol to a previous snapshot.  Here Hard Disk 2 is selected and when expanded all Snapshots for that vVol are shown.  In this case, the one selected in a Snapshot from the FlashArray pgroup "vSphere-Plugin-pgroup-2" and the Snapshot Name of "Safe-Snapshot".
    vvols-plugin-kb-05-Restoring-vvol-5.png
    In the Volume Information for the selected snapshot, we can see when the snapshot was created and the information for this vVol that will be used to Overwrite the Existing Data vVol.
    Click on Overwrite to complete the workflow. 

Restoring a Deleted vVol VM with the FlashArray vSphere Plugin

The Pure Storage vSphere Plugin has a workflow that can recover a vVol based VM that has a FlashArray snapshot of the VMs config vVol.  The section in the Demo Video that covers this workflow can be found here.  Click below to expand the workflow in the KB.

Recovering a Deleted vVol VM with the Pure Storage vSphere Plugin
  1. From the Virtual Machine view, there is a FlashArray box.  This will explain whether or not the VM has Undelete Protection.  Undelete Protection means that there is currently a FlashArray Snapshot of this VMs Config vVol.  This is required for the Undelete workflow because of the following reasons:
    1. When a vVol VM is deleted, VMware will first delete the information of the Data vVols inventory from the config.
    2. After that is complete, VMware issues a volume unbind and destroy the Config vVol.  This means that by the time the FlashArray has destroyed the Config vVol, the inventory mapping and Data vVol information has been deleted.  
    3. In order to recover a VM that has been deleted, the Config vVol has to be overwritten with the snapshot of that Config vVol
  2. From the Virtual Machine view, we can see that the last snapshot of the Config vVol on the FlashArray is at 3:17 PM on July 21st.  Which means, that if there have been any edits to the VM such as CPU, Memory, new vVols, etc, it will not be recovered.  The state of the VM at the Undelete Protection timestamp will be what is recovered.
    vvols-plugin-kb-04-VM-Details-1.png
  3. This VM has been powered off and is now going to be deleted.
    vvols-plugin-kb-07-vm-undelete-1.png
  4. From the Datastore tab, select the vVol Datastore.  Right Click on the vVol Datastore, go to the Pure Storage option, and select "Undelete Virtual Machine"
    vvols-plugin-kb-07-vm-undelete-2.png
  5. The first page "Virtual Machine" will let you select which destroyed VM you want to recover.  The caveat is that by default, a volume on the FlashArray that is destroyed has 24 hours until it is eradicated.  This page will notify how much Time Remaining the VM has to be recovered.
    vvols-plugin-kb-07-vm-undelete-3.png
  6. The next page, "Compute Resource", select the ESXi host that will recover the VM.
    vvols-plugin-kb-07-vm-undelete-4.png
  7. Review the details and then select Finish.
    vvols-plugin-kb-07-vm-undelete-5.png
  8. Power on the VM and check that everything is powering on and is healthy.
    vvols-plugin-kb-07-vm-undelete-6.png