F11 key on a Mac

Perhaps you’ve tried installing vSphere/ESXi via a remote console session from your Mac and have been stuck at the screen where you have to click F11 to accept the licensing agreement to move on.

By default on my 10.8.2 (Mountain Lion) Macbook Air when I use fn + F11 it would show my desktop, not send F11 thru to the console session. In order to change the behavior of F11 you may need to do the following:

Go to System PreferencesMission Control

Change Show Desktop from F11 to some other key, I’ve used F13 in this example.

Now from your remote console session you should be able to use fn + F11.

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

Hyper-V | XenServer | vSphere

10

Update: this is out of date, needs to be updated for vSphere 5.1!

 

I took all of the pictures that David Davis took at Microsoft TechEd 2012 today comparing Microsoft Hyper-V 2012, Citrix XenServer 6.0, and vSphere (free) and vSphere Enterprise Plus. This is not meant to be an unbiased view, this is simply a spreadsheet view of the screenshots that David took at TechEd…as presented by Microsoft, so of course they might have a specific view on the comparison of these features. Hopefully later I’ll have time to add in all of the fine print they had at the bottom of the screen.

Enabling vSphere Content-Based Read Cache for Citrix XenDesktop

7

First let me state, I highly doubt VMware or Citrix is going to support you if you enable this in your production environment, let’s hope this post changes that.  I’m also quite surprised at how easy it was to enable and use this.

You may not all be aware of this but VMware vSphere 5 introduced a new feature called “Content-Based Read Cache” (CBRC). Here is text from another website explaining it:

Content-Based Read Cache. A content-based reach cache (CBRC) has been delivered for specific use with View (VDI) workloads. With this option configured in ESX, a read cache is constructed in memory optimized for recognizing, handling, and deduplicating VDI client images. The cache is managed from within the View Composer and delivers a significant reduction, as high as 90% by early estimates, in IOPS from each ESX host to the storage platform holding client images. This reduction in IOPS enables large scaling of the number of clients in case multiple I/O storms, typical in large VDI deployments, occur.

If  you’ve read my other posts on about VDI and IOPs you know that I don’t believe that boot storms are a real problem in most production environments and that login storms and write IO in general are the bigger problem we have to deal with for Desktop Virtualization to succeed. However, if we can allocate a small amount of memory (up to 2 GB in this case) on the hypervisor to reduce IO to the storage then of course we’re going to want to do this!  Outside of the boot process any operating system files or applications installed into the gold image would also benefit from this read cache in memory on the host.

So I began pondering the use of this within Citrix XenDesktop and was reading a post on http://www.virtuallyghetto.com/ that outlined quite clearly how to enable this feature. My test was to see if I could get a Citrix XenDesktop Machine Creation Services (MCS) provisioned image to take advantage of the content-based read cache (CBRC).  I was originally stuck on how to run the ConfigureDigest_Task method through VMware vCenter but William set me straight and also updated his post to include more specific instructions on how to configure this. If you try to run the ConfigureDigest_Task against an individual vSphere host that is part of a vSphere cluster you’ll end up getting an error message at the end of the task that says it can’t complete because it is restricted to the server managing it. If you get this go through the vCenter MOB or remove the vSphere host from the cluster, I don’t recommend the latter.

In order to use the Content-Based Read Cache (CBRC) you only have to configure the gold image to be optimized by vSphere CBRC. The configuration to the gold image must be made prior to deploying the gold image into your XenDesktop machine pool. You don’t have to do anything to the MCS provisioned desktops from that gold image, they use linked clone technology and therefore vSphere is able to take advantage of the read cache it has built from the master image, which was then cloned as replica’s on each datastore, that your VM’s are now linked to.

Here is the quick list of steps I went thru, refer to this article on virtuallGhetto for detailed information.

  • Create XenDesktop gold image
  • Under advanced settings of the ESXi host configure CBRC and cache size you require
  • Get the gold image virtual machines MoRef ID and the virtual disk device ID
  • Construct the ConfigureDigest_Task method with above information
  • Verify the task executes, you’ll also see a new VMDK with the name “digest” configured with the VM
  • Create Machine pool
  • Look at the CBRC statistics to make sure your VM’s are using the read cache

I can’t thank virtuallyGhetto.com enough for the information they posted, their post was key for me getting this to work. I highly recommend following this blog.

