Local Storage and Desktop Virtualization

4

Why are so many people unwilling to challenge traditional buying patterns and instead use critical thinking to solve problems?

First a joke…but one that I see all to often and not just related to this discussion but in all areas of life.

Start with 5 monkeys locked in a cage.

Hang a banana from the roof on a string and place a set of stairs under it.

Before long the monkeys will go to the stairs and start to climb toward the banana.

As soon as the first monkey touches the stairs, hose the other monkeys with cold water.

After a while another monkey makes an attempt with the same result. All the others are sprayed with cold water.

Pretty soon, when another monkey tries to climb the stairs, the other monkeys will try to prevent it.

Now, put away the cold water. Remove one monkey from the cage and replace it with a new one. The new monkey sees the banana and goes to climb the stairs. To his surprise and horror, all of the other monkeys attack him. After another attempt and attack, he knows that if he tries to climb the stairs, he will be assaulted.

Next, remove another of the original five monkeys and replace it with a new one. The newcomer goes to the stairs and is attacked. The previous newcomer takes part in the punishment with enthusiasm!

Likewise, replace a third original monkey with a new one, then a fourth, then the fifth. Every time the newest monkey takes to the stairs, he is attacked.

Most of the monkeys that are beating him have no idea why they were not permitted to climb the stairs or why they are participating in the beating of the newest monkey.

After replacing all the original monkeys, none of the remaining monkeys have ever been sprayed with cold water.

Nevertheless, no monkey ever again approaches the stairs to try for the banana.

Why not?

Because as far as they know that’s the way it’s always been done around here. And that, my friends, is how company policy begins.

This survey that Chris Wolf (Gartner Analyst) did completely blew me away.

I’m shocked at the number of people when asked about their Virtual Desktop Storage Preferences answered that they would use Enterprise Storage array features (EMC, HDS, HP, NetApp). I suppose I shouldn’t be shocked after spending the last few years working on desktop virtualization solutions but it shows how little people still understand about the workload, requirements, and technologies that desktop virtualization has. It is these same people that are probably also shocked when they look at the costs of deploying a hosted virtual desktop solution.

How do you think Exxon would answer if asked whether you should use an electric car vs one with a combustion engine? That they would reply anything other than a combustion engine would be ludicrous (well until they own the electricity too). So it’s no surprise that when you ask a shared storage vendor what storage architecture they suggest what would be best for you is using their shared storage solution. Recognize that the answer they are giving you is because that is what they sell but may not be what is in the best interests of your company of storage solution for desktop virtualization. There is certainly a place for shared storage solutions in Desktop Virtualization, but it really shouldn’t be the defacto standard.

In my experience the solution that most IT departments are trying to move towards is one that involves a non-persistent virtual desktop, I’m a fan of persistent desktops too, but that in my experience has rarely been the first use case companies focus on to maximize their return in desktop virtualization technology investments.

A non-persistent virtual desktop means that changes to the operating system including OS updates, configuration changes, and applications installations are not retained. After a user logs off, the virtual desktop is refreshed and reverted back to its gold image state. Personalization of the operating system or applications that are desired are stored in the user profile can be maintained separately from the virtual desktop and therefore persisted (on shared storage). What a non-persistent virtual desktop really means for most companies is that if a user installs and application (provided they have the rights to do so) that application will not be persisted. In many cases this is the desired functionality that companies are seeking in deploying a hosted virtual desktop solution.

So what then are you getting by adding a shared storage solution? If the server the desktop is hosted on fails the session is lost and the user has to reconnect regardless of the storage architecture. If the storage on the server the desktop is hosted on fails the session is lost and the user reconnects…again regardless of the storage architecture. So why then are so many companies using shared storage for the VDI environment? I honestly don’t know. My best educated guess is because that’s just what they think IT departments should do.

So where are the gaps when using local disk for desktop virtualization? Since we are using local storage technologies such as live migration/vMotion/XenMotion can’t be used (OK, so shared nothing migrations exist, but you probably won’t use this in production…although if you have 10Gb and local SSD then this might be an option) and therefore load distribution by migrating VM’s to balance load across hypervisor hosts can’t be done. Add to that, the broker does not take in to account the load on the host hypervisor(s) when making placement decisions for a user that needs a non-persistent virtual desktop. Since the virtual machines are using local hard disks there isn’t any ability for the underlying hypervisor cluster to migrate virtual machines from one host to another. So the potential exists that you could be brokering users to a virtual desktop on a host that is saturated while other hosts in the cluster have available capacity.

