Category Archives: Citrix

Nutanix and VMware APIs for Array Integration (VAAI) – Quick Tip

In the second of my series of Quick Tip’s with Nutanix I wanted to cover off  VMware APIs for Array Integration (VAAI).

The Nutanix platform supports VAAI which allows the hypervisor to offload certain tasks to the array. This vSphere feature has been around a while now and is much more efficient as the hypervisor doesn’t need to be the “man in the middle” slowing down certain storage related tasks.

Nutanix support all the VAAI primitives for NAS

  • Full File Clone
  • Fast File Clone
  • Reserve Space
  • Extended Statistics

If you are not aware of what these primitives mean, I’d suggest reading the VMware VAAI Techpaper.

For both the full and fast file clones an  NDFS “fast clone” is done meaning a writable snapshot (using re-direct on write) for each clone is created. Each of these clones has its own block map meaning that chain depth isn’t anything to worry about.

I’ve taken the following from Steven Poitras’s Nutanix Bible

The following will determine whether or not VAAI will be used for specific scenarios:

  • Clone VM with Snapshot > VAAI will NOT be used
  • Clone VM without Snapshot which is Powered Off –> VAAI WILL be used
  • Clone VM to a different Datastore/Container –> VAAI will NOT be used
  • Clone VM which is Powered On –> VAAI will NOT be used

These scenarios apply to VMware View:

  • View Full Clone (Template with Snapshot) –> VAAI will NOT be used
  • View Full Clone (Template w/o Snapshot) –> VAAI WILL be used
  • View Linked Clone (VCAI) –> VAAI WILL be used

What I haven’t seen being made clear in any documentation thus far (and I’m not saying it isnt there, I’m simply saying I havent seen it!), is that VAAI WILL only work when the source and destination resides in the same container. This means consideration needs to be given as to the placement of ‘Master’ VDI images or with automated workloads from vCD or vCAC.

For example, if I have two containers on my Nutanix Cluster (Master Images and Desktops) with my master image residing in the master images container, yet I want to deploy desktops to the Desktops container VAAI will NOT be used.

I don’t see this as an issue, however more of a ‘Gotcha’ which needs to be considered at the design stage.

Citrix PVS | Windows 7 BSOD

During a recent project, I was at the deployment stage of the PoC. This particular piece of work was using VMware vSphere as the underlying hypervisor, with Citrix XenDesktop as the broker solution and Citrix Provisioning server for the image deployment.

It was a relatively small PoC, just to test out the designs to ensure they would stand up in the pilot phase, and to ensure we had relevant communication ports open.

The install went very smoothly, until I started to create the VHD’s with Provisioning server and boot test machines from that VHD image. Whilst the image conversion completed without any ‘major’ errors in the log (there were a number, but not to worry about) and the image we copied was in perfect health, the VHD would constantly produce a BSOD.

Now, I had already followed Citrix recommendation to ensure the servers and the desktops were making use of the VMXNET3 network adapter. I had also installed the Microsoft hotfix described here to resolve the known issues with the VMXNET drivers to no avail.

After going through a few different troubleshooting steps mentioned in forums (such as removing the MS hotfix above, then removing the PVS software from the target, reinstalling the hotfix the the PVS software) I was starting to become a little frustrated. A colleague then cast his eye over everything when we discovered the the VMware tools were out of date on both the desktop image and the PVS server. Although these had been initially updated after the VM templates were deployed  the hosting infrastructure was upgraded from 5.0U2 to 5.1 U1 during that day, carried out by a separate team within the customers IT department. As soon as the tools were updated to the latest revision on both the PVS server and the desktop image, the image was re-imported into the PVS server, and as if by magic the issue was resolved.

Lesson learnt – Keep an eye on VMware tools versions and ensure (where possible) they are up to date and consistent when using Citrix PVS.

EMEA vBrownBag Presentation

As I mentioned in the post EMEA vBrownBag I’m Presenting!! last night I presented alongside my Xtravirt colleague Grant Friend on the EMEA vBownBag. We had a few people on the WebEx live and had some good questions asked throughout the session.

The presentation was a re-run of the presentation we ran at the July 2013 London VMUG and covered some pinpoints and tips and tricks post a 4K seat VDI deployment across EMEA.

A big thanks to Gregg Robertson and the vBrownBag team for inviting us on, and thanks to Grant Friend for presenting alongside me again!!

If you missed the presentation, you can view below.


Windows 7 – Default Profile for VDI

I’ve managed to get a fair few EUC projects under my belt now ranging from small 50 seat deployments up to 4000 seat cross country deployments. Some have been from cradle to grave, whilst others have been bit part roles.

