Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 

Chad Miller

Chad Miller is a Senior Manager of Database Administration at Raymond James Financial. Chad has worked with Microsoft SQL Server since 1999 and has been automating administration tasks using Windows Powershell since 2007. Chad is the Project Coordinator/Developer of the Powershell-based Codeplex project SQL Server PowerShell Extensions (SQLPSX). Chad leads the Tampa Powershell User Group and is a frequent speaker at users groups, SQL Saturdays and Code Camps.

Counting Licenses for VMs

This is old news, but I’ve had to explain SQL Server VM licensing to enough people recently that I thought I’d put together a post.

In June 2009, Microsoft released an update to SQL Server licensing which can significantly lower TCO for SQL Server instances running under VMs for  not only Hyper-V, but also VMWare.

http://download.microsoft.com/download/6/F/8/6F84A9FE-1E5C-44CC-87BB-C236BFCBA4DF/SQLServer2008_LicensingGuide.pdf is a good guide for helping here.

Microsoft S/W licensing like all software vendors is complex, so SQL Server virtualization licensing is best illustrated by looking at several examples:

Each scenario was calculated using the formulas in the referenced document ( starting on page 25)

In scenario #1 — 1 processor needed.

A. Number of virtual processors supporting the VM – Answer here is 2

B. Number of cores per physical processor (if hyper-threading is off) OR number of threads per physical processor (if

hyper-threading is on) – Answer here is 4

C. Number of physical processors – Answer here is 2

So this plugs into the formula

A / B = Number of licenses ( rounded up to whole number)

2 / 4 = 1 processor license needed.

Scenario # 2 — 1 processor license needed

A. Number of virtual processors supporting the VM – Answer here is 4

B. Number of cores per physical processor (if hyper-threading is off) OR number of threads per physical processor (if

hyper-threading is on) – Answer here is 8

C. Number of physical processors – Answer here is 4

So this plugs into the formula

A / B = Number of licenses ( rounded up to whole number)

4 / 8 = 1 processor license needed.

Scenario # 3 –1 processor license needed

A. Number of virtual processors supporting the VM – Answer here is 8

B. Number of cores per physical processor (if hyper-threading is off) OR number of threads per physical processor (if

hyper-threading is on) – Answer here is 8

C. Number of physical processors – Answer here is 4

So this plugs into the formula

A / B = Number of licenses ( rounded up to whole number)

8 / 8 = 1 processor license needed.

Microsoft has provided generous virtualization licensing which means a VCPU isn’t equal to a processor and in fact is significantly less. Looking at scenario #3 allocating 8 VCPU ‘s is equal one processor license!

How Does SQL Server VM licensing compare to Oracle and IBM?

I think it’s important to point out I am in no way a Microsoft zealot nor I am simply bashing non-Microsoft products. I consider myself a customer of each vendor and virtualization licensing is just one of many factors which should be considered in selecting a vendor along with product capabilities, cost, and skill set of people working on it.

What follows is my summary of  how Oracle and IBM address virtualization licensing provided for comparison purposes to Microsoft. These are my opinions only and you should seek the advice of  licensing experts whenever choosing a licensing strategy with any vendor.

Oracle

Oracle does not recognize virtualization—or at least most forms of virtualization not their own. Oracle has taken a tough stance on virtualization when compared to Microsoft and IBM as described in their own licensing documents. Oracle differentiates between what they call soft partitioning and hard partitioning.

Here’s an excerpt from Oracle licensing doc http://www.oracle.com/us/corporate/pricing/specialty-topics/index.html in regard to virtualization. Oracle Virtual Machine (OVM) and Solaris Containers are recognized as “hard partitioning” while VMWare is consider “soft partitioning” and is not.

Approved hard partitioning technologies include: Dynamic System Domains (DSD) — enabled by Dynamic Reconfiguration (DR), Solaris 10 Containers (capped Containers only), LPAR (adds DLPAR with AIX 5.2), Micro-Partitions (capped partitions only), vPar, nPar, Integrity Virtual Machine (capped partitions only), Secure Resource Partitions (capped partitions only), Static Hard Partitioning, Fujitsu’s PPAR. Oracle VM can also be used as hard partitioning technology only as described in the following document: http://www.oracle.com/technology/tech/virtualization/pdf/ovm-hardpart.pdf.