When Citrix XenDesktop and VMware View make brokering decisions why is their no calculation of host utilization (hypervisor) used in that decision? We need a smarter broker in order to free ourselves of shared disk and therefore the bonds of 40% of our desktop virtualization project going to storage manufacturers. Dell/Quest vWorkspace does this, they call this Connection Time Load Balancing. From their admin guide: Connection-time load balancing distributes user connection requests to a managed computer on the least busy Hyper-V hypervisor. Kudo’s guys!

So there, something to think about, don’t do what everyone else does just because everyone else is doing it. I’m a firm believer that most people are stupid, the last thing I want to do is blindly make the same decision that person did. Shared storage might have a place in your desktop virtualization deployment, but it should not be assumed. Don’t be a f*cking monkey. :)

Windows 2008 R2 1-to-1 via XenDesktop

2

What many enterprises may not be aware of is that Citrix offers Windows 2008 R2 desktops on a 1-to-1 basis instead of Windows 7 desktops as an option for Citrix Service Providers. This feature was introduced with the Citrix Cloud Provider Pack back in March of 2012 and was featured in a blog post recently by Citrix. So why might an enterprise want to use Windows 2008 R2 instead of Windows 7? Licensing! Brian Madden wrote about this same concept a while back too here and here.

No worrying about Microsoft VDA licensing or companion device licensing in the future and you can buy unlimited copies of the server OS buying by the processor using Windows Datacenter licensing makes licensing much more straightforward. If you are using Windows 2008 R2 desktops on a 1-to-1 basis you do still need to purchase RDS cals for your users or devices connecting to these desktops but RDS licensing is much simpler when compared to VDA licensing.

Feature limitations of interest with this technology:

  • Machine Creation Services (MCS) provisioning is not supported, Provisioning Services (PVS) is
  • Personal vDisks are not supported
  • VM hosted apps not supported
  • Citrix WDDM driver is not used, therefore no Aero remoting

Windows 2008 R2 can be made to look like Windows 7 by turning on the Desktop Experience feature. Here are some resources to help you set this up:

So my only question is why is this delivery model not available to enterprises in addition to the Citrix Service Providers? I think most enterprises don’t yet realize how complex the VDA licensing is and are probably in violation of various components of it and maybe therefore haven’t evaluated delivery technologies purely on their ability to help them avoid VDA licenses.

The “Post-PC” Era is about the “Workspace”

4

I’ve heard a lot of discussion in the last two weeks since VMworld 2012 San Francisco about Horizon Suite, View, Horizon Data, etc… how they’ll be combined or replace each other, which one is the broker, blah blah blah..and what I can’t help but scream to myself is, “You’re missing the point!”. What I believe VMware showed at VMworld with their Horizon Suite is the new “Workspace”. Citrix CloudGateway is this same new “Workspace”. So let me explain a bit.

The Windows desktop (literally the desktop screen) has been our workspace since the days of Windows 95 and it hasn’t changed much in the time since, even with Windows 8 on my laptop the desktop is still my primary screen. The reason that the Windows desktop hasn’t changed much is because it works well for the average user. It’s where we put shortcuts to recently used applications, saved documents we were working on, and put pictures of our family or dream automobile. What has changed is that we now have multiple devices and therefore workspaces. We have smartphones, tablets, laptops, desktops, web browsers, etc…and each of these for many people is made by a different vendor with potentially a different operating system for each. This is the fundamental change that has happened in the industry, we’re no longer Windows desktop only users. Each of these new devices has a desktop/workspace that you use to launch applications, documents, pictures…you get the point, they all have a “desktop”. The post-PC era isn’t one without Windows, it’s an era of Windows, iOS, Android, OSX all at the same time and interchangeably depending on the user.

A Workspace is like your desk. It’s a place to stack up documents, books, to-do lists, bills, etc. It’s the base to which you return to do your job. If VMware and Citrix can replace the Windows desktop with a new desktop or “Workspace” as I’m referring to it, then they can become the base that users require to do their job. Citrix and VMware aren’t stopping here, they realize that the other fundamental change that has happened is people are increasingly using their own devices and so a new category of IT applications has emerged, those meant to manage application and data security on non-company owned devices. The big challenge in my mind isn’t the application and data management, this will come in time. It’s changing people’s behavior, changing them from using the native Workspace on each their devices to using a new Workspace provided by Citrix/VMware.

RemotePC solves mobility needs…and you can deploy it tomorrow

2

Citrix RemotePC was released as part of Citrix XenDesktop 5.6 Feature Pack 1. RemotePC is the secure brokering of a physical endpoint (desktop or laptop) that is in your office (typically) via Citrix HDX technology.

Much has been written already by some of my twitter friends:

