Last week Microsoft released their updated licensing scheme for SQL Server 2012, which is due to be released next year. Though there are a number of changes to the product and to how it is licensed, in my mind the biggest change is that Microsoft has moved to a per core licensing model for SQL. The Server + CAL model still exists as well but for this post I’ll focus on the per core licensing and changes that affect those that want to virtualize SQL Server 2012.
You can read more about the new licensing for SQL 2012 by going to SQL 2012 Licensing Overview page. Here are some of the highlights:
- The Datacenter Edition from SQL 2008 R2, which was previously licensed per socket/CPU, has been discontinued.
- The top tier license is now Enterprise Edition (EE), which is licensed per core. It requires a minimum of 4 core licenses per processor. If all cores in a host are licensed, you retain the unlimited virtualization rights previously available in SQL 2008 R2 Datacenter Edition.
- The cost per core of SQL 2012 Enterprise will be $6,874/core not including Software Assurance (SA).
- Software Assurance is required in order to use license mobility (i.e. vMotion/Live Migration) more than once every 90 days.
- Instead of licensing an entire server, you can also license the virtual cores of individual SQL virtual machines.
- Core licenses are sold in 2 core packs.
- There is a limitation of 20 cores per server maximum for EE. (Note: this has been clarified – see below)
- If you are current on SA and have SQL 2008 R2 Enterprise you will receive a minimum of four SQL 2012 EE core licenses per CPU or the actual number of cores in use.
- If you are current on SA and have SQL 2008 R2 Datacenter you will receive a minimum of eight SQL 2012 EE core licenses per CPU or the actual number of cores in use.
Per Core Licensing
It really shouldn’t come as a surprise to anyone that Microsoft is moving from a per socket/processor model to a per-core model for licensing SQL Server. After all, processors are shipping with more and more cores per CPU and are capable of higher consolidation ratios. Combine that with the fact that the majority of SQL Server workloads are actually very light use (based on VMware Capacity Planner data) and you can see that Microsoft couldn’t continue with per socket licensing.
The only potential issue I see is the minimum of 4 cores licenses per processor. If organizations are still using older hardware that only has 2 cores/processor then they are paying for cores they don’t have. I would suspect that in 2012 this isn’t likely to affect a large number of organizations. Update 11/19/2012: Microsoft has included a core multiplication factor that will account for older systems that have fewer than 4 cores per processor.
The actual cost for EE is roughly the same as if you licensed 2 sockets of SQL 2008 R2 Enterprise Edition as long as it had 4 cores per CPU. The cost goes up as soon as you start using 6 core processors and above. The prevalence of 4 core processors means this likely won’t change much for many organizations.
Compared to SQL 2008 R2 Datacenter, however, there is a large cost difference. Datacenter costs $54,990 per processor or over $100,000 to license a 2 CPU system. You can now essentially get the benefits of Datacenter Edition (unlimited virtualization rights, etc.) for half the cost you would pay in SQL 2008 R2.
Even with this new licensing model there are still huge cost savings to be had by licensing all cores of a server and virtualizing your SQL 2012 workloads. It’s hard to argue with unlimited virtualization rights especially for those lightly loaded SQL workloads.
There may be situations where Server + CAL licensing actually makes more sense. If you’re worried about the higher per core costs that may be something to consider. Server + CAL licensing requires a lot more administrative overhead and is usually only beneficial for situations where there are a small amount of users/devices that are easily accounted for.
Licensing per VM
Instead of licensing all of the cores in a server, you can instead simply license the cores you use in your SQL virtual machines. Sounds easy, right? Unfortunately you are still required to license four cores per VM. Since the majority of SQL workloads are underutilized and can likely get by with 1-2 vCPUs, you’re essentially paying for core licenses you won’t use. I can’t imagine many organizations will go down this road unless they have a small number of larger SQL servers.
Update 11/19/2012: Another aspect of per VM licensing that may be undesirable is the requirement to purchase extra licenses if you use Intel processors with hyper-threading enabled. See this post for more details.
20 Core Limitation
I have to admit I’m scratching my head a bit on this one. Knowing that 10 and 12 core processors are available today and 16 core processors are on the horizon, why put a limit at just 20 cores per server? What happens if you already own 12 core processors, or you have a 4 socket system that exceeds 20 cores in total? The only thing the SQL 2012 Licensing Guide says is to “contact your Microsoft representative for help transitioning to the new licensing model.” It’s not uncommon for organizations to scale up and have ESX/ESXi hosts with greater than 20 cores (even easier today with 8 and 10 core processors), so I would hope there is a reasonable solution here.
Update 12/19/2011: On December 1st, Microsoft released an updated copy of their licensing datasheet for SQL 2012. In this updated version, they clarify the language around the 20 core limit and make it clear that it only applies to SQL 2012 EE licenses that were upgraded from SQL 2008 licenses in the Server + CAL model. For EE licenses that are purchased new, or that were upgraded from SQL 2008 that used the per CPU licensing model, you are not limited to just 20 cores. See this post for more information.
If you already have SA on your SQL 2008 R2 licenses, you’re probably in better shape than you think. Note the italics above regarding “actual number of cores in use.” If you use per processor licensing in SQL now and your processors have more than 4/8 cores, work with Microsoft to get core licenses for what you’re actually using rather than simply accepting the default trade-in value. Those that bought into higher core CPUs should not be penalized by upgrading to SQL 2012.
Software Assurance also gives you the right to full virtual machine mobility. In other words, the rights to use vMotion/DRS in vSphere to move your SQL workloads more than once per 90 days. You still need the appropriate Windows license to allow that mobility, but again this is another reason why Software Assurance is becoming mandatory.
Anyone still reading? I realize this is a large post so I’ll keep my final thoughts brief. In short, I think that the move to per-core based licensing was an inevitable change that I would expect to see other vendors take up as well. The bright side is that the cost to have unlimited virtualization rights for SQL has essentially been cut in half depending on whether or not you already owned the SQL 2008 Datacenter license.
Anything that promotes the virtualization of mission critical applications like SQL is good in my book. I look forward to talking to customers about this change and helping them move towards virtualizing their SQL deployments.