This is why you aren’t seeing a lot of virtualization in Oracle. As an example you can use VMWare (there may be some support issues to consider), but because VMWare is a soft partition in Oralce’s view you’d need to license the entire VMWare cluster in order to virtualize a single Oracle server or use one of the hard partitioning technologies described above. One thing I find interesting is that OVM is a Xen based hypervisor which is similar to VMWare yet one’s considered hard partitioning and the other soft partitioning. Needless to say as an Oracle customer I’m not happy with their virtualization licensing stance. As more and more Oracle customers move to virtualization I don’t think this is a sustainable strategy. It  is my belief due to customer demand at some point Oracle will need to change its stance on virtualization.

IBM

IBM recognizes virtualization capacity licensing, now IBM licenses on a per core basis instead of a per socket basis like SQL Server. Generally a VCPU is equal to one core, but may not be. See the licensing documentation for specific virtualization technology guidance:

IBM Virtualization Capacity License Counting Rules

Keep in mind IBM uses something called Processor Value Units or PVU’s when calculating licensing. different processor chips may have different PVU multipliers. As an example there’s a higher PVU for Nehalem or higher processors than pre-Nehalem on the Intel platform. The PVU calculations are used in determining virtualization licensing. See http://www-01.ibm.com/software/lotus/passportadvantage/pvu_licensing_for_customers.html for further information.

Summary

Microsoft provides a generous interpretation on virtualization licensing when compared to their competitors. It should be noted one thing I didn’t discuss is the scenario where you license the entire virtualization hosts (physical cluster). My understanding is that this is an acceptable licensing scenario with Microsoft, IBM or Oracle (again check with the vendor). When licensing an entire cluster you’re able to setup an “all you can eat” scenario where you can deploy as many VM’s you want without having to license at the VM level even if you don’t do this on the database-level it may make sense to do so on the operating system level.

Software licensing is complex subject with any vendor so if there are any clarifications, omissions, or anything I misstated, please post a comment.

Comments

Posted by Keith Hays on 5 July 2011

These seem very accurate descriptions of the licensing for the 3 vendors. We use all 3 vendors' database formats.  I have to say that I don't know why one particular vendor's VM licensing would be better than another in the long term for only one reason.  I do not believe that virtualizing the major database formats is a cost effective strategy in the first place.  What I mean is that the TCO for virtualizing these formats is higher than not and with no additional benefits.

I will stick with SQL Server in particular since that is my area of expertise.  SQL Server is inherently virtualized to begin with. The only savings that one could hope to achieve would be using-up unused cycles of the physical machine.  This only requires an additional instance of SQL Server which occurs at no addition cost under Microsoft's licensing.  By putting these smaller instances into VM's, every cost associated with running an additional OS is multiplied unnecessarily.  That additional OS layer comes at an even higher cost if one expects to have high-availability at the service level which is non-existent unless you setup yet another VM to cluster to which adds to the cost. VMware HA at the guest level is non-existent entirely above 1 VCPU. None of these of course takes into account performance which all things being equal will be worse under virtualization.

I prefer to think that Oracle for instance doesn't want your money, they just don't want their product to suffer.

Posted by Rich on 5 July 2011

Hyperlink in article is an OWA, password-protected link.

I think this is the actual MS link:

download.microsoft.com/.../SQLServer2008_LicensingGuide.pdf

Posted by Mark Douglass on 5 July 2011

Thanks Chad - quick (dumb) question - Does VMWare licensing represent ANY OTHER virtualization platform? We use Citrix XenServer for our VM hypervisor and management - will that make a difference?

Posted by cmille19 on 5 July 2011

@rmechaber

Links corrected. Thanks

Posted by atoth on 5 July 2011

thanks for this - I've been paying too much  :(

Posted by cmille19 on 5 July 2011

@Mark Douglass

My understanding of VM licensing is that Citrix XenServer is recognized by Microsoft and IBM. Oracle does not recognize XenServer as a "hard partition" technology, meaning you can use it but you would have to pay for Oracle licensing for the entire XenServer cluster.

Posted by npcrwill8 on 5 July 2011

Sorry, as I am a bit confused with these 3 cases.  Sql server licensing by processor is per physical CPU without virtualization, I thought.  So if I read case#3 with 4 physical CPU with virtualization, the number of processor licenses needed is less than w/o virtualization ?

Maybe I am totally upside down ; misunderstanding altogether.

Posted by cmille19 on 5 July 2011

