Windows Server SPLA Licensing

SPLA licensing is a great way to provision servers with Windows Server without a huge up front investment in licenses and CALs.

Server 2012 SPLA used to be licensed per processor. It was $14.70 per CPU with a minimum of 1 CPU per server. Unless you have an old SPLA agreement, you can't get this anymore.

MS server licensing is based on the idea that the more you get out of a server the more you pay. Bigger servers = more money for both you and MS. Licensing per CPU was a good enough analogue for what you got out of the server and that model worked for years. With the shift from more CPUs in a server to more cores in a CPU, Microsoft's per-CPU model was leaving money on the table. Servers with many cores per CPU were too cheap to license on the old model and MS wanted to make sure they were being paid for what they provided.

Server 2016 SPLA is now licensed per core. A single server CPU could have between 4 and 88+ cores in it. Each CPU socket must be licensed for 8 cores at minimum. A 4 (or 2 or 6 or 8) core CPU needs 8 licenses, and a 20 core CPU needs 20 licenses. Each server must be licensed for 1 CPU at minimum, and licenses are sold at ~$3.67 for a 2 pack (as of 2017-07). This means that you pay more for big servers, but small (1 CPU, ≤ 8 cores) servers still cost the same as the old model.

Every VM on a host needs to be fully licensed. If you ran two VMs on the above host, you would need double the licenses. It doesn't matter how many vCPU you allocate to the VM, it needs to be licensed for the full core count. You can run Windows Server on the host for “free” as long as it only runs the Hyper-V role.

SPLA licensing also includes unlimited user/device CALs. You only need CALs if you're doing RDS.

It becomes more economical to use Datacenter Edition at 7 VMs on a host.

You do not need to license DR cores. If you have a BDR that will spin up a VM if your primary server dies, you don't need to license those cores while the DR VM is running. There's a certain grace period, but it's a good bit longer than you ought to be running the DR VM for. The host that you run the BDR on, if it's Windows Server, does need to be licensed.

Windows Server Containers do not need to be licensed as they share a kernel with the host. Hyper-V Containers do need to be licensed since they're essentially just a VM. Nano Server does need to be licensed, but it's going away after 2016 so don't get attached.

Hyper-threading does not affect core count.

You have a single CPU server with 4 cores on 1 CPU with 1 VM. You have to license each CPU for at least 8 cores, so it would consume 4 license two-packs to fully license. That makes it 4 x $3.67 = $14.68/month. This price remains the same up to 8 cores in your single CPU.

You have a server with 2 CPUs that have 12 cores each running 1 VM only. Each CPU needs to have 12 licenses, that's 6 two-packs per CPU. Two CPUs means a total of 12 two-packs. That's 12 x $3.67 = $44.04/month.

You have a server with 2 CPUs that have 20 cores each and they're running 4 VMs. Each CPU needs 20 licenses, that's 10 two-packs. 2 CPUs doubles that to 20 two-packs. 4 VMs means you need four times the licenses, that's 80 two-packs. That makes it 80 * $3.67 = $293.60/month to license the whole server, host and VMs.

A simple formula: (Number of cores in the CPU (minimum of 8) * Number of CPUs in the server * Number of VMs on host) / 2 = Number of license two-packs you need.

The above examples in table format

Cores * CPUs * VMs = Total Licenses Needed /2 = Two-Packs Needed * $3.67 = Total Monthly Cost
4 (increase to 8 min) 1 1 8 4 $14.68
12 2 1 24 12 $44.04
20 2 4 160 80 $293.60

Windows Server Standard Retail/OEM gets you 2 licenses, so you can run the host for “free” and 2 VMs on it. SPLA only gets you one VM per license set.

Volume Licensing has a 2 CPU minimum per server, SPLA only requires one CPU to be licenses at a minimum.