Page tree
Skip to end of metadata
Go to start of metadata



The information on this page refers to LM-X License Manager 4.9.5 or newer, which introduced support for KVM and QEMU virtualization detection. If you are running a previous version of License Statistics, please see documentation for previous versions.

Licensing your software to run on virtual machines or in a cloud environment carries special considerations, as described below.

Virtual machine licensing

You can install a license server on a virtual machine. To do this, enable support for virtual machines in the license file.

By default, LM-X denies all checkouts for local licenses in virtual environments, and refuses to load licenses on license servers to prevent potential license overuse. Virtualization detection is officially supported for VMware, Microsoft Hyper-V, VirtualBox, KVM and QEMU.

Virtual machine environments are typically undesirable for use with software licensing. Normally, operating systems running in virtual environments are designed to be hardware independent, so Ethernet or harddisk HostIDs no longer specify physical hardware identifiers. Duplicating the virtual machines and modifying the HostIDs is simple and takes minutes to perform.

However, you may choose to explicitly allow your application to run in a virtual environment (for example, limited to use by trusted and enterprise customers) by specifying the SHARE keyword VIRTUAL for the particular feature (see FEATURE settings for details on setting the virtual share option in your license.)

You may also allow trial licenses to run on a virtual machine using LMX_OPT_TRIAL_VIRTUAL_MACHINE, described in LMX_SetOption.

There are a number of ways that LM-X makes it safe for you to deliver your application for use on virtual machines:

  1. Use floating licenses. Your software can be safely allowed to run on a virtual machine, because the license server, which is located on a physical machine, will ensure there is no license overuse.

  2. Use dongles. If your customer wants a license server running on a virtual machine, you can lock the license server to a dongle, which is a physical device that locks the application to the machine on which it's installed. Dongles, which may be obtained from X-Formation, provide adequate security to prevent cloning of the license server.

  3. Lock the license to a BIOS HostID. This solution works for both local licenses and network licenses. The BIOS on most virtual machines is unique, because it contains a unique virtual machine ID (UUID). An example is shown below:

    LM-X End-user Utility v3.4
    Copyright (C) 2002-2016 X-Formation. All rights reserved.
    BIOS: Phoenix Technologies LTD - UNKNOWN
    Hostid: VMware-42321a30c22ce364-aca97bac6ea0bdb8

    Note that the UUID can easily be changed, so this is not an entirely secure solution. However, if the virtual machine is connected to a management control solution (such as VMware vCenter), duplication of UUID's is typically not permitted and causes problems for real-life production setups.

Licensing for cloud applications

When using Amazon EC2, Microsoft Azure, or Google Compute Engine (GCE), you can use the Instance ID for the HostID (see HostID values). However, for other cloud service providers, virtual machines do not have HostIDs. To solve this problem:

  • As recommended above for virtual machines, it is highly recommended to use floating licenses.
  • Ask your customer to run a license server either inside or outside of the cloud environment. If your application does not require a high number of checkouts/checkins over short time intervals, it is recommended to connect the application to the existing license server on the end-user network.
  • As an alternative to having the customer run a license server, you can host the license server for the customer.