How to: Inventory and Meter Applications in Non-Persistent VDI
Non-persistent virtual desktop infrastructure such as VMware Horizon View and Citrix XenDesktop provides IT administrators tremendous flexibility to manage their infrastructure from an application management and security perspective. All virtual machines are created in pools from a few base images. This means that patching virtual desktops and deploying applications simply require a reprovision of the base images. In a persistent world, IT administrators would need an application deployment mechanism, which requires maintenance of firewall rules and an agent footprint on every endpoint.
Moreover, IT administrators find that non-persistent VDI significantly reduces their storage footprint. Application delivery systems such as Liquidware Labs, Unidesk, and AppVolumes often share application assets and data between endpoints. Additionally, administrators no longer need to backup each virtual desktop endpoint. They only need to backup the relevant base images of each virtual desktop pool and any servers that store user-specific configuration. On the other hand, persistent virtual desktops require a separate backup job for each desktop, increasing storage requirements (often with expensive SSD) linearly with the virtual desktop count.
The challenge of software metering in non-persistent VDI
That said, non-persistent VDI presents software inventory challenges that every administrator will need to address. One especially painful challenge is the inability to use agented monitoring solutions. If an administrator installs an agent on the base image when a VDI pool is created, the machines do not know they are different since they originated from the same base image. When these agents communicate with a management server, the server processes the requests as though they came from a single virtual machine.
The ideal product to solve this issue
VDI administrators need a solution that integrates directly with the hypervisor to solve this issue. By identifying when a new virtual machine is spawned inside the environment through a composition solution like VMware View Composer or Citrix Provisioning Services (CPS), a hypervisor-aware software inventory solution can instantly react to the virtual desktop creation and start tracking usage within the machine.
StacksWare is the only software inventory solution that accomplishes this. By leveraging hypervisor-level APIs to execute commands, our product tracks all virtual machines that have been created through the hypervisor and retrieves the necessary application information. It tracks aggregate statistics about virtual desktop pools, including real-time session information and online user statistics. Even as virtual machines are deleted and added in a VDI pool, the latest user and virtual desktop information is processed in real-time.
An administrator simply declares the common prefix name for the virtual desktops in a pool that requires monitoring (e.g. “MARKETING-VDI-” for all virtual desktops in a pool dedicated to the marketing team) and StacksWare tracks all application information related to that pool. It also correlates this information in that desktop pool to the corresponding end-users, devices, and hosts that have interacted with the pool.
These features are not only limited to non-persistent VDI. StacksWare responds to all virtual machine creation and deletion in the environment. For example, if a virtualized server infrastructure scales virtual machines up or down based on application demand such as in a XenApp worker farm, StacksWare will automatically detect and inventory these new and deleted servers. If you are interested in learning more, find out more about groups in StacksWare here.
Struggling with your non-persistent VDI environment?
Before you spend any more time installing a software inventory agent on your non-persistent VDI base image, remember that traditional agent-based systems simply will not work. Get in contact with us and we can help! You can request a demo here or send me an email firstname.lastname@example.org.