I received a question a few days ago about how to license SQL (per processor) within a Virtual Machine on a Hyper-V server (or other hypervisor based host). There has been a lot of confusion on this, at least I’ve been confused, so I wanted to dig into this and see what I could find. I found the SQL 2008 Licensing Guide. It can be found on the SQL 2008 Licensing page here.
The problem with SQL licensing when you look at the per processor licensing option is, “How do I license SQL in a virtual environment? Do I have to license every processor on the Hyper-V server?” So I’m going to point out a few pages of this SQL licensing document that will help you understand how to work this out.
The SQL 2008 Licensing Guide can be downloaded from the page above, or it can be downloaded from here. This document does a great job of working through the licensing scenarios. Chapter 4 is where it actually gets interesting with respect to virtualization, but you need to read Chapter 3 first to understand the licensing models. I’m going to focus on the per processor licensing, that is the one that is less obvious in a virtual environment. Page 25 is where we get started, let’s first take a look at the introductory explanation.
The thing I like about this is that now we have a straight forward formula. Page 28 talks about running SQL in multiple Hyper-V machines and how you should handle that licensing scenario, it even points out the following detail:
Note: If all of the physical processors (data point C) are licensed for SQL Server Enterprise, then instances of SQL Server may be run on as many VMs as the hardware and
operating system will support. That means you never need more Processor licenses than the total number of physical processors.
Taking directly from the document again, if I have a dual CPU server with Hyper-Threading enabled, the server has a total of four threads. Using the formula, if you give your SQL VM four virtual processors, you will need to acquire two processor licenses to fully license your SQL server.
I hope this helps clarify some of the SQL licensing questions.
Until next time!