A common question now is how does Microsoft license SQL Server in the Virtual environment? In the early days of Virtualization SQL Server was not an ideal candidate for consolidation due to the resource intensive nature of its processing. But now with the advent of superior Hardware and the support of Hyper-V and VMWare, many companies are looking at SQL Server virtualization to save hardware costs and provide flexibility. Well, the classic answer to the question is that “it depends” but also “it changes”…
In SQL Server 2008 Enterprise Edition, we were allowed unlimited virtual instances of SQL Server, as long as the physical CPUs being used were licensed. With the release of SQL Server 2008 R2, the Enterprise edition is no longer the top dog in the Edition stakes. It has been now overtaken by both the new Data Center Edition and the new Parallel Data Warehouse Edition. So the goalposts have been moved and now the EE can only support 4 virtual instances and instead of unlimited CPUs it is now limited to 8. To get unlimited support you will need to now go with either of the two new high-level editions and pay the new high-level price. To calm down existing customers, Microsoft has a “grandfathering” strategy whereby if you are current on Software Assurance and you wish to upgrade to R2, you can inherit the “unlimited” virtual licensing you had before. This all assumes you are licensing all of the physical processors on the server.
If you decide to license only a portion of the physical CPUs for SQL Server, you will need to do some math to get to the number of Virtual CPUs you can use in the Virtual Machines (or what Microsoft now calls OSEs – Operating System Environments). The nice thing is that Microsoft only charges by the socket so that a multi-core processor counts as one physical CPU and therefore one processor license. But if that multi-core processor has 4 cores, all those cores are available to SQL Server in the virtual machines as virtual CPUs. That’s pretty simple math: 4 for the price of 1. You can get more complex if you want to, say with 2 dual-core processors and the virtual OSEs use 3 virtual CPUs, you will need 3 / 2 = 1.5 licenses. Of course, Microsoft wants us to round-up to the nearest license so we end up needing 2 processor licenses.
It’s all outlined in the following document which goes into various scenarios. As new technology opens up new loop holes, I am sure this document will be updated to close them down, faster than you can say “It’s between you and your lawyer.”
SQL Server 2008 R2 Licensing Quick Reference: