Tag Archives: Provisioning services

PVS vs MCS – Part 7: Summary


As Q said in the final episode of Star Trek: The Next Generation, “All good things must come to an end” and after 6 previous blogs focusing on deciding between Provisioning Services and Machine Creation Services, it is time to end.

As I explained, over the past 5 years, improvements were made to Provisioning Services and Machine Creation Services.  While Provisioning Services simplified deployment and maintenance, Machine Creation Services improved performance and delivery capabilities.

Five years ago, if someone had to decide between the two, most likely the answer would be Provisioning Services.  But now in 2016, because of the overall improvements in both solutions, the decision will mostly focus on a few core concepts explained in the previous blogs:

Five years ago, I created a decision tree helping you select the most appropriate solution.  Developing these previous six blogs helped me do the same thing based on the latest advancements.

CompareDid I miss any criteria?  Let me know

Daniel (Follow on Twitter @djfeller)
XenApp Advanced Concept Guide
XenApp Best Practices
XenApp Videos

 

 

PVS vs MCS – Part 6: Architecture


This is part of a series comparing Provisioning Services and Machine Creation Services

In the previous blogs comparing PVS with MCS, I focused on functionality within each technology, but this time I’m focusing on how easy is it to manipulate.

Consider the following:

  • A single XenApp/XenDesktop (including Machine Creation Services) architecture can span multiple geographical sites.
  • A single Provisioning Services architecture can span multiple geographical sites.

However, having a single XenApp/XenDesktop/Provisioning Services farm span across multiple geographical sites might not always be the correct architecture.

Imagine you have two major data centers, each hosting virtual desktops/apps.  You have XenApp and XenDesktop hosts in each data center.  Do you define zones for each data center and implement a single XenApp/XenDesktop environment or do you deploy two environments: one for each data center?

The correct answer is based on the unique characteristics of the organization and their risk tolerance. Risk sensitive organizations will want to reduce the size of their failure domain, resulting in two separate environments. If there is a catastrophic failure, it only impacts a portion of the environment.

If you follow this path, you need to devise a plan on how to replicate the master images between sites.

  • With Machine Creation Services, the admin must work in the hypervisor and export/import the master image  to the different sites and resource pools.
  • With Provisioning Services, the admin simply copies the image file to the other site. In fact, this is the same process many Provisioning Services admins already use to keep images synchronized across multiple servers. And to streamline this process, many admins create simple scripts to copy images when changes are detected.

Even though it is possible to keep images synchronized across multiple sites if you are using Machine Creation Services or Provisioning Services, I believe the simplicity of copying Provisioning Services image files gives it an edge for this criteria.

Sites

Daniel (Follow on Twitter @djfeller)
XenApp Advanced Concept Guide
XenApp Best Practices
XenApp Videos

PVS vs MCS – Part 5: On-Going Maintenance


This is part of a series comparing Provisioning Services and Machine Creation Services

Deploying Machine Creation Services is extremely easy as there is nothing to deploy.

Deploying Provisioning Services is easier with Hyper-V Gen2 VM support and the single-stage Boot Device Manager.

This sounds great, but what about on-going maintenance?  (something many fail to consider)

Overall, the update process for both imaging technologies are simple to perform through the respective consoles.  However, with Provisioning Services, there have historically been some special considerations in order to update the Boot Device Manager file as well as updating the Provisioning Services Agent that we must take into account.

Boot Device Manager

If you assign the BDM file to each virtual machine, you need to ask yourself how you update the file if your Provisioning Services infrastructure changes?

Before the XenApp and XenDesktop 7.9 release, this often meant the admin must update each virtual machine. This is not a very good admin experience.  That experience drastically changed.

With three clicks of the mouse totaling about 15 seconds of time, the admin can update all target devices with an updated BDM file.

BDM Update

Provisioning Services Agent Update

Next, we have to concern ourselves with updating the Provisioning Services Agent contained within our master image file.  Unfortunately, treating an agent update like any other update to the image would result in a non-responsive system.

To utilize a PVS image, the virtual machine requires a constant network connection, but updating the PVS agent will result in the network going offline as the network drivers are updated.  Once the network drops, the VM can no longer function and the update never completes.

Historically, this process meant we had to do a process called reverse imaging where we take the network-streamed image file and rebuild a traditional virtual machine based on storage. This removed the constant network connection requirement, and allows the admin to update the agent successfully.

Although reverse imaging does work, it isn’t a very efficient admin experience for updating the PVS Agent. In the 7.9 release, the admin experience changed.

With 7.9, updating the PVS agent follows the same process as other updates. Look at how updating the PVS agent has changed over the past few PVS releases, taken from docs.citrix.com.

Updates

The image is too small to read the details, but look at the differences in the length of this process. The number of steps in this process has quickly decreased from multiple pages to just 2 lines.

Image Life Cycle

Certain organizations require image updates to go through multiple user acceptance testing deployment stages of

  • Development: Phase for the admin to make the necessary changes to the image
  • Test: Deployment to a small group of users to validate implemented changes
  • Production: Deployment too all users

The entire process should be accomplished without impacting the current production users.

Machine Creation Services image life cycle focuses on Development and Production.

Provisioning Services image life cycle focuses on Development, Test and Production.

Fast Image Update/Rollback

In addition to the image life cycle process, certain organizations require the ability to quickly roll out new updates and instantaneously rollback to a previous version. Unfortunately, mistakes will be made in an image update potentially resulting in issues for the users, requiring the admin to roll back to a previous version until the issue can be resolved.

If the issue impacts a mission critical component for the organization, the admin will need to roll back as fast as possible.

Machine Creation Services can roll out new image updates and rollback to previous versions. However, this process, is not instantaneous as a new version of the image must get cloned from the correct VM snapshot. The cloning process can take some time to complete.  The speed of this process is based on the underlying storage subsystem as well as any optimizations utilized within the hypervisors (VAAI/ODX as examples).

Provisioning Services, on the other hand, is able to rollout/rollback changes in the time it takes to reboot the virtual machines by using the vDisk version wizard.

Summary

So where does that leave us in the Machine Creation Services and Provisioning Services comparison?

UpdatesProvisioning Services does edge out Machine Creation Services with the ability to instantaneously update/rollback images and having a more traditional life cycle process focusing on development, test and production phases.

Daniel (Follow on Twitter @djfeller)
XenApp Advanced Concept Guide
XenApp Best Practices
XenApp Videos

PVS vs MCS – Part 4: Deployment


This is part of a series comparing Provisioning Services and Machine Creation Services

So far, the latest analysis between Machine Creation Services and Provisioning Services included within XenApp and XenDesktop 7.9 has only focused on how Machine Creation Services has improved, but what about Provisioning Services?  Has anything been improved?

Most definitely! Especially around simplifying the deployment of Provisioning Services.

Hyper-V

Previously, Provisioning Services supported Hyper-V, or to be more specific, with generation 1 Hyper-V virtual machines. However, generation 1 Hyper-V virtual machines do not support PXE boot unless the VM utilizes the legacy network adapter.  Unfortunately, the legacy network adapter is not as efficient as the standard (synthetic) network adapter.

To get Provisioning Services to work with Hyper-V while taking advantage of the optimized synthetic network adapter, each virtual machine would require two separate network adapters. This configuration gets confusing, including the use of multiple IP addresses.

With the XenApp and XenDesktop 7.9 release, Provisioning Services supports Hyper-V generation 2 virtual machines.  And unlike generation 1 VMs, generation 2 VMs support PXE booting with the standard (synthetic) network adapter.

Now, each virtual machine only requires a single NIC. This is a huge improvement in simplicity.

Boot Options

Booting a PVS target device is easy in a lab environment where you have total control over DHCP and can easily set DHCP options 66 and 67 to the Provisioning Services TFTP server and boot file. But when we move into production, the network team is rarely as accommodating.

This led many of us to deploy the Boot Device Manager (BDM), which is a small boot file deployed as an .ISO file and attached to each target device. This worked great as we no longer required the configuration of those pesky DHCP options.

However, the BDM file was considered a 2-stage boot process because even though this BDM file contained the boot image, it did not contain the Provisioning Services boot drivers needed to complete the process and sign into the Provisioning Services server.  This meant we still needed a TFTP server. It meant we still needed TFTP IP helpers if we spanned multiple subnets.

Did you know that the BDM file was improved. It is now a single-stage BDM file. The ISO file attached to the target machines contains the boot file and the Provisioning Services boot drivers, eliminating the need for the Provisioning Services TFPT server.

Again, simplifying initial deployment.

So where does that leave us in the Machine Creation Services and Provisioning Services comparison.

SimpleI consider it to be even. Although Provisioning Services requires us to install the Provisioning Services server, the process is straight forward.  The complexity with Provisioning Services deployment was for Hyper-V environments and setting up the DHCP/TFTP options.

With the support for Gen 2 virtual machines on Hyper-V and a single stage boot device manager, the world of Provisioning Services is much easier to deploy.

Daniel (Follow on Twitter @djfeller)
XenApp Advanced Concept Guide
XenApp Best Practices
XenApp Videos

PVS vs MCS – Part 2: Scalability


This is part of a series comparing Provisioning Services and Machine Creation Services

In Part 1 of the PVS vs MCS debate, we saw

  • Provisioning Services bridges the gap between the physical and virtual world
  • Machine Creation Services bridges the gap between the on-premises and cloud world

Let’s continue digging into the PVS vs MCS debate and focus on scalability. Scalability plays a big role in the solution. If one solution only scales to 500 users, it would be a bad idea to select that option for a deployment of 5,000 users.

It seems like more people question the ability for Machine Creation Services to scale than they do Provisioning Services. When Machine Creation Services was initially released, many believed it was only for small deployments of around 500.

