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 licensesAnd 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.
As always, consults a MS Licensing expert for the definitive answer
Here is the licensing as I understand it:
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.
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 :)
Here is quite good article about SQL licensing and CPU vs CAL including VM clarification.