DataCore VDI Services
In this topic:
Creating a configuration volume
About DataCore VDI Services
DataCore VDI Services is a tool that integrates and automates the creation of Virtual Desktop Integration (VDI) instances (a special case use that share a commonality of operating system and applications). By leveraging the unique architecture of the SANsymphony™ Software-defined Storage platform, and coupling it with Microsoft Hyper-V, DataCore VDI Services generates stateful, high performance virtual machines (VMs) with a significant reduction on physical disk load.
The creation and maintenance of VDIs is integrated and automated in the DataCore VDI Console. The console provides a collection of wizards, powered by Windows PowerShell scripts, to assist with the quick creation of configuration file volumes, VDI source images, and VDI clones. Administrators can easily create VDIs and deploy to a standalone configuration of one DataCore Server in a server group or a two-node cluster comprised of DataCore Servers with Microsoft Server 2012 R2 Failover Cluster software. Clustered VDIs are recognized in Failover Cluster Manager. Once created, VDI clones can be modified and maintained with Hyper-V Manager or Failover Cluster Manager as appropriate.
In this infrastructure SANsymphony software is running alongside Microsoft Hyper-V in order to leverage the strengths of both softwares. VDIs use virtual machine boot disks in the VHDX (dynamically expanding virtual hard disk) format, which is designed to handle current and future workloads. The virtual machine boot disks are created on thinly provisioned virtual disks which leverage the caching capabilities of SANsymphony software. The virtual disks are made available to Hyper-V by serving them through a non-latency SANsymphony local loopback port on the server. VDI source "master" images with a VHDX boot disk are used to create VDI clones of the same image. The clones use a blank VHDX file and reads are redirected to the source image. Only data not found on the source will be written to physical disk of the clone. This results in VDIs with significant reduction in disk I/O and high performance boot disks that do not need to be deduplicated. As disks have traditionally been the single cost item prohibiting the economical deployment of a VDI, DataCore VDI Services can reduce the cost per virtual desktop to well below that of a physical desktop.
DataCore VDI Services is installed with the Server component during SANsymphony installation and does not require a special license.
Definitions
- VDI (Virtual Desktop Infrastructure Virtual Machines) - Discrete stateful virtual machines (VMs) used as desktops that users may remotely connect to.
- VDI source image - A master VDI, from which VDI clones are imaged. A system may have multiple VDI source images.
- VDI clone – A virtual desktop VM, cloned from a VDI source image.
- Configuration volume - A volume used to store the configuration files of the source images and clones created from it.
Requirements
- SANsymphony 10.0 PSP 2 or higher
- Windows Server 2012 R2 operating system (Datacenter or Standard) or higher with the Hyper-V role enabled (provided the operating system version is supported by DataCore software. The Failover Clustering feature must be installed if deploying cluster virtual machines. Only English language versions are supported. (Refer to Microsoft documentation for details on adding roles and installing features.)
- Virtual switches should be configured in Hyper-V.
- VDIs can be deployed in two configurations: a standalone configuration of one DataCore Server in a server group or a two-node cluster comprised of DataCore Servers with Microsoft Server 2012 R2 Failover Cluster software.
DataCore VDI Services is not supported and has not been tested for combined use with the following SANsymphony features:
- SANsymphony disk pools of type Shared Multi-port Array (SMPA).
Best Practices
One of the main keys to performance of the VDI clone is minimizing disk I/O. To accomplish this, it is important to maintain as much commonality between the VDI source image and the VDI clones created from it. One way to achieve this is to install on the VDI source image all of the applications and other software commonly used on the VDI clones. As the VDI clones use this software the disk reads will be redirected to the single VDI source image. If this information is accessed often by multiple VDI clones there is an increased likelihood that the data will be in cache which in turn will decrease physical disk I/O.
To optimize VDI performance:
- Minimize the number of VDI sources images per host.
- Once a VDI source image is created and VDI clones have been created from it, do not modify the VDI source image. Modification will cause the following detrimental performance effects:
- New data written to the VDI source image will cause the old data at the location of the new writes to be physically written to each of the existing VDI clones. This could result in significant disk I/O, which in turn would result in a performance hit to the VDI clones.
- Instead of each of the VDI clones reading this now migrated data from a common VDI source image, the reads will be from the individual boot drives of the VDI clones. This will increase disk I/O.
- Minimize the number of software updates (OS and application) allowed on the VDI clones. Again, it is important to maintain as much commonality between the VDI source image and VDI clones as possible in order to maintain performance. If a major update to the operating system is required, such as a Service Pack, we recommend creating a new VDI source image with the update, create new VDI clones from the new source, and then migrate the users to the new VDI clones.
- To economize storage allocation unit (SAU) consumption, we recommend using disk pools with a 4 MB SAU size.
- DataCore VDI Services is a tool that uses both SANsymphony and Microsoft PowerShell cmdlets to create and maintain Hyper-V virtual desktop instances (VDIs). These VDIs are differential VDIs based off of a source VDI. Using differential VHDX files for the VDIs result in VDIs that do not duplicate the information on the source VDI making data deduplication unnecessary.
- While the script files are running, the PowerShell windows are exposed to administrators for additional information.
- Events from DataCore VDI Services are reported in the SANsymphony Event Log and are also collected in support bundles.
DataCore VDI Console
The console runs independently from the SANsymphony Management Console. The tool should be run on the DataCore Server where the VDIs will be created and will use an existing SANsymphony disk pool on that server to create the configuration volume and VDIs.
To open the tool:
- Open the console from Apps menu>DataCore>DataCore VDI. The software runs locally on the DataCore Server.
- In the Connect to Server Group dialog box:
- Connect to the local server.
- To login to the server using the same credentials that were used when logging into Windows, select the Use default credentials check box. Otherwise, clear the check box and enter the required authorized credentials. (If credentials are domain-wide, include the domain with the name for example: DOMAIN\user name.)
- Click Connect to continue.
The Getting Started page contains hyperlinks to the wizards used to perform all actions in the console. The wizards can also be started directly from the ribbon. The Help button opens the SANsymphony Help from the DataCore VDI Console.
Getting Started
Follow the instructions below. Click on the links for additional instructions.
Step | Procedure |
---|---|
1 |
Create a volume to store virtual machine configuration files. See Creating a Configuration Volume. This is a required step. |
2 |
Create the VDI source image, which will be used as the source image for the VDI clones. See Creating a VDI Source Image. |
3 |
Create VDI clones from the source image. See Creating VDI Clones. |
Creating a Configuration Volume
The default location for the Hyper-V virtual machine configuration files is on the boot drive (default path is C:\ProgramData\Microsoft\Windows\Hyper-V). As with most applications, the best practice is to change the location of application data to a different drive. In the case of Hyper-V, storing the virtual machine configuration files on a different drive will lessen the chance of these files impacting performance of the VDIs. A SANsymphony virtual disk will be used to create the volume. The volume will store the configuration files of the source images and clones created from it.
The Create Configuration Volume wizard will use the requirements entered for the volume and automatically create a SANsymphony virtual disk of the specified size, serve the virtual disk through a loopback port, and create the volume. The volume will be initialized, formatted, assigned a mount point, and then mounted for use. If Failover Clustering is to be used, this configuration volume will be made into a shared cluster resource as required for clustered VDIs.
Creating a configuration volume is a required step and ensures correct behavior for all other operations in the tool.
To create a configuration volume:
- In the Getting Started page, click Create VDI Configuration Volume to start the wizard.
Alternatively, the wizard can be started by clicking Create Configuration Volume in the Ribbon>General tab.
- The wizard opens. Click Next to continue.
- Choose the deployment type:
- Select Standalone if VDIs will only be deployed locally to a standalone DataCore Server configuration and not in cluster nodes.
- Select Cluster if VDIs will be deployed to a 2-node cluster.
- Click Next to continue.
- Configure the volume:
- Enter the size of the configuration volume in gigabytes. The maximum size is 2,048 GB (2 TBs).
- Select the pool from which the volume will be created. For cluster deployments, select another pool to create a mirror of the volume for cluster deployments. (The mirror selection will not be available for standalone deployments.)
- Enter a name for the configuration volume.
- Click Next to continue.
- Confirm the entries made in the wizard and click Next to create the volume.
- The script file will begin and progress will be displayed in a PowerShell window.
- When the script finishes, click Finish to close the wizard.
If a message appears on the screen asking you to format the disk, click Cancel as the disk is already formatted.
Creating a VDI Source Image
The Create Source Image wizard creates a Hyper-V virtual machine that will serve as the VDI source image. The virtual machine will use a SANsymphony virtual disk as the boot drive. The boot drive will either be a copy of an existing VHDX file (dynamically expanding virtual hard disk) or a blank VHDX file (raw boot disk) on which an operating system can be installed later. The source image will have a legacy network adapter to support PXE (network booting) in order to install software over the network.
The source image is used to create clones deployed as VDIs for users.
VDI Source Image virtual machines will be created with Hyper-V Network Adapters. After creating the Source Image, add a Legacy Network Adapter if creating the source image via PXE boot.
To create a VDI source image:
- In the Getting Started page, click Create VDI Source Image to start the wizard.
Alternatively, the wizard can be started by clicking Create Source in the Ribbon>General tab.
- The wizard opens. Click Next to continue.
- Choose the deployment type:
- Select Standalone if VDIs will only be deployed locally to a standalone DataCore Server configuration and not in cluster nodes.
- Select Cluster if VDIs will be deployed to a 2-node cluster.
- Click Next to continue.
- Choose the source image type and follow the directions for the selected type:
- Create a source image from an existing VHDX (dynamically expanding virtual hard disk) file.
- Click Browse to select the VHDX file to use.
- Select the disk pool to use as a storage source. This pool will be used to create a virtual disk to which the VHDX file will be copied.
- If the source image will be deployed as a cluster, select another pool that will be used to mirror the virtual disk. (The option is only available for clusters.)
- Enter the name of the VDI source image.
- Click Next to continue. The virtual hard disk created will be the size of the source VHDX file.
- Create a source image with a blank VHDX file and install the operating system later.
- Enter the name of the VDI source image.
- Select the virtual hard disk size.
- Select the disk pool to use as a storage source. This pool will be used to create a virtual disk to which the operating system can be installed at a later time.
- If the source image will be deployed as a cluster, select another pool that will be used to mirror the virtual disk. (The option is only available for clusters.)
- Click Next to continue.
- Create a source image from an existing VHDX (dynamically expanding virtual hard disk) file.
- Choose the virtual machine properties:
- Enter the amount of memory in megabytes for the source image.
- Select the configuration file that was created to use for this source image.
- Select the Hyper-V virtual switch to use.
- Click Next to continue.
- Confirm the entries made in the wizard and click Next to create the source image.
- The script file will begin and progress will be displayed in a PowerShell window.
- When the script finishes, click Finish to close the wizard.
- Add a Legacy Network Adapter if creating the source image via PXE boot.
- Prepare the source file for cloning. Install the operating system, critical updates, and common applications on the source image. Run a system preparation tool, such as Sysprep.
- Shut down the source image and do not restart it.
Creating VDI Clones
The Create VDI Clones wizard creates VDI clones from a source image that has been created in the tool. Clones can be deployed as a cluster or standalone VDI. A cluster is created from a mirrored virtual disk and a standalone is created from a single virtual disk on the local DataCore Server.
To create a VDI clones:
- In the Getting Started page, click Create VDI Clones to start the wizard.
Alternatively, the wizard can be started by clicking Create Clones in the Ribbon>General tab.
- The wizard opens. Click Next to continue.
- Choose the deployment type:
- Select Standalone if VDIs will only be deployed locally to a standalone DataCore Server configuration and not in cluster nodes.
- Select Cluster if VDIs will be deployed to a 2-node cluster.
- Click Next to continue.
- Choose the storage configuration options:
- Select the source image for the clones.
- Select the configuration file where the source image is saved.
- Select the disk pool to use as a storage source for the clones. This pool will be used to create the differential snapshots created from the source image virtual disk.
- If the clones will be deployed as a cluster, select another pool that will be used to mirror the virtual disk. (The option is only available for clusters.)
- Click Next to continue.
- Choose the virtual machine configuration options:
- Select the number of clones to create.
- Select the virtual switch for the clones to use.
- Select the memory in megabytes to assign to the clones.
- Enter a base name for the clones to use. Each clone will be named according to the base name with a number attached.
- Select the starting number for the VDI clones.
For instance, if 3 clones are created with the base name "Clone_SI_1" and the starting number is 1, the clones will be named Clone_SI_1-1, Clone_SI_1-2, and Clone_SI_1-3. - Click Next to continue.
- Confirm the entries made in the wizard and click Next to create the clones.
- The script file will begin and progress will be displayed in a PowerShell window.
- When the script finishes, click Finish to close the wizard.
Resetting VDI Clones
The Reset VDI Clones wizard restores one or more VDI clones to the original state of the VDI source image. This is accomplished by a revert of the snapshot.
This operation is irreversible and permanently destroys the current state of the specified clones.
- In the Getting Started page, click Reset VDI Clones to start the wizard.
Alternatively, the wizard can be started by clicking Reset Clones in the Ribbon>General tab.
- The wizard opens. Click Next to continue.
- Choose the clones to reset:
- Select the clone base name.
- Select the starting number for the VDI clones. To reset clones that do not have contiguous numbers, rerun the wizard.
- Select the number of clones to reset.
For instance, assume the base name is "Clone_SI" and that clones Clone_SI-1 through Clone_SI-10 exist. To reset the clones Clone_SI-2 and Clone_SI-3, select "2" as the starting number and "2" as the number of clones to reset.
- Click Next to continue.
- Confirm the entries made in the wizard and click Next to reset the clones.
- A confirmation message appears. Select the check box to confirm your intentions and click Yes to continue. The script file will begin and progress will be displayed in a PowerShell window.
- When the script finishes, click Finish to close the wizard.
Deleting VDI Clones
The Delete VDI Clones wizard deletes one or more VDI clones as well as the associated virtual machines, virtual disks, and configuration files that were generated when the clones were created.
This operation is irreversible and permanently destroys the specified VDI clones. The data from deleted clones cannot be retrieved.
To delete VDI clones:
- In the Getting Started page, click Delete VDI Clones to start the wizard.
Alternatively, the wizard can be started by clicking Delete Clones in the Ribbon>General tab.
- The wizard opens. Click Next to continue.
- Choose the clones to delete:
- Select the clone base name.
- Select the starting number for the VDI clones. To delete clones that do not have contiguous numbers, rerun the wizard.
- Select the number of clones to delete.
For instance, assume the base name is "Clone_SI" and that clones Clone_SI-1 through Clone_SI-10 exist. To delete clones Clone_SI-2 and Clone_SI-3, select "2" as the starting number and "2" as the number of clones to delete.
- Click Next to continue.
- Confirm the entries made in the wizard and click Next to delete the clones.
- A confirmation message appears. Select the check box to confirm your intentions and click Yes to continue. The script file will begin and progress will be displayed in a PowerShell window.
- When the script fsinishes, click Finish to close the wizard.
Monitoring VDI Resources
There are three critical hardware resources required to support a VDI load on the host: CPU, memory and disk. If any of these resources run out, the performance of a VDI clone will deteriorate and result in unsatisfactory performance. Monitoring performance metrics of these resources while under a load can be crucial in determining if there is sufficient resource on the host.
Windows Performance Monitor can be used to monitor CPU and memory. The following performance counters will provide insight into key resource usage:
- Hyper-V Hypervisor Logical Processor/%Total Run Time: This counter will show the true CPU usage of the host. It is important to note that neither the system processor counters nor the CPU usage displayed in Task Manager reflect CPU usage of Hyper-V VMs.
- Memory/Available Mbytes: Shows remaining memory available to the host.
SANsymphony performance counters can be used to monitor disk resources and their efficient usage via SANsymphony cache counters. Performance counters can be viewed in the Live Performance or Recorded Performance tools in the SANsymphony Management Console or exported to Windows Performance Monitor using the Integration with Windows Perfmon tool:
- Cache Read Hits / sec and Cache Read Misses / sec - Found under the DataCore Servers category for the specific server instance, these counters will show the efficiency of the VDIs in terms of how effective the read caches are. The redirected disk I/O from the VDI boot VHDX to the VDI source VHDX will show as Cache Read Hits and those that are forced to go to disk are Cache Read Misses. In an ideal VDI environment the Hits will far outnumber the Misses.
- Physical disk – Counters for physical disks that are used in the pools are useful for determining if the disk pools have sufficient resources for the VDI load. These counters can be found under the Physical Disks category and by selecting instances associated with pool disks.
- Average Time / Read
- Maximum Time / Read
- Average Time / Write
- Maximum Time / Write
- Total Pending Commands
Excessive Maximum Times and Total Pending Commands may indicate a need for additional disks in the pool.