If you have ever worked with SCCM, you may have used Collections to group desktops together for application deployments or patch management. Collections provide a way to group users and computers for organization and resource management.
Desktop pools are a similar concept in Horizon. They are a logical grouping of virtual machines that users can access, and these groupings control specific settings about the pool. This includes how the desktops are provisioned and named, protocols that are available for connectivity, and what physical infrastructure they are deployed on.
Horizon has a few different types of desktop pools. Each pool handles desktops in different ways, and they each have different purposes. The type of pool that you select will be determined by a number of factors including the use case, the storage infrastructure and application requirements.
The type of desktop pools are:
- Full Clone Pools – Each virtual desktop is a full virtual machine cloned from a template in vCenter. The virtual machines require a desktop management tool for post-deployment management. VMs are customized using existing Guest Customization Specifications. These desktops usually persist after the user logs out.
- Linked Clone Pools – Each virtual desktop is based on a parent VM snapshot and shares its disk with the parent virtual machine. Changes to the linked clone are written to a delta disk. The virtual machines are managed by View Composer. Linked Clone desktops can be Floating or Dedicated assignment, and they can be configured to be refreshed (or rolled back to a known good snapshot) or deleted on logoff.
- Instant Clone Pools – Each virtual desktop is based on a parent VM snapshot. The snapshot is cloned to a VM that is deployed to each host, powered up, and then stunned. All guest VMs are then “forked” from this VM and quickly customized. Guest VMs share virtual disks and initial memory maps with the parent VMs. VMs are managed by vCenter and a “next generation” Composer that is built into the Connection Servers. There are limitations to Instant Clone desktops including a cap of 2000 desktops per vCenter, no support for GPUs, and can only be used in floating assignment pools.
- Manual Pools – The machines that make up the manual pool consist of virtual and/or physical machines that have had the View Agent installed. These machines are not managed by Horizon.
- Remote Desktop Session Host Pool – The machines that make up these pools are Windows Servers with the Remote Desktop Session Host Role installed. They can be provisioned as linked clones or manually, and they are used for published desktops and published applications.
There is one other choice that needs to be selected when creating a desktop pool, and that is the desktop assignment type. There are two desktop assignment types:
- Floating Assignment – Desktops are assigned to users at login and are returned to the pool of available desktops when the user signs out.
- Dedicated Assignment – Desktops are assigned to a user, and the user gets the same desktop at each login. Desktops can be assigned automatically at first login or manually by an administrator.
For this walkthrough, I will be doing an Automatic Floating Assignment Linked-Clone desktop pool, otherwise known as a Non-Persistent Linked Clone Pool. This type of desktop pool utilizes View Composer and
1. Log into the Horizon 7 Administrator. Under Catalog, select Desktop Pools.
2. Click Add to add a new pool.
3. Select the Pool Type that you want to create. For this, we’ll select Automated Pool and click Next.
4. Select whether you want to have Floating or Dedicated Desktops. For this walkthrough, we’ll select Floating and click Next.
Note: The Enable Automatic Assignment option is only available if you select Dedicated. If this option is selected, View automatically assigns a desktop to a use when they log in to dedicated pool for the first time.
5. Choose the type of virtual machines that will be deployed in the environment. For this walkthrough, select View Composer Linked Clones and click Next.
6. Each desktop pool needs an ID and a Display Name. The ID field is the official name of the pool, and it cannot contain any spaces. The Display Name is the “friendly” name that users will see when they select a desktop pool to log into. You can also add a description to the pool.
7. The next screen after setting the pool name is for the pool settings. There are a lot of options here, that control how the pool will behave. Some of the options are:
- If the pool is enabled
- Default power state of desktops
- Display protocols
- Adobe Flash settings
8. The next screen will allow you to configure the provisioning settings for the pool. This screen allows you to control provisioning behavior, computer names, and the number of desktops provisioned in the pool.
9. The next screen allows you to set up a special non-persistent disk for disposable files. Disposable files are classified as temporary files and page files. If a disposable disk is used, these files will be redirected to here, and this disk is deleted whenever the VM is shut down.
Note: I don’t recommend the use of disposable file redirection.
This screen allows you to determine how the virtual desktop will handle these files.
10. Select the option to store Replicas on a separate datastore if you want to place them on a different storage tier. Andre Leibovici has a good article on the benefits of placing Linked Clone replicas on a different datastore.
11. After you choose whether or not to place the Replica Disks on a separate datastore, you need to configure the pool’s vCenter settings. This covers the Parent VM and the snapshot that the Linked Clones will be based on, the folder that they will be stored in within vCenter, and the cluster and datastores that will be used.
In order to configure each setting, you will need to click the Browse button on the right hand side of the screen. Each step must be configured in order.
11-A. The first item that needs to be configured is the Parent VM that the Linked Clones will be based on. Select the VM that you want to use and click OK.
11-B. The next step is to select the Parent VM snapshot that the Linked Clones will be based on. Select the snapshot that you want to use and click OK.
11-C. After you have selected a Parent VM and a snapshot, you need to configure the vCenter folder in the VMs and Templates view that the VMs will be placed in. Select the folder and click OK.
11-D. The next step is to place the pool on a vSphere cluster. The virtual machines that make up the desktop pool will be run on this cluster, and the remaining choices will be based on this selection. Select the cluster that they should be run on and click OK.
11-E. The next step is to place the desktops into a Resource Pool. In this example, I have not resource pools configured, so the desktops would be placed in the Cluster Root.
11-F. The final two steps of this section are to select the datastores where the Linked Clones and the Replicas will be stored. Linked Clones can be stored on multiple datastores, so you can select multiple datastores in this section. You can also configure View to allow the datastores to be overcommitted by changing the Storage Overcommit option on each datastore.
11-G. Replicas can only be stored on a single datastore. Select the datastore that you want to store them on and click OK.
Note: After you have configured the Replica Datastore, you may receive the following warning about storing Replicas and Linked Clones on local datastores. If you are using a SAN or a NAS and not storing any Replicas or Linked Clones on local datastores, you can ignore this message.
12. The next screen is for configuring the advanced storage options. The three options that can be configured on this screen are the View Storage Accelerator, disk space reclaimation and the option to use native NFS snapshots.
If you use View Storage Accelerator or disk space reclamation, you can configure blackout times where vCenter will not run these tasks as these tasks may generate a significant amount of storage IO.
13. To set the blackout times for the pool, click the Add Button and select the days and times when you do not want these operations to run. You can set multiple schedules.
14. After you have configured the advanced storage options, you need to configure the Guest Customization settings. This screen allows you to select the domain and organizational unit for the desktops and whether Sysprep or Quickprep will be used to prepare the desktops.
15. Review the settings for the pool and verify that everything is correct. Before you click Finish, check the Entitle Users checkbox in the upper right. This will allow you to select the users and/or groups who have permission to log into the desktops.
If you need to make a change to the pool settings, the left-hand column contains links to each page in the wizard.
17. After you click Finish, you will need to grant access to the pool. View allows you to entitle Active Directory users and groups. Click Add to entitle users and groups.
18. Search for the user or group that you want to add to entitle. If you are in a multi-domain environment, you can change domains by selecting the domain from the Domains box. Click on the users or groups that you want to grant access to and click OK.
Note: I recommend that you create Active Directory security groups and entitle those to desktop pools. This makes it easier to manage a user’s pool assignments without having to log into View Administrator whenever you want to make a change.
19. You can check the status of your desktop pool creation in vCenter. If this is a new pool, it will need to clone the VM into a Replica before it can create the Linked Clone desktops.
Once the desktops have finished composing, you will be able to log into them through VMware Blast or the Horizon client.
I realize that there are a lot of steps in the process of creating a desktop pool. It doesn’t take nearly as long as it seems once you get the hang of it, and you will be able to fly through it pretty quickly.