Now I wouldn’t directly call this Part 3 of my VDI series (part one and two here), although it’s probably not that far off. Rather think of it as the “hidden bonus track,” an extra addition, if you will. During some of my previous articles I have already talked about VDI, storage, IOPS, and more. I also highlighted some of the newly introduced Windows Server 2012 R2 features offering us diverse methods in building and managing our public and private cloud infrastructures including technologies such as domain join, work folders, and a few more. For this article, I’d like to combine two worlds and technologies: Citrix’s VDI-in-a-Box (yes, another way to do VDI, this might just be what you’ve been looking for all those years), and Microsoft’s Windows Server 2012 R2, focusing on (VDI) data deduplication in particular.

VDI Done Differently

We already had a look at XenDesktop and some of the technology involved when I discussed VDI in general, and again when looking at pooled and dedicated/persistent virtual desktops and personal vDisks (PvDs), easing overall image management. And although there’s a lot more to tell and show when it comes to Citrix’s latest XenDesktop release, XenDesktop 7, I won’t. You know the basics, let’s leave it at that, at least for now. I want to introduce you to the wonderful world of Citrix one step at the time. So, VDI-in-a-Box: What is it and what does it offer? It’s basically Citrix’s simplified version of XenDesktop, primarily used by small(er) and mid-sized companies. But don’t be fooled, its simplicity is also its strength. And besides, I’ve read about infrastructure reaching up to 500+ VM’s, thousands even, all provisioned and managed from VDI-in-a-Box. Small? I guess it all depends on what you’re used to. Let me give you an idea on how it works and show you some of its main features.

VDI-in-a-Box (VIAB from now on) has been around for a few years and has not gone unnoticed. It’s still growing in popularity and new fans are added daily. This is understandable, since it’s easy to install and manage. Although it’s not for everyone, given the proper business case (and there are plenty) it just feels right.

So how does it compare to XenDesktop 7? First of all, its infrastructure is far less complex and easier to set up. Simply put, it’s an all-in-one solution, a single virtual appliance with the ability to create, provision, manage, and load balance virtual desktops. It consists of a built-in connection broker, user manager, load balancer, and desktop provisioning server. You don’t need shared storage, but you can use it if you want to. It will leverage your existing active directory infrastructure or you can configure it to use a workgroup instead, it’s that simple. Also, there is no need for management servers or high-speed connections and It runs on commodity hardware with your hypervisor of choice installed. This can be XenServer, Hyper-V, or VMware, also no SCVMM, XenCenter, or vCenter is needed. Finally, all this is managed from a single (vdiManager) web console.

The VDI-in-a-Box appliance, known as VDI-in-a-Box Manager or vdiManager (this is basically what you buy/download and install; more on this in a minute) runs as a virtual machine on your hypervisor. Again, take your pick. VdiManager creates and manages virtual desktops on the local physical server by communicating with the hypervisor. A typical VDI-in-a-Box deployment might look something like this:


It’s the heart of each VIAB infrastructure. It can be set up to run as a single physical server (or servers) or as part of a grid, which is a bunch of physical servers with the installed vdiManager bits grouped together. Each vdiManager server that is part of a grid can perform the functions listed below. Of course, there’s a bit more to it when it comes to configuring these functions, but for now this should give you an good idea of what it’s about:.

  • * Creates virtual desktops from a template
  • * Balances load across grid
  • * Provides high availability
  • * Brokers connections
  • * Provides a web-based interface

Before we continue, let’s first have a look at some of the main differences between VIAB and XenDesktop. Besides delivery groups, catalogs, machine creation services, virtual desktop agents, and a few more (never mind all these terms and technologies for now, I’m just trying to make a point) the FlexCast delivery technology is probably one of the biggest differences between XenDesktop, offering us the full package, and the slimmed-down VIAB solution.

FlexCast offers us several delivery models (the types of machines we can offer our users, and the way how they are offered) to meet all use cases. It is designed to support all types of workers (as Citrix likes to call them) out there. For example, “task workers” access a small set of applications but, at the same time, they interact with customers, partners, and employees. As a result, they have access to critical data. A secured local virtual machine or a hosted (perhaps persistent) VDI might be the best solution; here’s where FlexCast comes in. As another example, so-called “road warriors” need access to the desktop and applications from anywhere; here a hosted shared desktop or several published/streamed applications might do the trick—again… FlexCast! Of course, it’s all up to you, you decide which model best suites the use case at hand! FlexCast offers you the following desktop delivery models:

  • * Streamed VHD
  • * Local virtual machine
  • * Virtual desktop Infrastructure.
  • * Hosted shared desktops
  • * On-demand apps