@Keith Hays

The intention of this post was to discuss licensing in virtualization environment. That said I disagree with your assertion that virtualization isn't a key consolidation technique which is equally applicable to databases as to web and application servers. I've been a SQL Server DBA for over 11 years and in that time I've used various consolidation strategies. One of the key strategies is to stack as many databases on a single instance. Having muliple unrelated databases on single instance  creates problems for availability and upgrades. For example disk maintenance on one requires taking down all. How do you handle upgrades? How do you address different availability windows for each application/database, etc.

I've virtualized 60% and left the 40% on physical hardware and haven't had performance problems. This is due to a great deal of planning on which databases to virtualize and which to leave on physical hardware. Of course, like anything else you can mess it all up by not carefully planning or not having people with the right skills.

Also keep in mind the licensing terms for Oracle apply equally to their application stack (WebSphere for  example) and ancillary database products like GoldenGate. In my opinion not allowinig Oracle customers to virtualize certain application servers is a view only Oracle has taken. So either Oracle is right and everyone else is wrong (Microsoft and IBM) or Microsoft and IBM are right in supporting virtualization. I believe it is the latter.

Lastly I think you are confusing HA with FT (fault tolerance). VMWare is HA in that if a physical VMWare node goes done all VM's are transferred to the other node. HA supports as many VCPU's as can be assigned (currently I have 8 VCPU VMs). Although HA requires restarting VM's, this is functionaly equivalent to a Windows cluster where the SQL Server service is started on the other node. You also can use database mirroring with SQL Server to provide better HA to SQL Server VMs. FT is where a secondary copy of the a running VM is maintained real-time and should the first copy fail the second takes over and this has a 1 VCPU limitation.

Posted by cmille19 on 5 July 2011

@npcrwill8,

On a physical machine for Microsoft licenses, processors are counted on a per socket basis. As an example I'm running an HP BL 460 with two sockets (processors) and 4 cores. I only pay for 2 processors even though the OS sees (2 socket times 4 cores) 8 or 16 with HyperThreading turned on.

As with any licensing you should discuss specific scenarios with your vendor.

Posted by Keith Edwards on 5 July 2011

You can find an updated license quick reference guide here. They made some tweaks with regards to Virtualization when 2008 R2 was released.

www.microsoft.com/.../how-to-buy.aspx

Posted by cmille19 on 5 July 2011

@Keith Edwards

Thanks for the updated link. In looking through the updated document the example scenarios are still accurate.

Posted by Steve Lewis on 25 August 2011

Hi Chad

Excellent summary of the challenge of licensing software in the modern post-VM world.  However, I have to take issue with just one of your statements about Oracle's licensing policy:

"... because VMWare is a soft partition in Oralce’s view you’d need to license the entire VMWare cluster in order to virtualize a single Oracle server"

I don't believe this is true.  It's true that Oracle regards VMware as a soft partitioning technology with respect to subdividing the resources of a single server - i.e. one cannot "pin" a VM to a subset of the processors in a physical server in order to limit the number of processors for which licenses must be purchased.

However, the inverse is not true.  Grouping servers together into a single VMware cluster does not create a hard partition between those servers.  If you "pin" a VM to the processor(s) of just one server in a VMware cluster, VMware does not create turn all servers in that VMware cluster into a single hard partition.  In effect, Oracle ignores the existence of VMware from a licensing point of view, treating a VM running on a server as if it were running without VMware. Ignoring the existence of VMware neither allows its use for subdividing a server (hard partitioning) nor does it create any "hard aggregation".  

That means, so long as all your VMs running a single product are pinned to the CPUs of a single server, you only need to license that product for (all) the physical processors in that single server.

In all other respects, however, I believe what you have said about Oracle's licensing and hard and software partitioning is true.

Steve

Posted by cmille19 on 12 September 2011

Steve,

I'm not so sure about that. Oracle specifically states VMWare is a soft partitioning technology as noted in this document www.oracle.com/.../partitioning-070609.pdf

There is no mention that pinning within VMWare so that running an Oracle product on a single host which is part of a VMWare cluster is a recognized subcapacity licensing scenario. If anything their documents and the dicussions I've had with Oracle leads me to believe you would need to license the VMWare cluster.

If you find documentation otherwise please post. I am researching OVM and if I have any new information to share I'll post it also.

Leave a Comment

Please register or log in to leave a comment.