As the sun sets on Horizon 7, it’s time to embrace the future with Horizon 8. However, this upgrade comes with a significant change – Horizon 8 no longer supports linked clones. Instead, instant clones or full clones are the way to go. In this blog post, I will share my experience of converting linked clones to full clones at a customer site, highlighting the challenges faced and the solutions implemented.
Table of Contents
The Conversion Process
For this particular customer, we decided to convert the linked clones to full clones due to certain limitations with instant clones, specifically related to profile management. Here are the basic steps we followed:
- 1. Shutdown all the linked clones in the pool.
- 2. Convert the linked clones to full clones using the vSphere cloning process, assigning them new VM names.
- 3. Create a new manual dedicated desktop pool in Horizon.
- 4. Add the full clones to the newly created pool.
- 5. Assign users to the full clones.
- 6. Remove the linked clone pool from Horizon.
While steps 1 to 5 proceeded smoothly, we encountered challenges during step 6 – removing the linked clone pool. Let’s delve into the issue we faced and how we resolved it.
The Problem
When you remove the linked clone pool from Horizon, the composer component initiates its work. It successfully removes all the VMs associated with the linked clone pool. However, here lies the problem – it also deletes all the computer objects from Active Directory. This poses a significant issue because in step 2, we assigned new VM names to the full clones, but within the full clones themselves, the computer names remained the same. Consequently, if the computer objects are deleted, the shiny new full clones become untrusted within the domain.
Finding the Solution
To overcome this challenge, we needed a workaround that would preserve the trust relationship between the full clones and the Active Directory. Here’s how we tackled it:
Essentially, the process is straightforward: first, remove the linked clone computer objects from the ADAM database, and then proceed to delete the pool. Allow me to provide you with a detailed, step-by-step guide for this procedure.
Create an unencrypted backup from the Horizon LDAP database: vdmexport -f Myexport.LDF -v | |
Disable the pool and halt provisioning. | |
Delete the VMs associated with the pool in vCenter. | |
Now let’s delete the VMs in the Horizon Adam database. | |
Connect to the database with the specified values. Name: Default naming context | |
Create a new query | |
Give the query a name and click on browse | |
Select the Servers OU | |
Use the following query string: (&(objectClass=pae-VM)(pae-displayname=VirtualMachineName)) In this query, replace “VirtualMachineName” with the actual name of the virtual machine you are attempting to locate the GUID for. You can utilize * or ? as wildcards to match multiple desktops if needed. For example, in this test scenario, I used “LCTEST10-*” to search for virtual machines with names starting with “LCTEST10-“. | |
The VDI’s will show up in the ADSI Edit query that we just created | |
You can double-check if these are the correct VDIs to delete by double-clicking on one of the machines that have been found. | |
If you are certain that these are the correct VDIs, go ahead and proceed with their deletion. | |
Check whether the linked clone pool is empty within Horizon. | |
Proceed to delete the linked clone pool within Horizon. | |
Verify if the linked clone pool has been successfully removed. | |
The outcome is that the VMs are deleted from vCenter, the pool is removed from Horizon, but the computer objects remain in the Active Directory. | |
After completing the previous steps and deleting the pool from Horizon, it’s important to note that the replica is not automatically removed. To unprotect the replica, you can use SviConfig.exe, which can be found on the composer server in the directory: C:\Program Files (x86)\VMware\VMware View Composer.
To unprotect the replica, execute the following command:
SviConfig.exe -operation=UnprotectEntity -DsnName=HorizonComposerDNSNAME -DbUsername=DBUsername -DbPassword=DBPassword -VcUrl=https://vcenter.fqdn/sdk -vcusername=vcenterusername -vcpassword=vcenterpassword -InventoryPath="/DATACENTERNAME/vm/VMwareViewComposerReplicaFolder/replica-ID-ID-ID"
After executing this command, manually delete the replica from vCenter.
Conclusion
The process of converting linked clones to full clones during the upgrade from Horizon 7 to Horizon 8 demands planning. Although the transition is generally smooth, the elimination of the linked clone pool presents challenges to Active Directory computer objects. By adhering to the guidance provided in this blog post, you can successfully overcome these challenges and accomplish a seamless conversion. Following this guide will contribute to the success of your Horizon upgrade journey!