So I did some quick performance comparisons using 15 Windows 7 VM’s (unoptimized) in our lab on a Cisco UCS C200 M1 server, I would have done more but there was only 24GB of RAM in it (anyone want to send me more?).  I allocated 2048MB of memory for the CBRC. Storage for the test was a Nimble Storage CS-240G array using two 1Gb links. As you can see by the graphs in the image below, it’s pretty clear the CBRC worked for the MCS provisioned VM’s.  As to the overall savings in IO it will be dependent on the number of virtual machines that are sharing the gold provisioned image.

This post was not intended to prove savings or justification of a read cache, simply that you can make it work for XenDesktop. However, I believe you also need to regenerate cache by running the digest task occasionally although I’m still short some much needed documentation on why…I have some guesses but nothing concrete.  If anyone has some documentation they’d like to send my way my contact information is on my blog site.

Check out the results…

 

Some observations about IT

I’ve had some thoughts rattling around in my head for a while and I wanted to take a minute to write them down to share with others as well as to help myself add some order to these thoughts.  My career these days is pretty perfect, I get to create architecture and designs, implement them, then move on.  I don’t have to deal with the internal organizational politics, sell ideas to my management, etc. I just get to participate when it’s time for you to do the “fun” projects!  It wasn’t long ago though that those less savory items were my life working as an IT Infrastructure manager in a fairly large organization…4000+ users and a few hundred servers.  I’m saying this to try to convey some level of empathy for those of you working with organizational politics that might think I’m just an ignorant consultant.

1st observation:

There is a ton of waste in IT environments.  I can’t tell you the last time I found an organization that by design was fully utilizing their IT infrastructure.  Most VMware environments are significantly underutilized.  I see org after org adding servers to their VMware farm when they don’t need to.  That’s great for the VAR I work for but it’s partially the reason people are looking at IAAS instead of internal infrastructure.  I have 2 theories on why people add infrastructure when they don’t need to and this applies to more than just VMware farms, you could apply this to almost all IT infrastructure.

First theory, IT overbuys infrastructure because it’s hard to “go back to the well” for more money later, they’ve been conditioned to buy more than what they need because they can’t easily buy infrastructure later so when a big project comes along they buy as much as they can whether they need it or not knowing there will be future needs that won’t get approved that this one big purchase will make up for.  I know this happens, I hear it constantly from IT groups we work with, I did it myself…heck I even went so far as to keep a few dozen servers under maintenance when they were no longer needed just so when the CIO wanted to cut costs I could cut a few servers from their maintenance contract and “save money”.  Wouldn’t it have been better for the company if I had cut those servers immediately from their maintenance contract?  Sure!  But my reality of cutting costs wasn’t based in reality or what was best for the business, it was just a number I had to cut regardless of the impact to the business.  So to make up for it I made sure there was always lots of waste.  Sound a bit like government?

Second theory, your IT department is technically clueless.  So back to that example I used of organizations buying more servers for their VMware farm than they need?  Pure lack of understanding.  Maybe they had a performance issue and didn’t know how to troubleshoot it and decided in the future they’ll make sure they’re not exposed like that again and just buy more hardware than they need.  Maybe they really don’t know how any of this virtualization works and are just nervous that it actually works…and since they lack any tools to measure or simulate workloads they don’t have any way to argue against an end user that says things are slower now that they are virtualized.  It’s like taking your car to a repair shop that doesn’t know how your car works, they just start replacing everything and when in doubt bigger is better.  Every management book I’ve ever read has said to hire people smarter than you and that people are the difference in an organization.  Yet every day I meet organizations that knowingly hire people dumber than them, keep people in key positions they know in their gut aren’t right for the business.  Why?  Do you think these people don’t affect your organization negatively?  I doubt it…I’d bet on it that you’re wrong.  Even in the organization I work at I think the cost a bad employee is vastly underestimated and understood.  Smart people are the difference…always.  I’ll hire smart over tenure (or any other metric) every day…it is the only thing that matters.

So why do I bring all this up?  Because your CEO is about to try to replace you with “Cloud” and you need to understand why.  I’m not saying IAAS isn’t the right solution for you I’m just saying that in order to have internal infrastructure in the future you need to start acting a little more like IAAS providers internally because those providers hire talent and don’t overbuy.  More on that in a future post.

What if Citrix XenServer was free?

1

