/ BLOG / Microsoft Licensing and Virtualisation

Licensing is a pain in my arse. There are whole companies full of people who can tell you that you’re doing it wrong. Personally I cannot stand licensing, and the only thing that I find more annoying (in this field) than the proliferation of Open Source and Free Software licenses (and figuring out what I’m allowed and not allowed to do and what is an “arms length” exactly - but thats another rant for another time), is the software licensing by Microsoft and other vendors who shall remain nameless for this article.

To try and make things easier at work two and a half years ago I put together a very small document/cheatsheet describing the licensing terms for various Microsoft products and virtualisation. Yesterday Microsoft released an updated document for Windows Server 2008 R2, and interestingly not much has changed for Window Server, with the exception of a few new products. The table below should help out a bit if you’re confused It should be noted that I’ve only gone so far back as Windows Server 2003 for this table. I suspect that there are no particular dos or don'ts for anything older and you should probably just treat any virtualised instances as you would physical machines. If you know any different I’d love to hear it..

Instances
Server ProductLicense TypePhysical You can, of course, use the licence in a purely virtual environment.Virtual On the same hardware as the physical licence.
Windows Server Foundation (2008 only)OEM10
Windows Server StandardOEM, Retail, VL, SPLA11
Windows Server EnterpriseOEM, Retail, VL, SPLA14
Windows Server DatacenterOEM, VL1Unlimited
Windows Server WebOEM, Retail, VL, SPLA10
Windows Server HPCOEM, Retail, VL, SPLA11

I decided to check the licensing for other products, just incase I’d missed any changes. It doesn’t look like it, so here the run down (as I understand it).

As a general rule, for anything per processor licensed, if you’re running it in a virtual environment it will simply count the number of virtual processors you assign it.

It gets a bit complicated with SQL 2005 and newer. To quote Microsoft:

When licensed per Server or CAL Workgroup and Standard editions allow you to run any number of instances of the server software in one physical or virtual operating system environment on the licensed server at a time. Previously, only the Enterprise edition of the Server license allowed multi-instancing. When licensed per Processor Workgroup, Web, and Standard editions for each server you have assigned the required number of per processor licenses, you may run, at any one time, any number of instances of the server software in physical and virtual operating system environments on the licensed server. However, the total number of physical and virtual processors used by those operating system environments cannot exceed the number of software licenses assigned to that server. For Enterprise if all physical processors in a machine have been licensed, then you may run unlimited instances of SQL server 2008 in one physical and an unlimited number of virtual operating environments on that same machine.

As far as I’m aware anything else licensed per server doesn’t currently have any special rules regarding virtualisation; so this includes Exchange, Sharepoint, and so on.