Microsoft SQL 2012 Licensing in a VMware environment - Part One

More and more Microsoft SQL Servers are being deployed virtually in a VMware environment, but how can you license them correctly?

Microsoft changed their licensing again on April 1st, 2012. With the general availability of SQL Server 2012, the changes around SQL licensing are live.

Some highlights are:

  • There are three main editions now:
    • Standard
    • Business Intelligence
    • Enterprise.

The Web edition is now only available for Service Providers through the SPLA license agreement.

  • Per CPU licensing is no more. You have two types of licensing only:
    • Core-Based
    • Server+CAL licensing.

Microsoft chose this way because virtualization is on its way to 100%, server hardware gets more powerful over time, doubling cores every 18 months. Also companies demand more flexibility with workloads traveling between private and public clouds.

  • Furthermore Microsoft tries to simplify and make licensing more predictable for customers with evolving infrastructures.

You now have the choice to either license individual virtual machines or to license the physical layer below it for maximum virtualization, while reducing costs. The only catch is that you have to license a virtual machine (VM) with a minimum of 4 cores per VM. Microsoft, why not make that 2?? You sell the licenses per 2-Pack of core licenses and most VMs deployed in the wild at the moment have 1 or 2 cores assigned to it.

If you want to license the entire physical server you only have one option: buy the Enterprise Edition core licenses, where you are obligated to cover those licenses with Software Assurance (SA).

If you don’t have Software Assurance (SA) coverage on your SQL licensing, you are not allowed to move SQL servers back and forth between hosts. VM license mobility is a SA benefit. Without SA, licenses can be only moved from one server to another once every 90 days. There is one catch, those 90 days still apply if you reassign the license to a server outside the server farm or to a non-private cloud.  For more information, see the Application Mobility paragraph.

There is a one single CAL SKU for SQL Server 2012 for access to all the server editions. A CAL is not software; it is a license granting users and devices access to the SQL Server software.

Licensing individual VMs is the only licensing option available for SQL Server 2012 Standard Edition for customers who are running the software in a VMware environment under the Per Core model.

Prior to the release of SQL Server 2012, SQL Server 2008 R2 (and earlier software versions) were licensed through Microsoft Volume Licensing programs, using one of two software licensing models: a Per Processor licensing model, that reflected the computing power used and a Server plus Client Access License (Server+CAL) licensing model, which is based on the users or devices accessing the product.

Unlike the Server+CAL licensing model, the Per Core model allows access for an unlimited number of users or devices to connect from either inside or outside an organization’s network. With the Per Core model, customers do not need to purchase additional client access licenses (CALs) to access the SQL Server software.

If you have to answer one of the following questions with yes, you have to use Core based licensing.

  • Do you have users and/or devices accessing the databases from an extranet/internet?
  • Do you have users/devices that cannot be counted easily?
  • Do you need features from the SQL 2012 Enterprise edition?
  • Are the total licensing for server/CAL based higher than core based? (See calculating the Licensing costs paragraph)


Licensing using the Server+CAL Licensing Model

When licensing the SQL Server 2012 environment through Server+CAL licensing you will have two components you have to license, Server licenses and Client Access Licenses (CALs).

Server License

Every operating system environment (OSE) running SQL Server 2012 software or any of its components must have a SQL Server 2012 server license assigned to the physical server hosting the OSE. Each server license allows customers to run any number of SQL Server instances in an OSE, either physical or virtual. The maximum supported number of instances is 50 on a stand-alone server for all SQL Server editions.

Important!!!Running SQL Server software on different hardware partitions or blades requires separate software licenses. Hardware partitions and blades are considered to be separate servers for licensing purposes and SQL Server software licenses cannot be assigned to more than one server at any time.”


To access a licensed SQL Server, each user or device must have a SQL Server CAL that is the same version or newer than the SQL Server software version being accessed. This means that you are allowed to access SQL servers running SQL 2000, 2005, 2008 and 2012 when you have SQL 2012 CALs. While version specific, each SQL Server 2012 CAL provides access to any number of current and/or prior version licensed SQL Server instances in a customer’s organization, regardless of the platform (32-bit, 64-bit or IA64) or product edition.


Licensing Individual Virtual Machines

Like the Per Core licensing model in physical OSE’s, all virtual cores (vCore) supporting virtual OSEs that are running instances of SQL Server 2012 software components must be licensed accordingly.

