VIAB and Windows Server 2012 R2’s Data Deduplication

This article was originally written as a guest blogger for intense School IT educational services. Now I wouldn’t directly call this part three of my VDI series, 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 already talked about VDI, storage, IOPS and more. I also highlighted some of the newly introduced Windows Server 2012 R2 features offering us divers methods in building and managing our public and private cloud infrastructures including technologies like 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, focussing on (VDI) data deduplication in particular.

VDI done different

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 (PvD’s), 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 has to 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. Understandable, 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 it’s 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 build-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, no need for management servers or high speed connections and It also runs on commodity hardware with your hypervisor of choice installed. This can either be XenServer, Hyper-V or VMware also no SCVMM, XenCenter or vCenter 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 vdiManager bits installed grouped together. Each vdiManager server as part of a Grid can perform the following functions, see 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 on what it’s about.

  • Create virtual desktops from a template
  • Load balance 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 type of machines we can offer our users, and the way how they are offered) one solution to meet all use cases. It is designed to support all type 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 Hosted (perhaps persistent) VDI might be the best solution, here’s where FlexCast comes in. Another example, so called Road Warriors need access to their 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 only has 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 anyway, 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 where XenDesktop lets you store policies within the site database itself if that is what you need.

Virtual machine provisioning is another one, 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 complexibility, 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 VM’s 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 & 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, Windows Server 2008 R2 SP1 Enterprise edition 64 bit, Windows 7 N is not supported.

A quick walkthrough

Once installed, you’ll need to have a pre configured VM in place on your hypervisor which you can import into you 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 vCPU’s 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 VDI’s: 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 pooled desktops 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. Meaning that installed applications or updates etc.. will be gone once a user (refreshes) logs off or reboots, 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 (refreshes) logs off or reboots, 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 PvD’s 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 PvD’s. The mechanism used by VIAB for VM provisioning is relatively simple. When creating a bunch of pooled VM’s it will create a so called linked clone VHD based on the underlying base master image. When creating personal VM’s 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 perhaps 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 de-duplication, what is it? Who better then 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 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 on less storage. Or, think of it this way, why not buy less storage but invest in SSD’s, this way 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 5 days, Microsoft noticed that a lot of their customers were adjusting the default policies from 5 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 boards and re-design the data deduplication feature. Making it more robust and capable of deduplicating open and in-use files, and thus, VHD’s 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 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 being 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 focussed 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, now 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 is VMware View, Citrix XenDesktop etc… And since it’s 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 it’s already impressive resume.


Adding data deduplication can save you massive amounts of free space, partially depending on the type of data used. This gives you the option to perhaps implement SSD’s 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 SSD’s, 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, what’s not and perhaps what they could improve in the (near) future.

VDI-in-a-Box, a simplified, all in one solution offering us straight forward installation, configuration and management capabilities, while still enabling us to build mid-sized infrastructures scaling up to hundreds of VM’s at the fraction of the costs compared to one of its bigg(er) brothers. Like with almost all products, Citrix also offers a limited, test and see what you make of it, license free of use, make sure to get your copy! I hope this has been somewhat informative, till next time.

Bas van Kaam ©

Reference materials used:,, and


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s