VIAB has only one delivery model; the virtual desktop infrastructure, hence the name. But then again, this is probably one of the main reasons why we would buy it, right? Simplicity! There are some more differences that might be interesting to mention. For example; although both products leverage the same HDX policy engine, not all policies will apply to VIAB. Next to that, VIAB requires policies to be stored in AD, while XenDesktop lets you store policies within the site database itself if that is what you need.

Virtual machine provisioning is another difference. XenDesktop can make use of Citrix provisioning services (PVS) and/or machine creation services (MCS), which offers more flexibility when it comes to VM provisioning, but also adds to its complexity, These technologies also offer a way to work with different versions (PVS versioning), making it easier to identify and organize images. VIAB creates images by importing VMs created outside the software. Next a wizard walks you through the process of installing the agent software, connection testing, image prepping, etc. No versioning features here. I guess you get what you pay for, which is still a lot by any standard.

You might consider the above to be drawbacks (of course, there are more pros and cons, if that’s what we can call them), but they’re not. If you need PVS or another “delivery model,” for example, then go with Citrix XenDesktop or one of the other vendors out there. VIAB is designed with simplicity in mind, keeping it simple but effective, and it delivers just that! A top-notch product, in my book, anyway.

Server Requirements

A small note on the requirements. VdiManager can be installed and configured on all major hypervisor platforms: XenServer 6.0.2 and 6.1 all editions, Microsoft Windows Server 2012 and 2012 R2 with the Hyper-V role installed, Microsoft Hyper-V Server 2012, Microsoft Hyper-V Server 2008 R2 SP1, Microsoft Windows Server 2008 R2 SP1 Enterprise Edition with the Hyper-V role enabled, Microsoft Windows Server 2008 R2 SP1 Core installation with the Hyper-V role enabled. VMware ESXi 5.1, VMware ESXi 5.0 Update 2 (VMware Essentials license or greater is required).

Virtual Desktop Requirements

The following client operating systems, as part of the virtual desktop infrastructure, are supported: Windows 8 and 8.1 Enterprise and Pro 32- and 64-bit versions, Windows 7 SP1 Professional and Enterprise 32- or 64-bit versions, Windows XP SP3 Professional edition 32-bit, Windows Server 2012 Full Standard edition 64-bit, and Windows Server 2008 R2 SP1 Enterprise edition 64-bit. Windows 7 N is not supported.

A Quick Walkthrough

Once it is installed, you’ll need to have a pre-configured VM in place on your hypervisor that you can import into your VIAB environment. VIAB will leverage this virtual machine to create a base desktop image, which will be used later on when creating templates and policies as part of the virtual machine creation process. Again, a golden image concept, just as with XenDesktop and provisioning services (PVS), only managed and configured in a different way.

After importing your VM/base image, the next step is to create a template. As mentioned, templates, in combination with policies, are used to create and configure our virtual desktop infrastructure and the virtual desktops in it. During the first steps, you configure the amount of memory and vCPUs you want each VM to get, fill in a naming convention for use when creating multiple machines, and some other configuration characteristics. Have a look below:

Next you need to decide how many machines you’d like to provision, if they need to be pre-started, and if they’re going to be pooled or personal (dedicated/persistent). When you’re done, click “Next,” the template will be saved, and you’ll need to assign users, or groups of users, to the template so it can actually be used. Of course you’ll first need to incorporate active directory in your VIAB architecture before being able to assign users or add in users from a workgroup if that’s what you’re using. Anyway, this is how it looks:

Pooled vs. Personal

With VIAB, we have two options: We can create either pooled or personal virtual machines, which is basically the same concept as with the XenDesktop dedicated/persistent desktops. If you have read my previous article on VDIs: “VDI, Storage and the IOPS That Come with It, Part 1 of 2,” you probably already have a good idea what these two are about. For those who haven’t, let me recap:

Pooled desktops—With a pooled desktop, all changes made to the underlying operating system (base master/golden image) are discarded on logoff or reboot, which is called a “refresh” in VIAB terms. This means that installed applications or updates, etc., will be gone once a user logs off or reboots (refreshes). The VM will again be “clean” and put back in its pool, waiting to be re-used. This also goes for all personalized settings, so if you want to keep your users happy, you’ll need to have a good profile solution in place.

Personal (dedicated/persistent) desktops—All changes made to the underlying operating system (base master/golden image) are preserved when a user logs off or reboots (refreshes). Again, different vendors use different techniques to accomplish this. However, this also means that a dedicated VM is bound to a particular user as opposed to pooled desktops, where you can put it back into the pool for reuse.

