Figuring out how many processor licenses you need in a virtualised environment can be tricky. General rule of thumb for Microsoft licensing specialists is to propose Enterprise rather than Standard Edition because it can be licensed per physical CPU only and so is simpler & more cost effective. But is it true that, say, SQL Enterprise Edition is always more cost effective than Standard Edition? Obviously not, but when you start counting virtual processors it may just seem like too much trouble. After all, for Enterprise Edition you just count physical CPUs, while for Standard Edition you’ve got to do some fancy arithmetic with cores, as well as juggling definitions that drift from virtual processor to logical processor without any clear guidance on the difference between them.
Here is what it says in the PUR: “You need a software license for each virtual processor that each of those virtual operating system environments (or OSEs) uses.” This is misleading, to put it mildly. Never mind the fact that there’s a weaselly superscript which “defines” virtual processor down at the end of this PUR entry. This footnote runs to several sections and subsections (numbered) with further cross-references. Note to the licensing team: if a definition requires a multiline footnote, then go back to the drawing board and start again!
Licensing professionals will tend to infer that virtual processors need to be added up, but it turns out that what the PUR is actually proposing is that virtual processors need to be divided up, using the number of cores as the divisor. Now why is all this complication necessary?
It goes back to the PUR’s definition of a virtual processor, which, it declares, is “a processor in a virtual… hardware system”. Nice and circular. Adding tautology to circularity it continues: “Virtual operating system environments (or OSEs) use virtual processors” and “virtual processors are considered to have the same number of cores or threads as each physical processor in the underlying hardware system”. This attempt to clear things up only confuses things more. In the next sentence, still without a clear definition, we are led to understand that virtual processors are equivalent to logical processors.
What to do? We’d recommend consulting this TechNet article for a start: http://technet.microsoft.com/en-us/library/ee405267%28WS.10%29.aspx which clearly spells out the requirements and limits for virtual processors in a Hyper-V environment. From this we learn that today Hyper-V supports up to 64 logical processors, but only up to 4 logical processors per virtual machine. Does that mean 4 processor licenses? Of course not, but the PUR appears to suggest otherwise. However, if you check the SQL Licensing Quick Reference, you will be pleased to learn that after doing some neat arithmetic (divide logical processors by cores) no more than one virtual processor per physical CPU will ever be needed.
Bottom line: cores still don’t count. In Hyper-V environments where the maximum number of logical processors is 4 per VM, this comes down to three likely cases: either all 4 logical processors are derived from 1 CPU with 4 cores (1 processor license needed), or 4 logical processors are derived from 2 dual core CPUs (2 processor licenses needed), or 4 logical processors are derived from 4 single core CPUs (4 processor licenses needed).
Did we mention that VMWare supports up to 8 logical processors per VM?