To license individual VMs using the Per Core model, customers must purchase a core license for each v-core (or virtual processor, virtual CPU, virtual thread) allocated to the VM. With a minimum of a four core license per VM. When licensing individual VMs, core factors do not apply. Licensing individual VMs is the only licensing option available for SQL Server 2012 Standard Edition customers who are running the software in a virtualized environment under the Per Core model.

With SQL Server 2012, Microsoft provides support for license mobility as an exclusive SA benefit available for all SQL Server editions.


Licensing for Maximum Virtualization

Licensing the physical layer with SQL 2012 Enterprise edition on all physical cores can reduce overall costs. You are allowed to run as much VMs as that you licensed physical cores. For example a server with two CPUs with each 6 cores will allow you to run 6 x 2 = 12 VMs with unlimited number of instances of the software.

If you want to run 15 VMs on the server example above you will need 3 extra core licenses but have to buy 4 core licenses because they are 2-packed by Microsoft.

If you want to run unlimited number of VMs to handle dynamic workload and fully utilize hardware computing power than you have to cover all Enterprise Edition core license with SA. Your use rights are expanded then to allow any number of instances of the software to run in any number of OSEs (physical or virtual). This benefit ends when SA coverage expires and isn’t renewed at the end of the period.


Licensing SQL Server for High Availability

SQL Server software can be configured to pick up processing, recover and continue on a second server if the first server fails. All editions of SQL Server 2012 provide basic high availability features including backup log shipping, database mirroring and two-node failover clustering. Advanced (AlwaysOn) high availability features in SQL Server 2012 Enterprise Edition include enhanced support for multiple, active (readable) secondary servers and support for multi-site failover clustering.

If you have an Active – Passive deployment you don’t have to license the passive side with core licenses. In an Active – Active deployment you have to license all cores on both sides.

Failover Basics

For each properly licensed instance of SQL Server, customers can run a supporting passive instance in a separate OSE for temporary support. A passive SQL Server instance is one that is not serving SQL Server data to clients or running active SQL Server workloads. This passive failover instance can run on a server other than the licensed server.

  • The secondary server used for failover support does not need to be separately licensed for SQL Server as long as it is truly passive.
  • Primary server licenses include support for one secondary server only, any additional secondary servers must be licensed for SQL Server.
  • When licensing SQL Server 2012 under the Per Core model, the number of core licenses must be based on the server that requires the higher number of licenses.

AlwaysOn Availability Groups

New for the SQL Server 2012 Enterprise Edition, AlwaysOn Availability Groups enable customers to configure multiple databases that will failover as a unit, including support for up to four active secondary servers and two synchronous secondary servers. The ability to use secondary servers for more than just passive failover support can improve the performance of primary, reporting and backup workloads due to better balancing of workloads across instances, helping to provide better return on hardware investment.

Note: When secondary servers are actively used to support these additional workload scenarios—that is, when the servers used for failover purposes are no longer truly passive—they must be fully licensed accordingly.


Licensing SQL Server for Non-production Use

The SQL Server 2012 Developer Edition is a full-function version of SQL Server software—with all the features and capabilities of the Enterprise Edition—licensed under the Developer Tools model, which is a “per user” model. One license is required for each person that accesses or uses the software.

When using SQL Server software for development, test or demonstration purposes, only the users are licensed and a corresponding license for the actual server systems running SQL Server software is not required.

As long as only licensed users have access to the software, customers can install any number of copies of the software on any number of servers that are used exclusively for development, test or demonstration purposes.

This is significant, because it allows customers to run the software on multiple devices (for testing purposes, for example) without having to license each non-production server system.


License Mobility

License Mobility is a usage right that is available for all editions of SQL Server 2012 software licenses with active Software Assurance (SA) coverage. With this SA benefit, customers can re-assign SQL Server licenses to different servers within a server farm as often as needed. Customers can also reassign licenses to third party shared servers. License Mobility is available for licenses under both the Per Core and Server+CAL license models.

All SQL Server licenses with active SA can be reassigned to another server within the server farm as often as needed; however, they can only be reassigned to another server in another server farm, or to a non-private cloud, once every 90 days.

  • A server farm may consist of up to two data centers located in time zones that are within four hours of one another and/or with the European Union (EU) and/or European Free Trade Association (EFTA).
  • A given data center may only be part of one server farm.


In part two I will explain what this means for your licensing using several examples.