From Greg Porter's Wiki

Jump to: navigation, search


XenDesktop's Live Desktop Streaming

This is obviously a work in progress. Go read the manuals, that's what I'm doing.

Using Citrix Provisioning Server (PVS) 5.1 you can boot machines from one central image.

This product was made by Ardence. This is an enterprise software streaming solution that delivers Windows or Linux operating systems along with all their applications on demand from networked storage. Any x86-based computer - desktop, server, or device - can be provisioned, or re-provisioned from bare metal to production in minutes.

At one point, Dell licensed Ardence and called it On Demand Desktop Streaming (ODDS). It may be still possible to get PVS (just PVS) from Dell.

Ardence was bought by Citrix in 2006. The product is no longer available separately from Citrix. Citrix has bundled PVS into 2 different product lines.

For server provisioning, it is bundled into Citrix Essentials. You have to purchase Essentials to get access to a PVS license.

For desktop provisioning, it is bundled with XenDesktop. You get access to PVS with XenDesktop licenses.

Pre-requisites and things to think about

The PVS server will be doing some broadcast based things on the network, therefore it's probably easiest if the PVS server is on the same subnet as clients. At least have a NIC in the server on the same subnet, even if that NIC isn't the main NIC used for server management.

Clients will be booting up and on the network before they have an operating system. Therefore you *HAVE* to have something to issue them an IP address, like a DHCP server. We already had a Windows DHCP server, so we chose to use that. There's lots of choices. Decide how you are going to handle DHCP, because the PVS installer will want to know.

PVS farm metadata is stored in a SQL Server 2005 database. You need a database. You can use the (lame-o) SQL Server Express 2005 database for demonstration or small PVS instances. The docs say it should be on its own server in a production environment. For demo purposes, it can be on the same server as PVS.

Citrix products like PVS require a licensing server to operate. If you don't have any Citrix products already, then you'll have to load Citrix Licensing Server. If you have one already, you can use it. I don't think it matters where this server is installed, it works across the network. I didn't have one already, and I chose to load it on the PVS server before I did the actual PVS install.

Get media

Get a My account (free registration required). You need this to get the downloads and 90 day eval license.

From, go to Downloads, log in, and then click on "Citrix XenDesktop"

Pick "FlexCast Delivery Technology with HDX"

Pick "Provisioning Services for Local Streamed Desktops & Virtual Desktop Provisioning"

Get the iso, burn the iso.

Install SQL Server 2005 Express

I'm doing this for demonstration purposes. Therefore I loaded SQL Server on the same vm as the PVS server. The docs say don't do this for production.

(If you choose to make a separate SQL Server database server, make sure you have a DBA standing by to help with configuration. Specifically SQL Server will need to be configured for network access (enable TCP/IP) and have authentication set up. PVS will *NOT* work against a default install of SQL Server on another server until SQL Server on the other server is properly configured. Ask me how I know.)

Make sure all patches from Microsoft Update loaded, including .Net (needed by SQL Server), this will take a reboot or two.

If you are using domain based security, make sure that the machine is in the domain already, before starting the installer.

If your machine doesn't have at least 1024 MB of RAM, and the installer will complain.

I ran the installer for SQL Server Express 2005 that came with PVS 5.1 on the DVD. I took all defaults.

Reboot, I used Microsoft Update to check for patches, patched with Service Pack 3, reboot, lather, rinse, repeat.

