PVS BDM boot on Moonshot

In our environment, we can’t implement TFTP load balancing without significant additional costs. Our NetScaler environment with Traffic Domains does not support TFTP load balancing. We need to license additional appliances if we want do TFTP load balancing with NetScaler.

We also use Moonshot instead of virtualization for our terminal servers.

For those reasons, I was looking for alternatives. Ben Splittgerber (@bsplittg) then gave me the crucial hint that I should set up a BDM partition. He has already implemented this solution like this for one of his customers.

After several previous tests, I implemented the solution as described below.

BDM export boot partition

  1. Configure a vDisk to cache on server
  2. After starting a test server from this vDisk, copy “C:\Program Files\Citrix\Provisioning Services” to the local file system.
  3. Delete local disk and create a partition with the size of 10 MB in the file system FAT (not FAT32!) format. The rest of the disk can then be used as write cache.
  4. Start BDM.exe from “C:\Program Files\Citrix\Provisioning Services” to configure and write bootloader on this new partition
  5. Configure a drive letter for this partition and backup the EFI folder

Preparing targets

To prepare the targets we use SCCM, for this I created the task sequence. The task sequence includes a package which contains the scripts and the BDM boot area.

To select automated on both locations the appropriate configuration, I had to decide at which location the target is provided and choose the appropriate configuration file. Our computers start with two characters that help to identify the location. That looks probably different everywhere and must be adjusted accordingly.
Based on this information, the script decides whether to take the configuration for the northern or southern location.

At both locations, it has two PVS servers which are located in a separate PVS site.

Below you can see the description of the configuration.

The task sequence performs the partitioning first. There, the boot partition and the write cache partition are created.

In the following step, the script for setting up the BDM partition is called.

When the script is called, the computer name is transferred from SCCM. The target does not yet have the variable which contains the computer name at this time, so we pass this variable as a parameter to the script.

This script formats the BDM partition and copies the files.

It finds the first two characters and sets the location as a variable. Then the partition is formatted with FAT and assigned a drive letter. Then the corresponding configuration file containing the location name from the variable can be copied. At the end, the letter is removed.

The package contains the following structure, the script for preparing the BDM partition:

Then the two configurations for the two sites:

And last but not least the UEFI bootloader:

The script decides whether the configuration NORTH or SOUTH is taken. The difference is the DNS name, which looks like this:

At the end, the BIOS can be customized so that the server starts from the disk, the bootloader is then loaded.