I’ve been asked a number of times why vSphere – since version 4.0 – has allowed administrators to allocate both processors and cores in a virtual machine configuration. Prior to vSphere 5, managing these settings meant editing the virtual machine’s VMX file. With vSphere 5, the GUI exposes to the administrator the capability to define both the number of processors that should be allocated to a VM as well as the number of cores that should be allocated per processor.
As more and bigger workloads get shifted into virtual machines, more horsepower is required to run these workloads.
However, many applications still have per-processor licensing limits. Using the traditional “vCPU” approach to allocating processing resources to virtual machines would result in very high licensing costs for these applications. As such, administrators can imbue these virtual machines with a single “physical” CPU with a number of cores. This allows the workload access to sufficient processing resources while limiting the licensing impact.
Bear in mind that many software vendors have managed to work around this loophole through onerous licensing terms. Before you make an assumption that your particular software package can be configured in this way, refer to the product’s licensing agreement so that you don’t run afoul of the rules.