Think of it as GotoMyPC but with the centralized control over virtual channels (printing, clipboard, local drives, etc), automated provisioning of PC and end users, and the high performance of Citrix HDX. I use Citrix GotoMyPC…and HDX/RemotePC blows it away.

Here is a quick diagram outlining the infrastructure required. In small environments you could combine the Delivery Controller(s) and StoreFront server(s) on the same VM’s to further reduce the number of virtual machines required while still providing high availability.

Funny story…I was talking to a prospect who was interested in allowing their users extended mobility options to their applications and data from personal laptops, tablets, and hotel kiosks. The purpose of the meeting was for me to explain to them how to use “VDI” to provide this type of access. Further questioning revealed their server virtualization infrastructure was non-existent, as in they had absolutely nothing virtualized and use all direct-attached disk. At this point I was not optimistic that they had much chance of accomplishing their goals. However things were looking up when they told me had 100 users requesting this type of access and all of them had physical desktops. RemotePC I exclaimed! I wish I could tell you this prospect was using RemotePC today but to my knowledge they haven’t moved forward on this yet, in my opinion because they are too fixated on a technology (VDI) and not on what they can do immediately to improve the life of their end users. Another barrier for them was that this solution did not provide any BC/DR advantages because if the building power was off, burned down, etc they PC’s would be unavailable. A valid argument…but I still think starting somewhere is better than doing nothing and they’ve got a long road.

Another thing nearly every Citrix XenApp engineer will tell you…”We publish RDP so users can connect to their desktops”. RemotePC! RemotePC! RemotePC!

So you want mobility and you’ve decided that you want to move to a hosted virtual desktop (HVD/VDI) solution so that you can connect to that desktop from anywhere and from any device. Well that’s just great but before you can do that you need to categorize your users, determine which applications they need, determine the server impact of those applications running when they’re sharing a few physical processors (highly overcommitted), buy hardware…and on and on and on….a year later and lots of dollars later you’re ready to roll this solution out. So you can do VDI in a year…or you can deploy RemotePC and broker the user’s applications, data, etc that already works (arguably well enough) tomorrow to any device, anywhere…while still allowing IT to control who, what, and when they can access it. Did I mention that you don’t need a Microsoft VDA license to use it? Boom!

So deploy it already, stop over-thinking it and just do it.

Additional info on RemotePC for your reading enjoyment:

Citrix receiver for web screenshot

Change default icon for published XenApp desktop

If you are publishing both XenApp desktops and XenDesktop Windows 7 desktops you may want to have the same icon for your XenApp published desktop as the default icon you have for Windows 7 desktops.

If you do follow these steps:

  1. go to your Citrix Delivery Controller and navigate to C:\Program Files\Citrix\Desktop Studio
  2. copy the console.ico file to your XenApp Controller server
  3. login to Citrix AppCenter on the XenApp Controller
  4. select the published desktop
  5. right click on it, select application properties
  6. select shortcut presentation, select change icon, browse for the console.ico file you just copied
  7. select OK

That’s it! Now all of your “Desktops” look the same.

High Availability – Citrix Machine Creation Services vs Provisioning Services

4

My blog post from last week on Machine Creation Services, Provisioning Services, and vSphere Content-Based Read Cache caused quite a few tweets back and forth between those in the Citrix community and I thought I’d continue our discussion with a tweet I posted last week, “PVS less highly available than MCS“. So what do I mean by that comment? Well let’s take a look at the components required to deliver a highly available non-persistent image via Machine Creation Services (MCS) and Provisioning Services (PVS) in Citrix XenDesktop delivering a hosted virtual desktop.

