Today most application producers place many licensing restrictions on applications running in virtual environments to ensure the software is properly licensed and not out of compliance. Unfortunately many enterprises would argue that this diminishes the advantages of virtualization. Some of the licensing restrictions often used include the use of an external hardware token or a dedicated physical machine limiting the ability for enterprises to move workloads across different virtual data centers. Traditionally, producers did not have many options to detect and prevent an enterprise from cloning the virtual machine. As a result, this cloning often resulted in the enterprise being accidentally out of compliance.
With the most recent release of Windows, Microsoft has added functionality that will effectively provide a means for the producer to detect (and possibly prevent) if an application is running in a cloned virtual environment. The feature known as VM-Generation ID allows hypervisor vendors (VMware, Citrix, and Microsoft) to expose a virtual machine identifier that can be used to detect the state of a virtual machine. This VM-Generation ID capability would allow an application running in a virtual machine to react and take proper actions whenever the VM-GenerationID has changed. The following scenarios would cause a change in the VM-GenerationID:
|Scenario||Generation ID changed|
|Virtual machine is paused or resumed||No|
|Virtual machine reboots||No|
|Virtual machine host reboots||No|
|Virtual machine starts executing a snapshot (every time)||Yes|
|Virtual machine is recovered from backup||Yes|
|Virtual machine is failed over in a disaster recovery environment||Yes|
|Virtual machine is live migrated||No|
|Virtual machine is imported, copied, or cloned||Yes|
|Virtual machine is failed over in a clustered environment||No|
Source: Microsoft – Virtual Machine Generation ID – http://www.microsoft.com/en-us/download/details.aspx?id=30707
Taking advantage of VM-GenerationID would provide the application producer the ability to inform enterprise users that they may be out of compliance.
The upcoming release of FlexNet Licensing (specifically FlexNet Publisher) will support this safeguard and will allow the producer to detect and possibly prevent the application from running in a cloned virtual environment, while at the same time allowing the enterprise the ability to safely clone and/or properly move workloads across virtual data centers without being out of compliance.
What steps have you taken to tackle licensing in virtual environments?