Saturday, May 31, 2008

Best practices for deploying Citrix on vmware ESX

There is a discussion going on dutch site about how to run citrix on VMWare. They came up with conclusion that if we disable balloon driver on the vm's which get installed as a part of the vmtools it will perform better. KB article from VMWare explains how to disable the balloon driver


The goods:
Virtual Infrastructure 3
Windows 2003 Std (or Enterprise) Edition R2 (x86, not x64)
Citrix Presentation Server 4.0 (yes, I know, the old one ;))
The tips:
First this: it all depends on the applications used! Context switches is the key here...
Use Windows 2003, not Windows 2000
Don’t P2V your servers, but use clean templates
Make sure the correct HAL (single or multi) is installed in the virtual machine. Otherwise, your vCPU will spike.
Always assign 1vCPU. If necessary, add a 2nd vCPU. Do not use 4 vCPUs!
Use 2 GB to start. Scale up to +-4 GB of vRAM if necessary
Use 1 .vmdk for your system partition (C:\ or other remapped drive letter) and 1 separate .vmdk for your program files.
Put the page file on the 2nd .vmdk
Important: disconnect any .iso file in your virtual CD-Rom
Use roaming profiles and cleanup your profiles at logoff
Disable sound for your published apps
Install the UPH service (download it here)
User sessions: for me, 30 users on a VM is the sweet spot. Do not expect to get as many users on it as on a physical box!
Scale out, not up. A major advantage of VM is to clone/NewSID/sysprep existing servers and put them into your existing Citrix farm. Just stop & disable your IMA service, clean up your RMLocalDB (if you use enterprise) and NewSid the thing. Refer to this support article for more info.
Use dual core or quad core systems. This because ESX will have more CPU to schedule its vCPUs on.
Don’t ever use a 2 vCPU Citrix virtual machine in a 2 pCPU physical machine!
Do not install the memory ballooning driver while installing the VMware Tools
Do not use a complete installation Vmware tools: there is an issue with roaming profiles and the shared folders component. See my previous article for more info.
Disable COM ports, hyperthreading, visual effects & use speedscreen technology where possible.
Use snapshots when installing applications or patching your servers (yes! With VMware you can do this!). In case of disaster, you can still revert to the original working server without using backups. Make sure all snapshots are removed ASAP when finished!
Always check that there are no snapshot leftovers (f.e. the infamous _VCB-BACKUP_ when using VCB)
Don’t forget you can use DRS rules to run your Citrix servers on separate physical hosts.
Check out this vmworld 2006 presentation
And last but not least: do not forget to read ESX's (excellent) performance tuning white paper.

No comments: