Possible Duplicate:
Can you help me with my software licensing question?

If I have SQL Server 2008 instances running in virtual machines on a VMware vSphere cluster with vMotion\DRS enabled so that the VM's can (potentially) run on any one of the physical servers in the cluster what precisely are the license requirements?

For example assume that I have 4 physical ESX Hosts with dual physical CPU's and 3 separate single vCPU Virtual Machines running SQL Server 2008 running in that cluster.

How many SQL Standard Processor licenses would I need?
Is it 3 (one per VM) or 12 (one per VM on each physical host) or something else?

How many SQL Enterprise Processor licenses would I need?
Is it 3 (one per VM) or 8 (one for each physical CPU in the cluster) or, again, something else?

The range in the list prices for these options goes from $17k to $200k so getting it right is quite important.

Bonus question: If I choose the Server+CAL licensing model do I need to buy multiple Server instance licenses for each of the ESX hosts (so 12 copies of the SQL Server Standard server license so that there are enough licenses on each host to run all VM's) or again can I just license the VM and what difference would using Enterprise per server licensing make?

Edited to Add Having spent some time reading the SQL 2008 Licensing Guide (63 Pages! Includes Maps!*) I've come across this:

• Under the Server/CAL model, you may run unlimited instances of SQL Server 2008 Enterprise within the server farm, and move those instances freely, as long as those instances are not running on more servers than the number of licenses assigned to the server farm.
• Under the Per Processor model, you effectively count the greatest number of physical processors that may support running instances of SQL Server 2008 Enterprise at any one time across the server farm and assign that number of Processor licenses

And earlier: ..For SQL Server, these rule changes apply to SQL Server 2008 Enterprise only.

By my reading this means that for my 3 VM's I only need 3 SQL 2008 Enterprise Processor Licenses or one copy of Server Enterprise + CALs for the cluster. By implication it means that I have to license all processors if I choose SQL 2008 Standard Processor licensing or that I have to buy a copy of SQL Server 2008 Standard for each ESX host if I choose to use CALs.

*There is a map to demonstrate that a Server Farm cannot extend across an area broader than 3 timezones unless it's in the European Free Trade Area, I wasn't expecting that when I started reading it.

marked as duplicate by voretaq7 Feb 11 '12 at 4:02

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 1
    Interesting details in you edit. – Chopper3 Feb 10 '10 at 22:43

As always, consults a MS Licensing expert for the definitive answer

Here is the licensing as I understand it:

  • Per proc - you would need to license each of the sockets in the VMWare cluster so for both of the per proc licenses you would need 8 licenses.
  • Server + Cal1 - you would need 6 Server Licenses. because the during a DRS/HA migration technically the software exists in two places at the same time for a short period (although honestly that is sticking to a very literal definition)

1Now the funny thing about SQL CALs is they are based on who uses the data, so it is based on the END USER of the data not how many connections are directly made to a SQL server.

Example 1: Internal application - You have an office with 50 people that get reports generated from data in a SQL server. You would need 50 CALs - it doesn't matter that the users are probably not directly connecting to the SQL server.

Example 2: Web App: You have a dynamically driven web application backed by SQL server. You would need per proc licenses as you would effectively need an infinite amount of CALs as every person who can connect to your Web App would need a CAL.

  • 1
    I've always been blown away by the hubris of the "end user" licensing for CALs (from various "manufacturers", not just Microsoft). If I use a payroll app that back-ends into SQL Server to generate payroll checks for my employees are those employees "end users"? >smile< Microsoft, in particular, seems to keep the terms re: CALs very vague. (I assume it's to give them the best possible position in litigation, if necessary.) – Evan Anderson Feb 10 '10 at 15:17
  • @Evan: Last time to I spoke to a MS SQL Licensing Specialist - yep the employees would be the 'end users' ... It blew my mind when i fully realized the scope of their CAL terms. Luckily i work somewhere we we just buy up enterprise per proc as needed without batting an eye. – Zypher Feb 10 '10 at 15:29
  • For SQL standard you do not need a proc license for each socket. You have to do some math to figure out how many you need. The equation is # of vCPUs/# of cores/processor = number of processor licenses you need (rounded up). Since I am guessing the VM's will be moving at random you have to assume worst case for each server and assume all three may be running on 1 server. So for example if you have Quad core servers and 2vCPUs assigned to each VM you would need 3 SQL std proc licenses per physical server. I am looking for a reference on this and will post it when i find it. – ITGuy24 Feb 10 '10 at 15:33
  • If you think MS's licensing terms are complex you'd freak at BEA (weblogic) or Ab Initio's terms - if I recall correctly one of their T's&C's is that you can't discuss them anywhere (!) – Chopper3 Feb 10 '10 at 15:52
  • I've added some info that I've pulled from the latest SQL Licensing guide (that I could find) that seems to indicate I don't need to license every socket. Seems to me, that is, I'd welcome some more opinions. – Helvick Feb 10 '10 at 22:45

This is actually quite simple H, but as usual there are some caveats.

If it's a 3-way active-active-active cluster and no VM has been assigned more vCPUs than the number of THREADS that a single host pCPU has then you'd simply need 3 x MSSQL CPU licenses.

In this example let's imagine your servers have dual Xeon E5570's - each of those Xeons has 4 full cores but with hyperthreading allows for 8 ESX virtual CPU contexts to be ran on it concurrently (even though VCenter is a bit inconsistent about how this is displayed!). So if you have a VM with even as many as the full 8 vCPUs currently assignable to it then that could, theoretically, run on a single pCPU so you'd only need to buy a single MSSQL CPU licence per VM. If these were X5440's they wouldn't have hyperthreading so if you gave your VM 5 or more vCPUs you'd inherently have to use the second physical processor to allow for all 5+ ESX virtual contexts to be free at once - meaning you'd need two MSSQL CPU licences.

Is that clear?

Then of course you get into the whole active/passive issue where you only pay for truly active CPUs but I'll assume you're ok with that side of it - if not let me know.

Where we get into fun is the new AMD Magny-Cours (12-core, no-HT) and Xeon 75xx-series (8/12/16-core with HT) and unrelease versions of ESX as that starts to break some of these rules and may incur extra cost going forward - let's cross that bridge next quarter :)

  • My best guess pretty much matched with this (but note Zypher's comment on VMotion\DRS and concurrent licenses). My confusion now is more around the difference between how MS interpret their SQL Server Standard licenses as being tied to physical hosts while they seem to accept VM mobility for Enterprise licenses (see my edit). – Helvick Feb 10 '10 at 22:50
  • Microsoft needs to clearly identify their position on the sockets vs. cores debate. From the software's point-of-view, I would interpret per-CPU licensing as however many vCPUs you are assigning to your VMs, not by however many CPUs/Cores are on the ESX host. Multiply that by however many active (not counting DRS/VMotion) instances of the server you plan to run in production. So, 3 * vCPUs per VM. – Joe Feb 10 '10 at 23:03

Here is quite good article about SQL licensing and CPU vs CAL including VM clarification.

Not the answer you're looking for? Browse other questions tagged or ask your own question.