Hardware vs software license keys in a VM environment
Solution 1:
The hardware keys add an extra point of failure. I've seen them break. When they do break, you can't log into your card swipe system and give new people access to the building. sigh
Always go software key if you have the choice. FlexLM (one of the more common license servers) for example is a real pain in the ass, but once it's up and running, you don't have to worry about it. With a hardware key, you have to worry about the key failing, the USBAnywhere failing, the USBAnywhere software failing, etc.
I've used those USBAnywhere devices and they've been pretty solid, but I'd still prefer software keys 10 out of 10 times.
Solution 2:
See: Cross platform support for network attached USB hubs?
All-else equal, you want the flexibility of a software key. Going through this effort using a USB dongle reduces your system portability and doesn't offer much upside.
Many software manufacturers have wisened up to the fact that people are going fully-virtual and want to leverage their vMotion-like capabilities. If given the option for a software-based licensing scheme, use it!
Solution 3:
Software keys are usually attached to the hard drive or NIC id of a computer. Any time this number changes (hard drive failure, VM reconfiguration, etc) the license is lost and needs to be reloaded with the help of the manufacturer.
The NIC id of a computer (Also known as the MAC address) should not change in a VM environment. In addition, you can often assign the MAC address to match the MAC address within the license file. The MAC address can usually be fudged in the Operating system (I do it on Linux).
A license server which relies on a the hardcoded ID of a harddrive is asking for trouble-- Drive failures are inevitable, RAID arrays are common, and it's normal to replace drives time to time.
It would seem that a USB dongle would be more prone to failure then just about anything else.
We manage about 20 license servers, and all of them rely on the MAC address or a simpler mechanism.
Solution 4:
I realize your question is in a VMware environment but I think the general question is relevant to other virtualization platforms including Hyper-V.
I recently virtualized an aging server that ran a service dependent upon hardware USB-based licensing keys and found that they do not work natively in a Hyper-V environment. The Hyper-V Deployment Guide has this to say:
No access to a physical COM port is available from a virtual machine.
You can connect your virtual machine's COM port to named pipes but apparently not to actual serial ports. Apparently this is primarily a debugging feature. You can provide access for a virtual machine to a serial port using a COM port re-director such as KernelPro's USB over Ethernet.
Additionally the software and drivers for the licensing key need to support being installed on Window Server and in our case on Server Core if you want the licensing key to be installed on the host server.
I ended up installing the licensing key and software on a workstation and then using it as that site's "licensing server". This adds about ten different things that can now break this software. A software-based licensing key would of saved me much trouble and I suspect be a more reliable solution.