Install Citrix Licensing Server (if you don't have it already)

Citrix Licensing Server is on the PVS DVD in the Licensing folder.

The installer requires Java 1.6.0, Update 5. If you don't have Java, go to and get Java.

Start the license installer.

(On a default load of Windows 2008, it may complain that these roles are not installed:

  • Windows Authentication security role
  • IIS 6 Metadatabase compatibility role
  • IIS 6 WMI compatibility role

This is a generic error, it complains with this error if any or all of these is not installed. Install any missing roles. Restart the installer.)

I took all the defaults for port number, etc. Yay, licensing server is now installed. It had one licensing file with it, I don't know if that is sufficient.

You can also choose optionally to install the licensing server console, this requires a web server (IIS or Apache) to work. It wouldn't hurt to have a console to manage the license server with if you don't have one already.

I used IIS. On Windows 2003, go to Add or Remove Programs, Add/Remove Windows Components, select Application Server. You'll need Disk 2.

Installation of PVS

Find a Windows machine to load this on. (I used a Windows 2003 vm I built for PVS.) For demo purposes, any old 2003 or 2008 machine will do, you just need some hard drive room to store demo images on.

I hit autoplay on the DVD, and a menu started. There's "Console", "Server" and a couple other choices. I picked "Server".

At this point, it doesn't ask too many questions. I took all the defaults.

It completes and then starts a configuration wizard for a basic server installation.

The first question asks about DHCP. It wants to know what you want to use to assign clients a boot time network address. You could set up Microsoft DHCP on the PVS server, or use the BOOTP service that comes with Provisioning Server, or use these services on another server. I chose to use Microsoft DHCP on another server I had already.

I will use my own DHCP

The next question is about how the files will be delivered during PXE boot. I'm not sure what was best, so I left it the default.

Default PXE

Next is Farm Configuration where it asks if you want to "Create a farm" or "Join a farm". I'm loading my first PVS server, so I answered "Create a farm". (A farm is a collection of PVS servers, I'll make a "farm of one" for demo purposes).

Now, the "Database Server" dialog will let you browse and see SQL Servers that are running. I picked the SQL Server Express instance named "SQLExpress" that I just installed. Take the defaults.

It'll eventually ask which NIC you want to use for Stream Services. I assume this needs to be on the same subnet as the clients. Make sure you have a NIC for this wired up. Pick that NIC.

It then asks for TFTP server. I selected to use the PVS TFTP server, not the default (I guess it comes with one, but you could use another).

It asks a few more questions, I took all the defaults. It starts the network services and says "Done". Yay.

PVS Console

The console to manage the thing is another installer dialog. I installed the console on the PVS server. It appears you could install this on any Windows box.

Start autorun on the DVD again, select Install Console. I took all the defaults.

License PVS

You need a Citrix Licensing Server installed somewhere, preferably with a licensing console you can use.

You'll know if licensing isn't happy, if there are issues, clients will see (from an XP client):

No license

It really does shut down the client in 5 minutes, too.

You can get an evaluation license.

First you need a My Citrix log in (free registration required).

Get one, log in. Go to Downloads on the top bar.

Click on XenDesktop 4 Evaluation.

Click on "Show Downloads" for FlexCast Delivery Technology with HDX.

Click on Citrix XenDesktop 4 Evaluation - License File.

This will open a new browser window entitled "XenDesktop Evaluation - License Retrieval". Click on the "Retrieve License" button.

You should see some licenses with today's date on them. If you've done this before, you may see older licenses. I saw 5 licenses, all with today's date on them. Mine said "Citrix XenDesktop - Evaluation (90 day)" on them. All 5 looked the same. I clicked on the first one.

This will go to another window entitled "Activation System/Manage Assets". Click Continue.

You now have to pick your reseller. This will be the sales person that will call you. Pick someone you'd like to talk to. I used "CPI Solutions" in Camarillo, CA. Hit continue.

It next has you verify your contact information so the friendly sales person can call you. Click Continue.

Then it takes you to a form entitled "Citrix Activation System" which is basically a big "ship to" form, with address, phone number, etc., so the friendly sales person will have all of your information. Yay! I love talking to them. Fill out the required items, hit submit.

Next it takes you to a form that needs to know the host name of the Citrix Licensing Server, the host the licensing server is installed on (not PVS). In my case, both are installed on the same host. So in my case, I supplied the name of my joint Licensing and PVS host. Remember, the name of the licensing server not PVS. Click continue.

Now you're on the form that you enter the name of the licensing server on. Enter the DNS name of the licensing server. This is what you'd get from a Windows command prompt if you typed the command 'hostname'. It is case sensitive. Run hostname in a command prompt so you are sure it matches. Enter the name. Hit Allocate.

