OS Virtualization in Practice (Part 1)

If you would like to read the next part of this article series please go to OS Virtualization in Practice (Part 2).


In a previous article series I explained the basics of operating system virtualization, including the techniques, advantages, disadvantages and possible scenarios. But of course you would like to see how this works in practice. In this article I will show you how to operate system virtualization using Citrix Provisioning Server version 5.

Preparation: Server Installation and Initial Configuration

The Citrix Provisioning Server exists as a server component and a component on the client which makes it possible to create the virtual disk (vDisk). This also starts a client using the operating system streaming technique. The installation of the client component will be described later on this article; we will focus first on the installation of the server component.

The installation has some requirements. The configuration needs to be stored on a Microsoft SQL database. This can be a dedicated Microsoft SQL server or, for smaller/test environments, an SQL Express version. In a production environment, a dedicated SQL server is advisable because, ideally, you would want to install at least two Citrix Provisioning Servers for fault tolerance and you would also like to have access to the database even if one server is unavailable.

You need to have ample disk space available for storing the virtual disks.

When using more Provisioning Servers, the disk space should be claimed on a file share, SAN or NAS. With a single server, this can also be located on the local storage. A Citrix License Server is also required (the same as for using XenApp or other Citrix products).

The server component also requires .Net Framework 3.0, which will be automatically installed during the installation, if not available already. The installation of the server component is started using the PVSRV_Server.exe. The installation is pretty straight forwarded. First, the license agreement needs to be accepted, followed by specifying some customer information and the location where the application needs to be installed. The most important part of the installation is the question about the components which you would like to install. Like most products, it offers to install all components or just a selection of those. Which components you will need depends on which roles are already available in your infrastructure and which you would like to use for this product. Remember that only one PXE role can be available per IP subnet.

Figure 1:
Selecting the components which will be installed

After this question the installation will actually start. When the installation is complete, the intial configuration will automatically start. During this intial configuration you can specify which supporting services  you will use, like DHCP and PXE services, where they are located and if you would like to create an new farm (creating an new Provisioning Server environment) or to join an existing farm (adding a Provisioning Server to current infrastructur). Also, the location of the virtual disk store, the network interface cards for the streaming protocol (including ports), enabling/disabling the TFTP service and the bootstrap configuration are a part of this intial configuration. This configuration can also be started later on to change these settings afterwards. Do not forget to add the DHCP options for PXE booting to your DHCP role, when using the PXE role.

Figure 2: Initial Configuration

Figure 3: Initial Configuration

The server component automatically installed the Provisioning Server console, but there is also a separate installation available to install the console on the administrator workstation or server.

Basic Configuration of the Provisioning Server environment

After the installation, the console needs to be started and connected to the farm the first time by specifying the name of (one of) the Provision Server console and the communication port.  After the connection is established several settings can be configured like automatic updates of virtual disk, high availability, delegation of control, tuning of the streams and much more. These topics are pretty interesting, but will go into too much detail for this article. I will keep to the most basic configuration settings, which are needed to get the system up and running. The first thing that should be created is a so called Site. A site is a collection of servers, devices and connected stores. A site is simply created by right clicking the site component in the right pane. In the next dialog a (unique) name for the site needs to be specified and additionally a description, administration security and “auto add” can be configured. After a site is configured, additionally at least one Device Collection needs to be created. In this dialog also a name, description, a template target device (the configration of this client will be used to configure the new clients) can be set. When the site configuration is finished, a store needs to be created. In this store the vDisks will be created, which will be used to host the operating system for the streaming technology.

Figure 4: Create a store for the vDisks

The store needs to have a name and needs to be connected to a site which “owns” the store. Logically, a path needs to be specified on which the virtual disks will be stored. Also the write cache location can be specified (the location where the streamed content on the client will be cached). Lastly, the server(s) need to be specified which will use the store for streaming the content.

Creating a Virtual Operating System

Now that the most basic configuration is done; the next step is to create a virtual disk, which can host the operating system (and the applications installed on the operating system). This is accomplished by right clicking on the store and choosing “create vDisk”. A dialog will pop-up in which you need to specify the following information: the site that will contain the vDisk, the server being used to create the vDisk, a (file)name for the vDisk, a description, the size of the vDisk and the VHD format.

Figure 5: Create a vDisk

In this version 5 the Microsoft VHD format is introduced, which gives the options to create a dynamic VHD format. With the dynamic format not the total specified size of the disk is reserved, but just a small file is created. When the vDisk is used to store files in it, the size will be automatically adjusted. A progress bar will be displayed during the creation and when the vDisk is created a file can be found on the specified path of the store. As you can see in the figure below the file is just about a 2 MB size.

Figure 6: The actual file of the vDisk

Now that the virtual disk is created, it is time to fix the operating system with the corresponding applications placed on the virtual disk. For this you need to install a system with the corresponding operating systems and applications using the traditional way; for example, using a CD set or an electronic software deployment. When the system is completely installed, the last step is to install the Provisioning Server Device software. This installation exists as a single executable. During the installation wizard, only very basic dialogs are presented; accepting the license agreement, supplying customer information and specifying the destination location where the files should be installed. After the installation the system needs to be restarted before you can use the client. But actually, the system needs to be configured within the Provisioning Server software before the system can be restarted. I will continue with this part in the next article, which will be published soon.


In this first article of this article series I showed you the first steps in using operating system streaming. We installed the Provisioning Server and the required supporting software, configured the basis setup of software, created a virtual disk and configured a system to create the image on the virtual disk. The next article will continue with actually creating the image, building a new system using the virtual disk and updating a virtual disk with updates.

If you would like to read the next part of this article series please go to OS Virtualization in Practice (Part 2).

About The Author

Leave a Comment

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top