Note that VIAB also supports the use of personal vDisks (PvDs) first introduced in XenDesktop; see my previous article on VDI: “VDI, storage and the IOPS That Come with It, Part 2 of 2,” for some more information on PvDs. The mechanism used by VIAB for VM provisioning is relatively simple. When creating a bunch of pooled VMs, it will create a so-called linked clone VHD based on the underlying base master image. When creating personal VMs it does the same but it will create an extra personal vDisk VHD, where it will store all (personal) delta writes to the linked clone.

Although I didn’t, and can’t, include all details, I’m sure the above gives you a good understanding on how VDI-in-a-Box works and what it could potentially offer you. Don’t hesitate to drop me a line if you have any questions regarding VIAB, XenDesktop (7), or XenMobile, for that matter. I’m happy to answer any questions you might have and help where I can.

Data Deduplication

Let’s start by explaining data deduplication: What is it? Who better than our friends at to help me explain: “Data deduplication is a specialized data compression technique for eliminating duplicate copies of repeating data. Related and somewhat synonymous terms are intelligent (data) compression and single-instance (data) storage. The technique is used to improve storage utilization and can also be applied to network data transfers to reduce the number of bytes that must be sent. In the deduplication process, unique chunks of data, or byte patterns, are identified and stored during a process of analysis.”

Although data deduplication is still relatively new, it is has already become one of the standards to implement when configuring a file server with Windows Server 2012 and now R2 as well. Deduplication works best on static data. You can save up to 90% of free space, depending on the type of underlying data used. This automatically translates into lower storage costs, being able to store the same amount of data in less space. Or think of it this way: Why not buy less storage but invest in SSDs? You probably won’t save any money, or at least not much, but you could increase your read and write performance by over 50% Some big advantages here!

As you can see in the above overview, the more static your data is, the more you’ll save! However, by default, data gets deduplicated if it’s not been modified for five days. Microsoft noticed that a lot of their customers were adjusting the default policies from five to three days or, in some cases, customers were trying to optimize all their data regardless of “modification age.” Some took it another step further, and tried to optimize their running VHD libraries, which didn’t quite work out. Taking this into account together with other feedback that Microsoft was getting from its customers, they quickly decided to go back to the drawing board and redesign the data deduplication feature to make it more robust and capable of deduplication on open and in-use files, and thus on VHDs as part of VHD libraries. This also meant optimizing read and write performances, including the overall time it takes, or took, to deduplicate data altogether.

Separated Storage

Because of the performance impact that data deduplication has, or might have, on the underlying physical resources, they decided that if deduplication was to be supported in an open and in-use file scenario, then the actual storage and VDI host server, in their case Hyper-V hosts, needed to be physically separated from each other. Here’s their statement regarding the matter: “Data Deduplication in Windows Server 2012 R2 would support optimization of storage for Virtual Desktop Infrastructure (VDI) deployments as long as the storage and compute nodes were connected remotely.”

On one of their TechNet Blogs they highlight the fact that they specifically focused on ensuring that the performance of optimized files is adequate for VDI scenarios. Because of this, they state: “As a result, we do not support deduplication of arbitrary in-use VHDs in Windows Server 2012 R2.” However, since data deduplication is a core part of the storage stack, there is no explicit block in place that prevents it from being enabled on arbitrary workloads. So, who’s stopping you?!

Back to VDI-in-a-Box: I’m not saying that you should implement it in combination with Microsoft’s data deduplication feature, but it’s definitely a potential candidate, and so are VMware View, Citrix XenDesktop, etc. And since its primary use isn’t just for VDI scenarios, you can probably can come up with a dozen of other use cases, I’m sure. VDI, and partially general VM, support are just a big extra bonus to its already impressive resume.


Adding data deduplication can save you massive amounts of free space, partly depending on the type of data used. This gives you the option to perhaps implement SSDs and take advantage of the read/write speeds they offer, another big plus in favor of Windows Server 2012 R2! And, even when not implementing SSDs, data deduplication still improves overall IO and performance. Give this one the attention it deserves and don’t forget to let Microsoft know what’s working for you and what’s not, and perhaps what they could improve in the (near) future.

VDI-in-a-Box is a simplified, all-in-one solution offering us straightforward installation, configuration, and management capabilities, while still enabling us to build mid-sized infrastructures scaling up to hundreds of VMs at the fraction of the costs compared to one of its bigger brothers. As with almost all products, Citrix also offers a limited test so you can see what you make of it, license free. Make sure to get your copy! I hope this has been somewhat informative, till next time.

Reference material used: