Once upon a time, the way to decide which Microsoft Windows Server license to get was only a matter of checking the servers number, a bit of their configuration and features you wanted to get. Basically, the Standard Edition was good for anything that had less than 32GB of RAM and/or wasn’t used in clustered configuration ; else you would require the Enterprise Edition. There were also options for Web, Datacenter, Storage Edition but I never had to look at those.
Virtualization, Cloud computing and IaaS have turned servers into instances with virtual resources which made those licenses quite inapplicable ; especially OEM license and CPU limitations. Here’s the way I understood the Microsoft documentation. It may enable you to understand and decide which licenses to use in your particular case. I’m writing it with VMware vSphere implementation in mind, but it should apply to apply virtualization technology.
When a virtual machine runs Windows Server, one must ensure it is licensed whatever the virtualization technology is (Microsoft, VMware, Citix Xen, Parallels Virtuozzo, etc…).
Furthermore, one must ensure that every virtual instance has it’s own Windows Server license.
Note that only “running” instances must have a license. This means cloning a virtual machine requires only one license ; as soon as only one of the clone is running at one time.
Windows Server edition
The Windows Server 2008 R2 Standard Edition comes with one (1) license for the physical server and one (1) license for the virtual instance. This means you can’t run two virtual instance with the same license ; at least at the same time.
The Windows Server 2008 R2 Enterprise Edition comes with one (1) license for the physical server and four (4) licenses for the virtual instances. This means you can run up to four virtual instance with a single license on that particular physical host.
The Windows Server 2008 R2 Datacenter Edition comes with one (1) license for the physical server and an infinite number of licenses for the virtual instances. This means you can run any number of virtual instance with a single such license. Note that you need one (1) Datacenter license per physical CPU ; “cores” and “threads” don’t count as physical CPU. Also note that you can only use a Datacenter license on dual (or more) CPU servers. This means that you require an even number of Datacenter license ; no way to run a single Datacenter Edition on a single 8-cores [insert your favorite processor name here] with hyper threading… 😉
Note that a Blade server is considered as one physical server. This means when using Blade technology, you must consider each Blade server and not a whole Blade enclosure as one physical server.
Also note that a Windows Server 2008 R2 license allows you to install any previous supported version of Windows Server. This means you may install 3 Windows Server 2003 and 1 Windows Server 2008 instance using a Windows Server 2008 R2 Enterprise Edition license, for example.
Adherence to hardware
Any license is linked to a physical server. A bit like the “old” OEM license, you have to assign every licenses to a particular physical host. The license will then allow you to run a particular number of physical and virtual instance of the OS on that host.
A Windows Server license is assign to a particular physical host for a period of time of, at least, 90 days. Once the delay has expired, the license can be reassigned to some other physical host. Note that should the physical host crash and be replaced, the license can be reassigned before this 90 days delay. I couldn’t find any reference that denies this but reassignment might only be available to “Volume License customers”.
This has a important meaning regarding high-availability and virtual machine distribution. Let’s point a simple scenario :
- You have two (2) physical servers running a virtualization technology ;
- Both servers have one physical CPU ;
- You wish to run eight (8) virtual machines on you whole environment ;
- At any time, the virtualization scheduler may move any virtual machine to any of the physical host depending on the global load of the VMs and physical infrastructure ;
- You own two (2) Windows Server 2008 R2 Enterprise Edition.
So you have enough licenses to assign every physical hosts. You have enough licenses to run every virtual machines. But… with this configuration, you don’t have the right to have more that four (4) of the VM on a single physical hosts! Should you have six VM on a single physical host, you would have to assign both Enterprise license to that particular physical host ; hence, you wouldn’t have any left for the host running the other two VMs.
Another scenario would be three (3) physical hosts running eight (8) virtual machines. Two of the physical host are considered “production” servers and the third is only here in case one of the hosts crashes. Note that the two production servers are “new” and powered hosts whereas the spare is an older one, kept to ensure SLA in case of emergency. Using the same two (2) Enterprise Edition licenses should be enough to run 4+4 VM on 2 hosts at one time. If one of the production server crashes, you are allowed to assign one of the Enterprise license to the third server and run the 4 VM on it right ahead. But once the production server is repaired and back for business, you have to wait for 90 days before being allowed to reassign the Enterprise license from the spare server to the repaired production server.
Microsoft will probably not harm you for the licenses issue of the second case. After all, just shoot an axe in the third server to get into the “server has crashed” scenario… But the real problem is the first scenario. Extended to a bigger infrastructure, let’s says 4 or 5 physical servers (and 16 or 20 VM), there are many chances that each physical server hosts more that only 4 VM at one time ; especially using technology like VMware DRS. The legal best practice would then be to own more than one Enterprise license per physical host and hope that VM won’t move faster than every 90 days… or to configure VM repartition so that there are no more than 4 instances on each physical hosts… or you would have to get Datacenter licenses…
When using Microsoft software inside the virtual machines, there are 41 applications which allow virtual machine migration from one physical host to another, without restrictions. To name a few : Microsoft SQL Server 2008 Enterprise, Microsoft Exchange Server 2007 SP1 Standard and Enterprise…
Client Access License
The (not so) funny thing with Microsoft licenses is that you have to also get licenses for your users… You have the licenses for the server application but users can’t use the resources until they have a user-class license… WTF???
In fact, there are many case when you get a CAL with any client suite ; like when owning Office Professional Edition (with Outlook included), you get the CAL (hence, the right to use) to connect to the Exchange Server.
Anyway, the rules are those :
- You need a CAL per user ;
- A CAL allows the user access to an unlimited number of virtual server instance ;
Note that a user may have several devices ; like a desktop client, a web client and a mobile client. Each of those require their own CAL. This means that if you have Office Standard Edition (without Outlook), you have to get a dedicated CAL to use Outlook Web Access.
Using Hyper-V or not
Here’s a single copy & paste from the Ultimate Quick Reference Resource for Licensing and Pricing that I
find worth noting: “(…) Although we consider the new Microsoft Hyper-V hypervisor technology a key feature of the Windows Server 2008 core operating system, we want to still provide customers the choice of deploying Windows Server 2008 without this technology. We enable this by offering Windows Server 2008 Standard/Enterprise/Datacenter without Hyper-V at a slightly reduced price from Windows Server 2008 Standard/Enterprise/Datacenter. The licensing terms are exactly the same as Windows Server 2008 Standard/Enterprise/Datacenter, including the virtualization use rights (and rules on running and moving instances of the server software as outlined above for Windows Server 2008 Standard/Enterprise/Datacenter). (…)”
Here is a summary of generic scenario I regularly come to ; using the MS Virtualization calculator and the prices at the time of writing.
Note that I’ll use VMware vSphere best practice that states you should have no more than 4 VM per logical CPU.
It’s quite difficult to sort out a generic rule. You’d better check your exact scenario to be sure of the best option to choose.
If you have less than 10 virtual machines, the Standard Edition license will probably be the best bet.
If you plan to add more virtual machines, the Enterprise and/or Datacenter Edition might be the best bet in long term. Choosing between both is rather a matter of how many total VM you will get compared to how many physical CPU you own.
There are always three main numbers to consider :
– how many servers you have ;
– how many physical CPU you have on each server ;
– how many virtual machines will run on each server.
Your Ultimate Quick Reference Resource for Licensing and Pricing
Microsoft Virtualization calculator