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. :)

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.

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!

How to fail at VDI

14

I’m so tired of wasting time with people that say they want to do Desktop Virtualization, have no business problem they’re trying to solve, want to do it for free, and think they have the skills to do their own pilot/implementation. Here’s some tips for those of you out there who fall into this category to speed up your failures and some laughs for the rest of us.

If you want your Desktop Virtualization project to fail please follow these steps.

  • Start desktop virtualization not knowing the business problem you’re solving
  • Assume you’re going to save capital by rolling out desktop virtualization
  • Believe what your hardware vendor is telling you about cpu overcommit
  • Use the same images for physical desktops for virtual desktops
  • Ignore anti-virus
  • Start a pilot with no success criteria
  • Try to virtualize the entire user environment
  • Rush to rollout the solution
  • Have no way of measuring or defining the end user experience in your environment
  • Do user acceptance testing with 5 IT users
  • Have your success criteria be whether you can access a Windows “desktop” remotely
  • Don’t evaluate Hosted Shared Virtual Desktops (RDS,XenApp,vWorkspace)
  • Ignore the user profile/personalization
  • Put the project in the hands of your VMware vSphere administrator
  • Ignore the impact to storage, network, datacenter resources
  • Use vendor estimates for IOPs
  • Assume you know what your users want

Don’t do Desktop Virtualization for the wrong reasons

Too often I still hear companies basing their desktop virtualization projects on the ROI of not replacing physical desktops.  This ROI rarely if ever works out.  Desktop Virtualization is about changing the management model of managing desktops and any ROI will come from the soft costs of less management and desktops that have a higher probability of working when the users need them.  Personally I think the best reasons to do Desktop Virtualization have nothing to do with saving money, but instead have everything to do with providing value to the business.  The items I’ve highlighted below can be gained by simply virtualizing the desktop, regardless of whether you significantly change the desktop management paradigm in your organization.  Personally, I don’t do many projects that aren’t done for specifically the reasons below…and if they save money on desktop management…cool, but not the primary driver.

  • faster provisioning
  • reduce costs to manage apps
  • stretch lifecycle
  • shorten downtime
  • support work from home
  • hardware agnostic
  • rapid on-boarding M&A
  • support OS migrations
  • allow users to repair themselves
  • manage disconnected endpoints
  • effectively manage branch infrastructure
  • rapid desktop dr
  • support hot desking
As I’ve said before, I don’t see anything wrong with persistent desktops.

What if non-persistent desktops aren’t the answer?

2

An couple interesting ideas were floated at BriForum 2011 in Chicago that I wanted to pass along…and I might not have them exactly as they were stated, but this is how they gelled in my mind.

  • For Desktop VIrtualization use a hosted shared desktop (XenApp or RDS) for non-persistent users and a hosted virtual desktop (HVD) for persistent users.
  • Use a dedicated hosted virtual desktop (HVD) or P2V existing images/desktops to dedicated virtual images and use traditional desktop management tools to manage them.

The more I have sat and thought about these two ideas the more I think this might be a better method than trying to get clients to move to non-persistent hosted virtual desktops.  While non-persistent virtual desktop pools promise a dynamically assembled desktop environment on a daily basis with lower on-going management costs they are complicated by applications, application virtualization, profile management, personalization, etc that has to be done prior to delivering the solution to end users.

There was another session, I can’t remember whose it was, that had a list of benefits of Desktop Virtualization, some of which I think we might be ignoring and when looked at more closely might help make an arguement for why we should just virtualize our existing physical desktop image and deliver dedicated virtual desktops.

  • faster provisioning
  • reduce costs to manage apps
  • stretch lifecycle
  • shorten downtime
  • support work from home
  • hardware agnostic
  • rapid on-boarding M&A
  • support OS migrations
  • allow users to repair themselves
  • manage disconnected endpoints
  • effectively manage branch infrastructure
  • rapid desktop dr
  • support hot desking

Items above in bold are benefits of Desktop Virtualization that I believe you still have if you virtualize your existing images for physical desktops which for some might be enough reason to move forward.  As the technology in the application and profile virtualization space matures integrate those technologies and products into your environment and gold images that are deployed to new or existing users as part of an onboarding process or OS upgrade.  Layering products and technologies are still very immature, not to mention very few even exist..give it some time and the problems of Application Virtualization might take care of themselves.  See previous post on this http://danbrinkmann.wordpress.com/2011/07/27/application-virtualization-ill-pass/

Most already know that a dedicated virtual desktop isn’t going to be less expensive than the physical desktop users have today and if we’re not building a dynamic image on user logon then the on-going management costs aren’t going to be considerably different than they are today.  To be completely honest I don’t know many companies that are using HVD that bought only on the savings of ongoing desktop management, it is usually the above highlighted items that are the bigger plus for companies doing HVD, so maybe another vote for dedicated hosted virtual desktop pools.

Change is difficult for organizations, maybe this non-persistent desktop idea for everyone is just too much change too quickly.