Provisioning Services

  • 2 Windows Server instances with Citrix Provisioning Services installed using local, SAN, CIFS, or NFS storage (if you are going to use CIFS or NFS make sure you look at the articles I have posted under Virtualization Resources on my blog.
  • 2 XenDesktop delivery controllers using a highly available SQL database (of course you’d also need Web Interface or Storefront but for the purposes of this discussion and just “delivering” the image we’ll not focus on this)
  • Hypervisor and management infrastructure that PVS will call in to in order to power on/power off virtual machines
  • Storage infrastructure for the virtual machines, either local or shared
Diagram of XenDesktop using Provisioning Services
Screenshot of the storage as seen by the vSphere hypervisor

Machine Creation Services

  • 2 XenDesktop delivery controllers using a highly available SQL database (of course you’d also need Web Interface or Storefront but for the purposes of this discussion and just “delivering” the image we’ll not focus on this)
  • Hypervisor and management infrastructure that MCS will call in to in order to clone replica images, create linked clones, power on/off
  • Storage infrastructure for the virtual machines, either local or shared
Diagram of XenDesktop using Machine Creation Services
Screenshot of the storage as seen by the vSphere hypervisor

So perhaps you’ve noticed that Citrix Provisioning Services only adds additional infrastructure requirements in the way of 2 additional Windows Servers that are used to run the PVS components. While that isn’t necessarily a bad thing it does introduce some additional things that can fail that will affect your ability to deliver an image to your hypervisor infrastructure. The Windows Server OS could fail, in which case if properly configured the virtual machines would fail over to the other Provisioning Server. The failure that I’m ultimately far more concerned about though is one that affects the Citrix Streaming Service. It is this service that is responsible for “streaming” the requested image blocks across the network. If this service has a bug and crashes on one Provisioning Server and the virtual desktops fail over to the other Provisioning Server and if that same circumstance occurs which caused the virtual desktops to crash the streaming service on host 1, then it will probably crash the streaming service on host 2…and now you’re dead in the water. It is for this reason that I say Provisioning Services is less highly available than Machine Creation Services.

Machine Creation Services has one less dependent…Provisioning Servers (OS, Application, and most importantly Streaming Services bugs)

VMware vSphere CBRC removes the need for Citrix Provisioning Services

9

I know this will be a sensitive topic among some Citrix folks…but I personally dislike the product (Citrix Provisioning Services). I dislike it because it’s not the most straightforward product, it’s had its share of challenges (E1000, vmxnet3 for example), and even with n+1 Provisioning Servers I’ve still seen bugs that crash the stream service, targets fail over to the other node, then promptly crash that stream service. There are some scenarios like streamed OS over the LAN for lab, campus, education environments where I can overlook any shortcoming because the product frankly is the best solution on the market for these types of environments…game changer for sure, no question. But in other environments where we use it to manage large XenApp farms and deploy hosted virtual desktops I think we’re starting to see advancements in the hypervisor that will reduce the need for Provisioning Services, that’s not a bad thing, just other technology catching up.

I’ve talked about the VMware vSphere Content-Based Read Cache (CBRC) in a previous post, namely how to enable it on your Machine Creation Services (MCS) provisioned virtual desktops. For those of you who are not aware, CBRC was introduced in VMware vSphere 5 to provide a method for providing a memory based read cache for frequently accessed portions of a vmdk virtual hard disk.  Text from the VMware blogs states:

When enabled for specific VMs, the host hypervisor scans the storage disk blocks to generate digests of the block contents. When these blocks are read into the hypervisor, they are cached in the host based CBRC. Subsequent reads of blocks with the same digest will be served from the in-memory cache directly.  This significantly improves the desktop performance, especially during boot storms or anti-virus scanning storms when a large number of blocks with identical contents are read. 

Now first a few caveats on my title of this post. Today you need and use Provisioning Services for the following:

  • Non-persistent image delivery for Citrix XenApp worker nodes, this is the best way to successfully manage large deployments of Citrix XenApp as you have single image management and non-persistent user nodes, it’s nearly bulletproof and provides a significantly reduced hardware cost model when compared to VDI/hosted virtual desktops
  • Image delivery for Windows XP/7 virtual desktops where you want to use the read cache of Provisioning Services and the Windows operating system to increase scalability and reduce read IOPs. Additionally the single image management, rather than using replica images on each datastore does reduce overall storage requirements.
  • Streamed OS delivery to physical PC’s over the LAN (this is the only future I see for PVS)

The major advantage to Citrix Provisioning Services (PVS) vs Machine Creation Services (MCS) is that PVS is a giant read cache for all of the images it serves up. While there is some storage savings too, it’s usually not a significant enough amount to drastically impact a project cost or complexity.

Now imagine a future world where Citrix can take advantage of the Content-Based Read Cache (CBRC) for Windows XP/7 virtual desktop delivery using MCS. Instead of your Citrix Provisioning Server/OS serving the read requests from memory the VMware vSphere hypervisor does this.

Imagine in that same future world what Citrix has already hinted publicly about (at Synergy) which is the combining of Citrix XenApp IMA architecture into the current XenDesktop FMA architecture, a world where provisioning XenApp worker nodes via MCS might be possible. Again, these images could then take advantage of the hypervisor read cache.

So I ask you…how long do you think Provisioning Services is going to matter for XenApp and XenDesktop hosted delivery? Now all we need is for Citrix to work with VMware to support CBRC with MCS provisioning…and while they are at it adding support for CSV cache on Windows 2012 would be nice too.

Glad to hear your comments on this…I wrote this rather quickly tonight and I’m sure I’ve overlooked an argument or two :)

Reasons to do Desktop Virtualization

3