They display the name you entered to confirm it. If it is right, click Confirm.

Now it will take you to a "Download License File" page. Basically you need to get the file, and put it where it goes on the licensing server.

I put it on my desktop.

Then I started my Licensing Management Console on the licensing server. I clicked on the Configure Licensing Server link. I then clicked on "Step 2: Copy license file to this license server" link. This starts a "Upload license file" dialog. Go to wherever you put the license file (in my case, on the desktop). Select the file. Click Upload.

You should see the license file you just uploaded (and the one the license server comes with, total of 2).

License files

If you're curious what all is licensed, click on the "Complete License Inventory" link.

The XenDesktop eval license comes with lots of licenses

Using PVS


You basically follow the step by step in the "Citrix Provisioning Server 5.0 Installation and Configuration Guide", Chapter 2, "Installing and Configuring", starting with Task 7 (pg 40), "Create a Store", etc.

"Configure Bootstrap" on PVS Server to enable verbose client boots

This isn't really too verbose. It'll display a little DHCP information during PXE boot, and then a little bit of PVS server information during boot. I just leave it on all the time. On or off, your choice. I choose on.

In the PVS console, go to Sites, Servers, right click on your server. Pick Configure Bootstrap.

Configure Bootstrap

Go to the Options tab, select Verbose mode.

Verbose mode

Make a "store", a place to store vDisks

Create a store. A store is used to hold vDisks, which hold (are) images. So you potentially will have a number of these, and they may be large. Therefore you need to think about a place large enough to hold these.

  • Make a folder. I named mine pvs.
  • Open the console, right click Stores, Create store.
  • Enter the path to the folder you just made.
  • The only other required thing here is to go to the Servers tab and select your PVS server.

I didn't fool with anything else.

Make a vDisk to write the image to

Now you need to make a virtual disk (vDisk) in the store you just made.

  • Right click on vDisk Pool, and select Create vDisk.
  • Change the site, store, and server name if needed (probably not).
  • Enter a file name for the vDisk. Keep it simple.
  • Enter the size you want for the vDisk. This will have to be big enough to hold the image. It *ONLY* needs to be big enough to hold the actual used size, not the size of the whole hard drive of the image source machine. In other words, say your image source machine has a 200 GB drive. You used the whole drive for the C: drive (one partition). Your XP install takes up 20 GB of the 200GB available. The vDisk only needs to be 20GB. (Probably should make it a bit bigger just to give yourself some breathing room later, say 25GB total).

You could format the vDisk now from the console. We opted to format it later, using the image source machine.

Prepare the image source machine

This is the "target device" that you will use to build an image on. It should be the same hardware-wise, as the machines you will run the image on with PVS.

PVS seems a bit fussy on hard disk partitioning. In successful attempts building images, I kept it simple.

  • Make sure that the image source machine has a DHCP entry. It should be able to get a proper IP address at boot time.
  • Zeroize the whole hard drive with a disk nuker like DBAN. This will start you off with no partitions or other crap on the drive.
  • Pick an operating system to use on the image.
  • Do a simple installation. Try to keep it small and simple. Use the whole disk for the install, don't do a bunch of complicated partitioning. For Windows XP images that actually worked, we put XP on the whole hard drive (one partition for C:).
  • Patch until they aren't any more patches. Reboot as required.
  • Now add the PVS target device software. This is on the PVS disk. Insert the PVS disk. It should autostart.
  • Select Target Device installation.
  • Take the defaults.
  • Make note of the machine's MAC address. You'll need that in a moment.
  • Stand by to reboot. We'll reboot in a moment.

Make an entry in PVS for the image source machine

  • Right click on the collection in the PVS console, select Create Device.
  • Enter the MAC address for the source image machine.
  • The name is a free text field, I use the DNS name for the image source machine, but it doesn't matter to PVS.
  • Description is optional.
  • Save it, hit ok.
  • Right click on the entry you just made, click Properties.
  • At this stage, you want the image source machine to boot from its hard drive. Change "Boot from: vDisk" to "Hard Disk".
