Citrix ADC virtual CPU licensing
Data center administrators like you are moving to newer technologies that simplify network functions while offering lower costs and greater scalability. Newer data center architecture must include the following features in the least:
- Software-defined networking (SDN)
- Network functions virtualization (NFV)
- Network virtualization (NV)
Such a movement also needs the software requirements to be dynamic, flexible, and agile to meet the ever-changing business needs. Licenses are also expected to be managed by a central management tool with full visibility into the usage.
Virtual CPU licensing for Citrix ADC VPX
Earlier, Citrix ADC VPX licenses were allocated based on the bandwidth consumption by the instances. A Citrix ADC VPX is restricted to use a specific bandwidth and other performance metrics based on the license edition that it is bound to. To increase the available bandwidth, you must upgrade to a license edition that provides more bandwidth. In certain scenarios, the bandwidth requirement might be less, but the requirement is more for other L7 performance such as SSL TPS, compression throughput, and so on. Upgrading the Citrix ADC VPX license might not be suitable in such cases. But you might still have to buy a license with large bandwidth to unlock the system resources required for CPU-intense processing. Citrix ADM now supports allocating licenses to Citrix ADC instance based on the virtual CPU requirements.
In the virtual CPU-usage-based licensing feature, the license specifies the number of CPUs that a particular Citrix ADC VPX is entitled to. So, the Citrix ADC VPX can check out licenses for only the number of virtual CPUs running on it from the license server. Citrix ADC VPX checks out licenses depending on the number of CPUs running in the system. Citrix ADC VPX does not consider the idle CPUs while checking out the licenses.
Similar to pooled license capacity and CICO licensing functionalities, the Citrix ADM license server manages a separate set of virtual CPU licenses. Here also, the three editions managed for virtual CPU licenses are Standard, Advanced, and Premium. These editions unlock the same set of features as those unlocked by the editions for bandwidth licenses.
There might be a change in the number of virtual CPUs or when there is a change in the license edition. In such a case, you must always shut down the instance before you initiate a request for a new set of licenses. Restart the Citrix ADC VPX after checking out the licenses.
To configure licensing server in Citrix ADC VPX using GUI:
In Citrix ADC VPX, navigate to System > Licenses and click Manage Licenses.
On the License page, click Add New License.
On the Licenses page, select the Use remote licensing option.
Select CPU licensing from the Remote Licensing Mode list.
Type the IP address of the license server and the port number.
You must always register Citrix ADC VPX instance with Citrix ADM. If not done already, enable Register with Citrix ADM and type Citrix ADM login credentials.
In the Allocate licenses window, select the type of license. The window displays the total and the available virtual CPUs and also the CPUs that can be allocated. Click Get Licenses.
Click Reboot on the next page to apply for the licenses.
You can also release the current license and check out from a different edition. For example, you are already running Standard edition license on your instance. You can release that license and then check out from Advanced edition.
Configuring licensing server in Citrix ADC VPX license using CLI
In the Citrix ADC VPX console, type the following commands for the following two tasks:
To add the licensing server to the Citrix ADC VPX:
add licenseserver <IP address of the license server> <!--NeedCopy-->
To apply for the licenses:
set capacity -vcpu - edition premium <!--NeedCopy-->
When prompted, reboot the instance by typing the following command:
reboot -w <!--NeedCopy-->
Update a licensing server IP address
You can update the licensing server IP address in the VPX instance, without any impact on the allocated license bandwidth on the instance and data loss. To update the licensing server IP address, type the following command on the VPX instance:
add licenseserver <licensing server IP address> -forceUpdateIP
This command connects to the new server and release the resources associated with the previous licensing server.
Managing virtual CPU licenses on Citrix ADM
In Citrix ADM, navigate to Infrastructure > Pooled Licensing > Pooled VCPU.
The page displays the licenses allocated for each type of license edition.
Click the number within each donut to view the Citrix ADC instances that are using this license.
Virtual CPU licensing for Citrix ADC CPX
While provisioning the Citrix ADC CPX instance, you can configure the Citrix ADC CPX instance to check out licenses from the license server depending on the CPU usage on the instance.
Citrix ADC CPX relies on the license server, running on Citrix ADM, to manage the licenses. Citrix ADC CPX checks out the licenses from the license server when it is starting up. The licenses are checked in back to the license server when the Citrix ADC CPX shuts down.
You can download Citrix ADC CPX from the Docker App Store. On the Docker host, to download Citrix ADC CPX, run the following command:
docker pull store/citrix/netscalercpx: [version]
There are three license types available for CPX licensing:
Virtual CPU subscription licenses supported for CPX and VPX
Pooled Capacity licenses
CP1000 licenses that support single to multiple vCPUs for CPX only
To configure vCPU subscription licenses while provisioning the Citrix ADC CPX instance:
Specify the number of vCPU licenses that the Citrix ADC CPX instance uses.
This value is entered as an environment variable through Docker, Kubernetes, or Mesos/Marathon.
The target variable is “CPX_CORES.” The CPX can support from 1 to 16 cores.
To specify 2 cores, you can perform the docker run command as follows:
docker run -dt -P --privileged=true --ulimit core=-1 -v<host_dir>:/cpx -e EULA=yes -e CPX_CORES=2 <!--NeedCopy-->
While provisioning a Citrix ADC CPX instance, define the Citrix ADC Licensing Server as an environmental variable in the docker run command as shown below:
docker run -dt -P --privileged=true --ulimit core=-1 -v<host_dir>:/cpx -e EULA=yes -e CPX_CORES=2 -e LS_IP=<LS_IP_ADDRESS> -e LS_PORT=<LS_PORT> cpx:11.1 <!--NeedCopy-->
<LS_IP_ADDRESS> is the IP address of the Citrix ADC Licensing Server.
<LS_PORT> is the port of the Citrix ADC Licensing Server. By default, the port is 27000.
By default, the Citrix ADC CPX instance checks out the license from the vCPU subscription pool. The CPX instance checks out an “n” number of licenses if the instance is running with “n” CPUs.
To configure Citrix ADC Pooled Capacity or CP1000 licenses while provisioning the Citrix ADC CPX instance:
If you want to check out licenses for the CPX instance using the pooled licensing (bandwidth-based) or the CPX private pool (CP1000 or private-pool-based), you must provide the environment variables accordingly.
docker run -dt -P --privileged=true --ulimit core=-1 -v<host_dir>:/cpx -e EULA=yes -e CPX_CORES=2 -e LS_IP=<LS_IP_ADDRESS> -e LS_PORT=<LS_PORT> -e PLATFORM=CP1000 cpx:11.1 <!--NeedCopy-->
CP1000. This command triggers the checkout from CP1000 pool (CPX private pool). The Citrix ADC CPX instance then retrieves “n” number of instances for “n” number of cores specified for CPX_CORES. The most common use case is to specify n = 1 for a checkout of a single instance. Multicore CPX use cases check out “n” vCPUs (where “n” is from 1 to 7).
docker run -dt -P --privileged=true --ulimit core=-1 -v<host_dir>:/cpx -e EULA=yes -e CPX_CORES=2 -e LS_IP=<LS_IP_ADDRESS> -e LS_PORT=<LS_PORT> -e BANDWIDTH=2000 cpx:11.1 <!--NeedCopy-->
Pooled capacity. This command checks out one license from the instance pool and consumes 1000 Mbps of bandwidth from the Premium bandwidth pool yet enables CPX to run up to 2000 Mbps. In Pooled Licensing, the first 1000 Mbps is not charged.
Specify the corresponding number of vCPUs for the desired target bandwidth when checking out from the bandwidth pool as detailed in the following table:
Number of cores (vCPU) Maximum bandwidth 1 1000 Mbps 2 2000 Mbps 3 3500 Mbps 4 5000 Mbps 5 6500 Mbps 6 8000 Mbps 7 9300 Mbps