What if Citrix XenServer was free?  Technically Citrix XenServer is already free, so is Hyper-V and so is vSphere, but these are all limited feature editions (marketing) and no large enterprise is deploying free editions of any of these for production workloads.  What I’m asking is what if Citrix XenServer Platinum edition was free?  Or what if Enterprise edition was free and lab management, site recovery, and provisioning services, and CloudStack were the only pay for features?

VMware vSphere is the undisputed (by me) leader in the hypervisor market for server/os virtualization because of:

  • Technical resource availability
  • Tier 1 application support
  • 3rd party solution integration and API’s (storage, network, etc)
  • Completeness of solution

Notice that I’m not comparing point features when looking at the different hypervisors on the market.  In my mind the features, while different in implementation and ease of use they are all essentially the same or will be soon, they’re not today but get closer with every release.  When I look at the hypervisor solutions on the market I’m more concerned with:

  • whether I can find skilled people to implement and support the technology
  • whether ISV’s will support the underlying hypervisor for their applications
  • whether backup software can use API’s and not lock LUNs or require crazy Larry storage designs with a LUN for every virtual hard disk
  • whether integrated anti-virus software solutions are available
  • how security software is made hypervisor aware
  • what monitoring solutions are available and can they report on the hypervisor health as well as understand the virtual workload on top of it

…All of which all leads to completeness of solution and add-on components like lab management, hybrid cloud, and site failover/DR.  These are all areas where VMware squarely beats its competition and long-term Microsoft will have a lot of influence with their ISV network to build on and into Hyper-V…but where does that leave Citrix and XenServer?  I believe there are many individuals and companies today that embrace the open source community and will continue to extend Xen for the service provider environment, but will that be enough for the Enterprise?

When the Enterprise customers I talk to today are pinched for money and are looking at other hypervisors the solution which keeps being mentioned is Hyper-V…”because it’s free” or “included”.  There is rarely mention of Xen or XenServer in this conversation.  Which brings me to the reason I wrote this post, what if XenServer Enterprise (which admittedly offers WAY more than free edition of Hyper-V and VMware) was FREE.  How would that change customer behavior?  Would it at least cause people to take a second look at XenServer?  What if they threw in a copy of CloudStack for cheap and built some management packs for SCOM?  Would that appease the Microsoft centric crowd?

Citrix is counting on XenServer and Xen to prevail (and it is) as the hypervisor for public cloud, they’ve even gone so far as to blog about it http://blogs.citrix.com/2011/08/19/citrix-not-focused-on-server-virtualization-thats-absolutely-correct/ but I fear they might be overlooking the shorter-term play which is happening now which is hybrid cloud.  In the conversations I’ve had with customers and services providers it sounds like most are interested in the service provider running on the same hypervisor that they use internally, and 90% of the time that’s VMware vSphere.  So if Citrix wants a part of hybrid cloud I feel like they need to be in the Enterprise datacenter…and if they want to be there they’ve got a better shot at it if their price is $0.  Next week is VMworld, great time to take a shot across VMware’s bow.

XenServer Features
Free virtual infrastructure
Free
Advanced
Enterprise
Platinum
XenServer hypervisor x x x x
IntelliCache x x x x
Resilient distributed management architecture x x x x
VM disk snapshot and revert x x x x
XenCenter management x x x x
Conversion tools x x x x
XenMotion live Migration x x x x
Advanced management and automation
Distributed virtual switching x x x
Heterogeneous pools x x x
High availability x x x
Memory optimization x x x
Performance alerting
and reporting
x x x
Dynamic workload
balancing
x x
Host power management x x
Live memory
snapshot and revert
x x
Provisioning services (virtual) x x
Role-based administration x x
StorageLink x x
Web self-service with delegated admin x x
Automated VM protection
and recovery
x
Lab manager with
self-service portal
x
Provisioning services (physical) x
Site recovery x
Cost per server Free $1,000 $2,500 $5,000

VMware Changed Block Tracking (CBT) and NFS uh oh!

3

Saw some twitter activity on this tonight and I knowing we work with many NetApp customers on VMware vSphere I figure this has probably already come up or will soon.

First, what is Change Block Tracking?  http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1020128

In a nutshell CBT is vSphere’s ability to track at a block level changes to virtual machines virtual hard disks.  Applications that use the vStorage API can then access this information to do a backup of the changed blocks on a virtual machine.

So, if you’re using NFS storage, such as NFS from a NetApp storage array you will want to turn off this feature if you are experiencing this issue documented here.  http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1031106