Boot from hard drive
  • Click on the vDisks tab. You want the image source to use (write to) the vDisk you just made. Click Add, select the vDisk you just made.
  • Leave the rest alone. Click ok.

Use PVS with the image source machine

This is a little non-intuitive. What you want to happen next is:

  1. Boot from the network (PXE). Yes, even though you selected "Boot from hard drive".
  2. Machine should get an IP address from your DHCP server.
  3. Machine should talk to PVS, and PVS will tell it to boot from hard drive.
  4. Machine will boot to hard drive.
  5. The "target device software", the PVS client software, will attach the vDisk to the client. It should appear as a local hard drive in "My Computer".

So reboot the image source machine and select network boot (PXE).

  • Verify that you get a DHCP address.
  • Verify that PVS tells the machine to boot from hard drive.
  • Verify that the PVS client software attaches the vDisk as a local disk.
  • Verify that you actually pull a XenDesktop License for the client. In the PVS console right click on the client and look at the Status tab. If you don't have licensing happy, you'll see nothing and the client will turn itself off 5 minutes after boot.

If all of that doesn't happen, go back and double check your work. You can't go any further unless this is all working.

Use the image source machine to format the vDisk

OK, so assuming you image source machine is functional, it should see the vDisk you prepared earlier as a local hard drive through PVS magic.

Quick format the vDisk with your favorite file system (I used NTFS for my XP image).

Format the vDisk

Use the image source machine to make the image

Now you have a image source machine ready to make an image from, and a blank vDisk prepared to hold the image.

Find the Image Builder utility that comes with the target device software. During my tests with XP, the installer did not make a proper shortcut in the Start menu for this, so I had to go digging around in the Citrix folder in Program Files and find it.

Find the Image Builder

Start the image builder.

Image Builder

After it starts, click on the Optimize button. This will suggest some housecleaning image preparations. Take them all, click on OK. The optimization only takes a second.

Optimization Tool

Now you're (finally!) ready to make an image. Verify that the destination drive is indeed the vDisk you prepared, click Build, then Yes.

Yes, build

You're finally making an image! This will take a while. My image source machine is using about 8GB of disk, and imaging 8GB took about 20 minutes.

Building an image

You should get this prompt if all goes well. Click OK.

Build is done

Turn the image source machine off.

Try booting the image source machine from the image you just made

Right click on the image source machine's entry in the PVS Console. Change "Boot from:" back to vDisk (earlier you changed this to "hard drive").

PXE boot the client. You should see that the client comes up like before BUT IT IS USING THE IMAGE TO BOOT FROM, not its local hard drive. That is seriously cool. If you want to smile even wider, time how long it takes to get from boot to desktop using image versus hard drive. The hard drive will be SLOWER. It appears that PVS streaming an image across Gigabit Ethernet is a lot faster than internal hard drive. Go figure.

When you're done being amazed, turn the image source machine back off.

Mark the image as shared

This will allow other clients to use the same image.

By default, vDisks are "private", meaning that only the machine that owns or made them can use them. To enable serious streaming magic, you need to change the mode from "Private Image" to "Standard Image". In the console, find your vDisk, right click it, go to Properties, Edit File Properties, Go to the Mode tab and make the change.

Change to Standard

Add more clients

As long as the hardware is the same, you can use this image to boot multiple clients. It's common to boot whole classrooms or buildings from one image.

For each client you want to use this image:

  • Right click on the collection in the PVS console, select Create Device.
  • Enter the MAC address for the source image machine.
  • The name is a free text field, I use the DNS name for the image source machine, but it doesn't matter to PVS.
  • Description is optional.
  • Save it, hit ok.

By default these will boot to vDisk. You need to tell them which vDisk to use.

  • Right click on the entry you just made, click Properties.
  • Click on the vDisks tab, add vDisk, click on the image you just made and tested.
  • Leave the rest alone. Click ok.

At this point, you can PXE boot the clients, and they will boot from the image.

Previous botched attempts to load PVS


Personal tools