Citrix Provisioning Services (PVS) | Parallels Explains
Citrix Provisioning Services (Citrix PVS) is a streaming technology that delivers software patches, updates, and other configuration data to multiple endpoints running virtual desktops through a shared desktop image.
Citrix Provisioning Services was developed to centralize virtual machine management and reduce operational and storage costs of a VDI environment.
Citrix Provisioning Services Requirements for High Availability
There are several requirements for deploying Citrix Provisioning Services in a highly available environment. The administrators will need to ensure redundancy for SQL database, Provisioning Services servers and storage.
Essentially, administrators will first have to make the SQL database highly available through database mirroring, SQL Clustering, SQL Always On or the built-in PVS offline database support feature. Next, admins will have to install and configure two or more PVS servers for load-balancing and enable high availability in the PVS software as well. They will also have to implement a replication mechanism for the storage used for the vDisks files. And finally, the TFTP servers for Bootstrap delivery will also need to be made highly available.
How do Citrix Provisioning Services work?
Citrix Provisioning Services configure the servers in a data center, which are the Provisioning Servers deployed by Citrix’s virtualization products “Virtual Apps” and “Virtual Apps and Desktops.” One golden image generates all VMs on the Provisioning Servers, so administrators only need to apply data changes or operating system to that golden disk image to cover an entire farm of servers.
To deploy a PVS environment, you need at least two servers for high availability, which are sized correctly for your environment (memory is the critical consideration). The golden image is created from a computer built up with applications and data pre-configured, and PVS uses the vDisk image. The vDisk image usually sits on local storage on each server (other options are available).
VMs don’t have a local drive and are set to boot from the network. The first time a vDisk streams to a target device, the PVS server caches the vDisk in memory. When any number of VMs boot, they stream the vDisk from the PVS server memory – your read IOPS are now served from memory!
Since you are streaming a single vDisk to multiple VMs, the vDisk must be read-only to avoid corruption. However, Windows can’t run off a read-only disk, so where do the writes go? PVS has a ‘write cache’ which, as the name suggests, is a location for the disk writes with several options for the location of the write cache. However, DO NOT use the default option of using the PVS server for the write cache (it’s too slow and breaks PVS High Availability). Attaching a small (10-20GB) disk to each VM for the write cache is the right approach – this disk can reside on localhost storage or the storage area network.
When the VM is running, the golden image reboots and the write cache is cleared, so each boot is a ‘first boot.’
Issues in Citrix Provisioning Services
Citrix Provisioning Services (PVS) might be popular, but it does have some issues and challenges that make it troublesome to use.
Monitor Target Device Write Cache Size
The first and foremost issue with PVS is the monitoring of the target device to write cache size. Each target device of PVS has a personal area called write cache, which saves the data written by the target device. Write cache stores data commonly on the device cache or device RAM with overflow on the hard disk. Monitoring the target device to write cache size is difficult in PVS.
Troubleshooting Target Device Boot Issues
The boot process of the target device depends on multiple components and is a fairly complex process. Troubleshooting the target device hence becomes difficult. Additionally, it is also complex to gather the PVS target device log files in a single location making forensic analysis and troubleshooting extremely difficult.
Monitor Target Device Retries
Another problem that exists with PVS is the excessive number of target device retries. Client drivers perform vDisk I/O by sending requests to the provisioning server, and if the transaction fails because of a timeout, the driver receives the packet again. These retires are accumulated by the client device and are reported to the client’s statistics. Monitoring the target device retries is essential to find out if retry issues exist in the target device.
Computer Ad Account Password Sync Issue
The message “The trust relationship between this workstation and the primary domain failed” comes up multiple times because PVS has inherent issues with the streamed computer account password. The only solution to this computer ad account password sync issue is resetting the computer account password via the console.
App Crashes
As is clear from the bug CTX138627, application crashes are common within target devices that use the “Write Cache on Target Hard Disk” option. Crashes often occur with the 0xc0000005 exception code as can be seen in the event viewer. You can aggregate all application error events and search for event id 1000 or search for the 0xc0000005 exception to find if your target device suffers from this exception.
Parallels RAS simplifies it all
Parallels Remote Application Server (RAS) is a virtualization solution that can replace and even migrate from Citrix Provisioning Services. Instead of creating complicated provisioning services that you need to configure down to every last detail and assembling that require a lot of effort and maintenance, Parallels RAS Templates are straightforward.
Configure any RDSH or VDI template from the same wizard guide and deploy a fully working template in a matter of minutes. Parallels RAS offers full functionality under the same license while keeping the management and maintenance under a single pane of glass, the Parallels RAS Console. Moreover, you can deploy VMs from a RAS Template instantly by just requesting the number that you need to deploy, and the rest is done automatically by the Parallels RAS Console!
References: