When a target device starts it needs to somehow be able to find and contact a provisioning server to eventually stream down the appropriate vDisk.This information is stored in a so-called Bootstrap file named ARDBP32.BIN. It contains everything that the target devcie needs to contact a pVS server so that streaming process can be initialized.

The boot strap file be delivered through a TFTP server, this also partly applies to the alternative BDM(Boot Device Manager)approach. There are some distinct differences between TFTP and BDM

TFTP

When using TFTP , target device needs to know how and where it can find the TFTP server to download the bootstrap file  before connecting PVS server. TFTP can be configure in HA through Netscaler to avoid single point of failure. Provisoning services has its own built-in TFTP server. However, we are free to use whatever you prefer.

One of the most popular approach in delivering TFTP server address to your target devices is through DHCP, but there are other option as well..

BDM(Boot Device Manager)

There are actually two different methods to make use of the Boot Device Manager.

Let start with PVS, PVS offers a quick wizard which will generate a relatively small .ISO(around 300KB). Next , you configure your Target devices to boot from this .ISO file, using their CDROM/DVD players. This method uses a two-stage process where the PVS server location will be hardcoded into the bootstrap generated by BDM. The rest of the information like the (PVS device drivers) is downloaded from the PVS server using a TFTP protocol (UDP port 6969), here TFTP will still be used.

As of XenDesktop version 7.x, when using XenDesktop setup wizard we can create and  assign a small BDM hard disk partition, which will be attached to the virtual machine as a separate virtual disk. Using this method the above mentioned two-stage approach is no longer needed  because partition already contains all the PVS drivers. This way all the information needed will be directly available without the need of PXE,TFTP & DHCP.

Note:

As and added advantage using the BDM method will also  decrease the boot time by around 5 to 10 sec since we don’t have to wait for PXE and TFP

Citrix Provisioning Services Network Boot Process

  • VM/Target Device is powered on
  • Device BIOS configured to perform a network boot
    • (PXE/Network Boot)
  • Network IP Helper(s)
    • Used to extend the limitations of DHCP
      • By default, DHCP services are only able to allow target devices to send out a network broadcast limited to only the network/VLAN that it currently resides on.
      • Using an IP Helper allows the switching environment to identify that the DHCP Server(s) are physically located on a different network/VLAN.
      • Values of the IP Helper are simply the IP address of the associated DHCP Server(s).
  • Target device reaches and communicates with DHCP Server.
    • DHCP network scope settings are configured for the specific network that the target device is physically located.
    • DHCP Server allocates standard/basic network configuration values
      • IP Address, Subnet Mask, Default Gateway, DNS Server(s)
    • DHCP Server (in this special use case of PVS) also assigns some more advanced option setting and values.
      • DHCP Option 66
        • Used to provide the target device with a TFTP Boot Server
          • TFTP boot server services are typically setup and configured on your actual PVS Servers.
          • If needed, and on rare occasion, TFTP services can also be hosted on an isolated/dedicated infrastructure server.
      • DHCP Option 67
        • Bootstrap file, boot file name
          • Under a PVS environment, the default file name is ARDBP32.BIN
            • Very common to use default file name, rarely changed from default name
  • Target Device Connectivity to Provided TFTP Server
    • Target device connects to the TFTP server (typically a PVS Server) provided by DHCP services
      • TFTP services reads associated bootstrap, boot file (ARDBP32.BIN) information to provide back to the client as a usable network boot server.
        • TFTP bootstrap typically houses connectivity information for all of the PVS servers under your associated PVS Farm
  • Target device communicates to the provided PVS Server and its associated running “Citrix PVS Stream Service”
    • Target device MAC address lookup completed
      • If there is an associated target device available under the PVS environment, it’s boot setting values are read and the target device is booted according to these settings.

High Level Boot steps

  1. First the target devices boots and acquires an IP address
  2. The target device first identifies a TFTP server
  3. Next the bootstrap file will be downloaded and the target device will be boot from it.
  4. The target device will contact and log onto one of the PVS servers.
  5. The logon server will notify the target device about the streaming server.
  6. Target device starts streaming the vDisk from the PVS server.

Just to summarize, PXE is used for getting the TFTP Server IP and bootstrap file name details by the clients and TFTP is used for downloading bootstrap program file.

Is there a way to eliminate PXE from the communication process?

Yes, by specifying TFTP Server IP Address and bootstrap file name in DHCP Scope options on DHCP Server. DHCP Scope options 66 and 67 can be used. DHCP server provides TFTP details to the clients along with dynamic IP address. Client VMs will directly contact TFTP server and download the bootstrap program.

Is there a way to eliminate both PXE and TFTP from communication process?

Yes, by using Boot Device Manager (BDM) both PXE and TFTP can be eliminated from communication process. Using Boot Device Manager utility on PVS Server, bootstrap file can be written into a ISO image, USB flash drive, or local hard drive. Client VMs need to be configured to boot from ISO image file. As ISO image file itself has bootstrap program, clients doesn’t use PXE or TFTP.

Provisioning Services Boot Process Diagram — Click to open