So, let’s look at how these two technologies work, which will give us some insight into their scalability potential.

Provisioning Services

Provisioning Services utilizes network streaming. A master image is contained within a single file. Each Provisioning Services server accesses the read-only file, and streams portions of the file to the target devices (FYI booting Windows 10 to the logon screen only requires 250MB of streamed data!).

PVS architectureWhat will bottleneck? Your Provisioning Services server’s NIC.

If you need more scalability, you can increase the NIC speed, add more NICs, add more servers or do a combination.

Machine Creation Services

Machine Creation Services, on the other hand, is not based on a stand-alone server install like Provisioning Services.  The Machine Creation Services functionality, contained within the XenApp and XenDesktop controller, is based on interacting with the hypervisor storage (local and shared). As virtual machines are created and updated, the Machine Creation Services commands are sent to the virtualization hosts.

MCS architectureSo, what will bottleneck first? Your storage.

Each storage cluster can only support so many virtual machines before it cannot handle the incoming requests.  If you need to add more scalability, you need to create additional storage clusters.

Comparing the Two

Both solutions can scale, as long as you add more storage clusters or more servers. But one thing you should keep in mind is that the user experience, or how well the target device performs, is based on different factors:

  • Provisioning Services links user experience to the stability and performance of your network
  • Machine Creation Services links user experience to the stability and performance of your storage

But in terms of scalability, where does that leave us in the PVS vs MCS debate?  Even

MCS vs PVS table

Daniel (Follow on Twitter @djfeller)
XenApp Advanced Concept Guide
XenApp Best Practices
XenApp Videos

PVS vs MCS – Part 1: Resource Delivery Options


This is part of a series comparing Provisioning Services and Machine Creation Services

Five years ago, Citrix released Machine Creation Services.  As a way to help admins decide between Provisioning Services and Machine Creation Services, I created a decision tree, breaking the decision across multiple requirements.

A lot has changed.

Provisioning Services changed.

Machine Creation Services changed.

You know what didn’t change?  Homer, Marge, Bart, Lisa and Maggie Simpson.

You know what else hasn’t changed? The decision tree.  It is old. It is outdated. It is no longer useful.

So my recommendation to you: STOP USING IT!

I want to look at the PVS vs MCS debate again based on the current technology.

I first want to look at the type of resources each platform can deliver.

Both imaging platforms are able to deliver virtual RDS and VDI workloads to XenServer, Hyper-V and vSphere.  The difference between the two lies in the ability to support physical and cloud-hosted workloads.

Provisioning Services, because it relies on network streaming of the master image, is able to deliver the image to virtual and physical endpoints. Imagine if you were in a school computer lab where every 45 minutes the class changed and the endpoint had to run an entirely new suite of software.  With Provisioning Services, we can quickly re-provision physical endpoints with the speed of a reboot.

Machine Creation Services, on the other hand, requires virtualization.  It communicates with the underlying hypervisor and deploys new virtual machines based off of a master image.  Not only does this approach allow one to run on XenServer, Hyper-V and vSphere, but it also allows Machine Creation Services to deploy virtual machines to the Microsoft Azure and Amazon AWS clouds.

If I put this into a simple to understand table, we would get the following:

PVS 1

Provisioning Services bridges the gap between the physical and virtual world.

Machine Creation Services bridges the gap between the on-premises and cloud world.

But of course, the similarities/differences are far greater than what type of resources each method delivers.  And we will get into more in future blogs.

Daniel (Follow on Twitter @djfeller)
XenApp Advanced Concept Guide
XenApp Best Practices
XenApp Videos

Sizing Windows 10 and Windows 7 Virtual Machines


After reviewing all of the scalability tests we conducted over the past few months, I thought it was time to revisit the recommendations for sizing Windows 10 virtual machines.  I also reached out to Nick Rintalan to see if this is in line with what is currently being recommended for production environments (if you disagree, blame him🙂 ).

Win10Sizing

A few things you will notice

  1. Windows 7 and Windows 10 recommendations are similar.  Microsoft’s resource allocation for both operating systems are similar.  The Windows 10 and Windows 10 scalability tests resulted in similar numbers.
  2. Density – Experience: For some of the recommendations, there are 2 numbers. The first is if you are more concerned with server density and the second is if you are more concerned with the user experience.  What I find curious is if you have a heavy workload, are you as concerned with server density?
  3. PVS RAM Cache: Using the RAM cache will drastically reduce storage IOPS.  This will be critical to providing a good user experience and will be taken from the total allocated RAM.  The RAM column takes the RAM Cache numbers into account.
  4. Hypervisor: There is no hypervisor identified.  Testing showed minor differences between XenServer, Hyper-V and vSphere.

Daniel (Follow on Twitter @djfeller)
XenApp Advanced Concepts Guide
XenApp Best Practices
XenApp Videos