I’ve seen multiple issues in some deployments, many of which generally point back to the default profile. One common theme I’ve noticed (especially with Windows 7) is people often underestimate the importance of the Windows 7 default profile in their master image, so much so, I decided to write some “How to…” posts on a tried and tested method of creating a Windows 7 image with a correctly configured default profile. I wrote three posts which can be found over on my company blog site:

Windows 7 – The Default Profile Part 1

Windows 7 – The Default Profile Part 2

Windows 7 – The Default Profile Part 3

If you are planing an EUC deployment or even working on one now, I’d suggest having a quick read.


Office (Outlook) Customisation with VDI

During a recent engagement I hit upon an issue where I had a stateless desktop, no roaming profiles and no persona management available to me, yet my customer wanted to have Microsoft Outlook automatically connect to Exchange without any user interaction.

I messed around with a few ideas, but didn’t want to make any dramatic changes to my customers current environment as this was all for a PoC. After some trial and error with various methods I decided to use the Office Customization Tool to forcefully inject the Exchange profile settings into the Office installation. This is not something I have done for a long time since my desktop support days, so thought I would write this post to refresh mine and perhaps others memories.

I’m not going to delve into what else the Office Customization tool in Office 2010 can do, Microsoft have this covered off in TechNet here

Firstly either ensure you have your Office 2010 media mounted to your CD/DVD drive or  you have the media available on a network share.

Open the command prompt and change to the location of MS Office 2010.

Launch the OCT by issuing the following command: setup.exe /admin 

Select Product

You will be promoted if you would like to create customzation or modify an existing one, select create new and select your version of Office from the list.

Welcome Screen

From the navigation pane select Outlook Profile and select ‘New Profile’, give the profile a meaningful name.

New Profile

From the navigation pane select ‘Add Accounts’ and Select ‘Customize additional Outlook profile and account information’  then click ‘Add’.

Add AccountA new wizard will appear that allows you to choose a number of different accounts, in my case I selected Exchange, then click ‘Next’.

Exchange SettingsYou are then prompted to add your Exchange settings (don’s add mine it’s just an example!) Before clicking next click ‘More Settings’ and select the ‘Cached Mode’ tab.

Exchange Cached ModeSelect the option to ‘Configure Cached Exchange Mode’ and ensure all boxes are unchecked.

Click ‘OK’ then Click ‘Finish’. Ensure that the new account is the selected account for both ‘Deliver new mail’ and ‘Default e-mail account’ options.

default Accounts

Save the file to the root of your C:\ by clicking ‘File>Save As’ and ensure the filename has no spaces in it.



You are now ready to install Office using your custom file. To do so, execute the following command: setup.exe /adminfile c:\outlookmsp.msp (replace with your filename!!)

CMD LaunchAfter a few seconds pause, the Office Installation screen will appear, simply run through the Wizard.

Office Wizard

Citrix ICA Piggyback

During a recent customer engagement deploying Citrix XenDesktop 5.6 to 4000 users across EMEA, we came across an issue for a group of users that had a requirement to access a Citrix Metaframe XP farm hosted on a W2K server to access some legacy apps hosted by a third party.To meet this requirement we used something called ICA Piggyback.

So what is ICA Piggyback? Essentially, it allows us to use a double hop process to bounce from one farm to another allowing us to make use of different ICA client versions.

I published an ICA file from our XenApp 6.5 farm to the specific group of users, however we had complaints that when the published desktop was maximised to a full window the session would disconnect. Also if the user left the desktop as a window, the session would randomly disconnect at random intervals even when the desktop was in use.

The desktops published from Citrix XenDesktop were running Citrix Receiver 3.3, so I started to investigate the issue by ensuring we had met current supported levels.

A quick look at the receiver documentation showed the target destination was unsupported, not surprising really….

My first approach was to contact the third party to see if it was possible to access the legacy applications on a supported platform, to no avail.  Therefore, it was back the drawing board.

I started searching through the Citrix documentation looking for a client that supported both W2K and Metaframe XP, eventually finding the XenApp Plugin for hosted Apps version

After finding what was going to be client for the job, I had to figure out how I could get this client to the users. After some head scratching, I figured I had two options, package the application, or deploy it out from a XenApp server and use a piggyback method.

We had a number of Citrix XenApp 6.5 servers available in a farm, yet I didn’t want to install such an old client on these servers in case I lost any functionality going forward. We had a separate requirement to host some legacy IE6 applications, so I deployed out a small Citrix XenApp 5.0 farm hosted on W2K3 R2.

After a number of functional tests for performance and stability, this allowed for smooth connections from a hosted desktop, running Citrix Receiver 3.1 passing through a XenApp 5 farm, into a Metaframe XP farm.

Whilst this is not a permanent solution it does provide a handy workaround and functionality to a number of users whilst the final legacy apps are retired and replaced.