There seem to be no lack of reasons not to do Desktop Virtualization and plenty of people on twitter can be found daily shooting holes in the solutions that make up this category so I thought I’d be different and talk about the reasons I’ve seen that organizations take on Desktop Virtualization, whether that be hosted virtual desktop (HVD) or hosted shared virtual desktop (RDSH).

  • Driving to work is expensive and time consuming
  • Using a Mac as your primary desktop is fucking awesome
  • 4G isn’t available everywhere, your apps won’t work with limited bandwidth
  • 4G is everywhere, why have apps installed locally
  • Tablets are a shitty laptop replacement, but your CEO wants Windows apps on this iPad so just do it already
  • Virtualization isn’t security, but keeping data in the datacenter doesn’t hurt your security strategy
  • Access to business apps means your workers can work more and from when/where they want
  • Highly managed Windows endpoints outside of your building are highly difficult

End the week on a positive note, post in the comments on your reasons to do Desktop Virtualization.

The CPU scheduler and VDI

3

Something for those of you considering VDI to chew on. First start off with a good read about the vSphere CPU scheduler http://www.vmware.com/resources/techresources/10131 and what you’ll learn is that CPU scheduling on a hypervisor is all about proportional share, not priority as is the case in unix/linux/windows. Quoting here from the whitepaper “when making scheduling decisions, the ratio of the consumed CPU resources to the entitlement is used as the priority of the world“. Basically, all shares equally distributed, the more compute resources a world consumes the more likely another world will preempt it.

So in a VDI world where there is a high ratio of vCPU’s to physical cores the hypervisor does a very good job of fairly distributing compute resources to requesting worlds. What the hypervisor is blind to is the type of workload that is being done and since compute resources are typically oversubscribed, latency sensitive workloads which require also tend to use more CPU than others…things like video and audio, rich multimedia applications tend to struggle as physical cores become oversubscribed. Take a reference made by Andre Leibovici in this article http://myvirtualcloud.net/?p=3371

“A 1vCPU desktop can deliver 720p@25fps without any hardware acceleration. In this scenario it is recommended a maximum of 2 desktops per core for concurrent playbacks at 720p@25fps. Most VDI deployments don’t cater for this kind playback conditions, but if this is the case of your deployment you should follow these guidelines to ensure the best user experience.”

This isn’t a dig against VMware View, Citrix XenDesktop or VDI…this is just the reality of the world of compute oversubscription. I’m not implying we shouldn’t oversubscribe CPU’s either, I doubt all of your employees are watching 720p video all day long. I do however think it is important to understand how and why these things happen. I think some people have an unrealistic view of the expected performance of 100 VM’s on a 12-16 core server.  I’d also contend that the days of a 1 vCPU desktop VM are drawing to a close. Application developers have been told for years now to multithread their apps to harness more of the power of the AMD and Intel cpu’s.

I’ll leave you with this if it helps drive home the point I’m making as it relates to compute oversubscription..

Traditional PC/laptop

Microsoft Remote Desktop Services/TS/XenApp

VDI

My upcoming presentation at Citrix Summit and BriForum London

2

I’m excited an honored to be speaking this May at both Citrix Summit (partner conference prior to user conference – Synergy) and BriForum London.  My session at Citrix Summit is session SUM120 and it’s titled: “Flag on the VDI play; sure-fire warning signs of impending doom and how to mitigate”.  My session at BriForum London is titled: “How to Fail at VDI”. Both sessions were essentially born out of my blog post How to fail at VDI. I’ve been working on putting together a presentation based loosely on that original blog post and I’m curious as to what some of you have to say about this topic.

My presentation follows this basic outline

  • I’m tired of the typical ways people engage me in a Desktop Virtualization project – bake-off’s, looking for alternatives to replacing PC’s, want to use thin clients, pilots without testing criteria…it’s a long list already but I’d love to hear more
  • Interest ≠ Success, Pilots ≠ Production rollouts
  • I’m tired of Desktop Virtualization being called a failure, it’s not, you’re using it wrong!
  • Failures fall in to two areas: Technology and Expectations
  • Outline common technical failure points
  • Outline common misguided expectations of Desktop Virtualization
  • Projects/pilots lack useful success criteria
  • and somewhere in here I need to help guide people on a path of success :)

Whether you’re a consultant or an IT professional who has been successful or tried and failed…what advice do you have to offer or what do you think I should make sure people know leaving this session?

I’d highly encourage all of you to attend both Citrix Summit/Synergy and BriForum London or Chicago this year.

BriForum http://briforum.com/

Citrix Synergy http://www.citrixsynergy.com/

Citrix Summit http://www.citrixsummit.com/

Looking forward to your comments!