Run a Virtual Desktop streamed with PVS on Citrix Hypervisor nested in VMware ESXi.
Bijgewerkt op: 30 jul. 2022
Let’s play around with the Citrix Hypervisor and Citrix Provisioning Services.
It’s been a while since I used Citrix Hypervisor in a production or even in my lab environment so let’s see if we can still run this nested on a VMware ESXi 7 host and stream a virtual desktop on it😊
I tried log all my steps and create screenshots.. Remark that I all ready had a running Citrix environment in place (Delivery Controller, License server, Provisioning Server(s), Storefront, ADC etc.)
At this moment the latest version is Citrix Hypervisor 8.2 LTSR Premium Edition with Cumulative Update 1 - Citrix and this is the LTSR edition this is the latest version.. I suspect Citrix is not putting much development effort in this… but looking at the support date this hypervisor maybe still a valid option to use as a hypervisor for XenDesktop or XenApp workloads. (especially with the PVS accelerator). Remember this hypervisor is included within your Citrix licensing.
And despite some comments I hear now and then... its not dead yet, don't know for how long but..still support!
Keep in mind tough that currently there is no vTPM support. Citrix commented they are developing this.. but hmm. Could be tricky when planning to move to Windows 11. Not a problem in this case just sticking with Windows 10 for now.
Anyway let the play commence:
First create a DNS (and PTR) record for your new host:
Now let’s switch to VMware and create a new VM
I did not create screenshots of these steps but if this step is already a problem please stop anyway 😉
The first interesting choice is the Guest OS.
The dom0 is based on CentOS 7.5 with some modifications but the Kernel is based on Linux 4.x so I decided to go with this one.
My Virtual Hardware settings:
CPU: Enable the Hardware Virtualization and the Performance Counters
Harddisk: 46 GB minimum 70 GB recommended so let’s go with that (might be tight!)
SCSI controller: VMware Paravirtual is supported OOB! (at first is used the LSI Logic SAS but hey this is even better I guess)
NIC: VMXNET3 same as SCSI controller… works OOB !(so I switched to this instead of the E1000 I initially used). I created a trunk Distributed Port Group in vSphere for my nested VSAN lab so decided use this one and tag the VLANs in the hypervisor itself.
When done.. start the VM attach the Citrix Hypervisor ISO and lets start installing!
I enable “thin provisioning”.. its only Writecache and one VM to build the PVS Image
Yeah… no…… skip the verification this is only a lab..
I used a trunk port so I need to tag the VLAN
Let’s install the PVS Accelerator supplemental pack right away when this supplemental packs question comes along: (you can do this later from the console if you wish to but in these notes I do it right here)
Mount the ISO to the VM:
I still believe! Skip verification!
Server will reboot now
Just wait a couple of sec
Yeah it runs!
Install XenCenter on your management server or local workstation and start it up:
Because it’s just my lab I choose not to require a master password
Disable the show this dialog…(once again only lab)
Hm, Alert showing: Citrix HyperVisor 8.2 CU1 has reached End of Life for Express Customers...
This alert is interesting… this is the latest version but reached EOL? O wait for the express customers.. I still got the feeling Citrix is dying this off… So you need to be licensed. Ok! I do have a valid Citrix License server with some demo premium licenses so let’s configure that.
Now let’s configure the networking, not going to stream PVS targets over my management network…
Choose External Network
Enter a name you believe in:
Enter the correct VLAN ID
And there it is:
Enable the PVS-Accelerator:
I just want the power of memory! O wait "Not enough Control domain memory" .. hm. Hit Cancel:
Switch to the Memory tab. Ah yeah its only 1,8 GB in size… click on the Control Domain memory:
To adjust the host needs to be in maintenance mode. Click on “Enter maintenance mode”
Now adjust the memory
I’m changing to 12GB
When done rebooting, exit the maintenance mode and repeat the PVS Accelerator configuration.
When done and you switch to the Object view in XenCenter and open the Virtual Disks there is the PVS Cache disk (who will live only in memory because of the choice of “only memory”
Create the Hypervisor connection in PVS:
Right click on Hosts and click “add host”
Click verify to .. well.. verify the connection
Build PVS Image:
Create a new VM to start the building of a new PVS image:
Install Media: Choose the installation media.. multiple ways here.. I attached a litetouch.iso to the VM in VSphere so can install Windows 10 from MDT. Of course alternatively you can also attach an OS ISO…
BIOS: I had to go with BIOS. Whatever I tried I couldn’t get UEFI to work.. when booting it just get stuck in TianoCore Splash.. maybe I will figure this one out later..
Delete all networks except the VDI network..
Start the VM:
Now Install windows 10
Important: Install the Windows OS with a different system name than the name its getting in PVS later on!
· Took a a walk with the dog in a forest nearby..
· Picked up my daughter at the local theatre..
· Cleaned up the pool and checked the PH and chlorine..
· Empty the dishwasher..
Well, eventually it gets done!
Login when ready!
First install management tools (XenTools or Citrix VM Tools.. all the same) I downloaded this to a temp shared folder.
Disallow automatic management agent updates:
Reboot and reconnect again, ah the tools are working it will prompt for RDP connection now:
Next step is to install PVS Device Target software:
Reboot the VM
Install the Citrix VDA now:
Enter your Citrix Delivery Controller
Click Test Connection to verify connection and click ADD:
Reboot, login again
I will do a quick image optimization with the Citrix Optimizer.. Enough for now but in my experience this is not enough for production environments!
Always defragment the drive:
Shutdown the VM.
Double Check the boot order of the VM, Hard disk needs to be first in this step:
In my LAB I don’t use PXE boot or BDM for PVS but the ISO way:
You can’t upload the ISO to a datastore as I’m used to in vSphere. You need to add an ISO Storage Repository. Multiple options but I choose the Windows File Sharing way:
Attach a PVSboot ISO to the BUILD VM
Startup the build VM, login and start the “Imaging Wizard”
Now I will enter the name system name it will get in PVS:
Disable the Recovery partition
I’d like some more free space so I edit the partition size
When the VM is shutdown, edit the boot order again:
Start the VM again, it will now boot from the PVS boot ISO:
Login to OS so the capture can begin:
And the capture is done! Shutdown the VM
Now we need a template to create the PVS target. Ill show you one way to do this.. maybe a litte dirty way…but I need a template with a formatted Writecache disk (not using BISF here..)
It will create the template VM now. When done we need to add a writecache disk now. click the VM and go to the Storage tab and click "add"
Start and login to the template VM
Initialize and format the disk
When done shut down the VM..
Edit the template and detach the CTXHVBUILD disk
Edit the boot order once again so the DVD-Drive is first again
Now convert to Template
Switch back to PVS:
Right click the Vdisk you created earlier and change the Access mode to Standard Image and the WriteCache to RAM with overflow to disk
Let’s create the Device collection now and following I will use the streamed VM setup wizard. Of course you can choose the Citrix Virtual Desktop Setup Wizard to also create the necessary Machine Catalog and Delivery Group from one wizard… I'm doing it the classic way... creating a two step rocket.
Of course enable the PVS Accelerator
Hm.. getting "An unexpected MAPI error occurred" and in the details " The address specified is already in use by an existing PVS_server object ) when creating the PVS targets..
To fix this, remove the current Network interface from the template and re add one.
Restart the Streamed VM setup wizard again, now it is successfully!
Yes, here they are in XenCenter and the PVS Accelerator is enabled.
Now let’s start these bad boys so they can boot in the background!
Meanwhile go to Citrix Studio
Add Hosting so the Delivery Controller can talk to the Citrix Hypervisor:
Create the Machine Catalog:
Lets check if the machines did register themselves:
Looking good 😊
Create Delivery Group so we can actually login to these desktops:
Cause this is my LAB I let any authenticated user see the desktop..
The final step… lets login!
Login to StoreFront, there is the desktop.
And we have a session!
Performance is quite all right for a Streamed desktop on a nested Citrix Hypervisor within VMware ESXi 7 host!.. (won't recommend it for production tough)
Well quite a long one (mainly to all the screenshots)
Conclusion so far: This works quite allright, Citrix Hypervisor still great to use for your desktop workloads.. and once again its included in your Citrix license.
Hope you think this was fun! (at least I did!)
Question or remarks? please let me know!