Question: If we have a 2 - quad core host server with hyper-threading turned on so that we see 16 virtual cpu's how are the SQL licenses (per processor) used ?
I know that a single per processor SQL License will cover 4 virtual cpu's on a QUAD cord processor but with hyper-threading turned on does that translate to a single processor SQL license covering 8 virtual cpu's ?
If you are going with CPU license model then it is physical CPU only.
Under the per processor licensing model, SQL Server 2005 requires a license for each physical processor only. In a virtualized environment, you need a license for each virtual processor or fraction of a processor accessed by a virtual machine.
For Standard, Workgroup, and Enterprise, if you decide to license on a per processor basis, you must buy a SQL Server license for each virtual processor. For Enterprise Edition, you can also choose to license all physical processors in a box. This gives you rights to run SQL Server on unlimited number of virtual processors running on the same machine. For Server/CAL mode, for Standard and Workgroup, you must obtain SQL Server licenses for each Virtual Operating System Environment on which you run instances of SQL Server. However, for Enterprise, if you have a Server license for the physical Server, you may run unlimited instances of SQL Server in any Virtual Operating System Environment that you run on that same machine.
If you are using hardware partitioning on a multi-processor server, you get unlimited virtualization for SQL Server Enterprise Edition as long as all processors in that hardware partition are licensed. For example, if you have a hard partition of 10 physical processors on a 32-processor superdome server, 10 processor licenses of SQL Server 2005 give you rights to run free unlimited virtual machines with SQL Server on those 10 physical processors.
Would recommend getting contact with Licensing vendor to explain details; as SQL Licensing is getting more confusing every day now heh.
I love how MS changed their licensing model. I have a pptx doc that shows that if I have a dual quad core system and I have 5 VMOE (virtual machine operating system environment)
that I only needed 5 sql per cpu licenses. Doesn't seem the case anymore.
VMOE 1) 1 vmcpu phcpu1 c0
VMOE 2) 1 vmcpu phcpu1 c1
VMOE 3) 1 vmcpu phcpu1 c2
VMOE 4) 2 vmcpu phcpu1 c3 phcpu2 c0
VMOE 5) 3 vmcpu phcpu2 c 1,2,3
So If I understand the current licensing the following is true:
I have a physical Server with 2 physical Quad Core CPU's all I need is 2 SQL Server Standard per CPU licenses. (8 cores total)
Now if I move this system into a VM environment with the same number of cores ( 8 virtual cpu's) then I need 8 SQL Server licenses per cpu.
Is this correct ?
If this is then why would I ever want to move a SQL server into a VM environment ?
Ok I found what I was looking for:
This guide explains SQL licensing perfectly: Quad-core cpu with hyper-threading on is 8 threads per cpu. So the formula for determining how many SQL licenses (per processor) is:
Number of Virtual CPU's [divided by] Number of threads per cpu (rounded up to the nearest whole)
i.e. 2 virtual CPU's in a single VM would only require 1 SQL license (per processor) on a dual quad-core CPU system with hyper-treading on. In fact I can have up to 8 virtual CPU's in a single VM and still only require 1 SQL License (per processor).