In my last post, I discussed the basics of SQL licensing. In this post, I will answer the question: How do you properly license SQL Server 2016 in a virtual environment?
As you might have guessed, the answer is not simple. There are two ways to license SQL 2016 for a virtual environment: You can either license the individual virtual machines or, for maximum virtualization, you can license the cores in the physical server. Here’s the deal …
If you only need one or a few instances of SQL, then this is the route to go. For this option, basically you are going to treat your virtual machine just like a physical machine and license it accordingly. So just like a physical machine, you will need to decide if you want to go with the Server+CAL licensing model or the Per Core licensing model. (See my previous post for more details on these two licensing models.)
To license your VMs using the Server+CAL model, you will assign a server license to each VM and a CAL to every user or device that will access those VMs. Simple enough. (Note that one CAL gives a user permission to access multiple SQL servers.)
If you decide on the Per Core model, then you will need to decide how many virtual cores (i.e., virtual processors, virtual CPUs, virtual threads) that you will assign to each virtual machine. Then you will buy enough core licenses to cover those virtual cores. Just remember that the four-core minimum still applies, so even if you create a virtual machine with only two virtual cores, you still need to purchase four core licenses for that VM.
One last detail to note (and it’s important not to miss this!) …
Whether you go with Server+CAL licenses or Core-based licenses, permission to move your virtual machine from one physical host to another is a Software Assurance benefit. So if you want license mobility rights (a.k.a., vMotion rights), then you will need to purchase SA. Otherwise, your SQL license will be assigned to a specific physical machine and you will not be allowed to move that VM to another physical host for 90 days (unless there’s a hardware failure). This benefit also gives you the right to move the VM to a third-party host or cloud provider, but only once every 90 days. For more information on this topic, see my previous post.
But let’s say you want to create a whole fleet of virtual SQL servers and money is no object. For you fortunate individuals, you will want to look into Microsoft’s solution for maximum virtualization rights. There are two ways you can make this happen.
The first route is to purchase a SQL 2016 Enterprise license for every physical core in your server, but do not purchase Software Assurance. If you do this, then you have permission to spin up as many virtual machines as you have cores. So if you have a server with twelve cores and you assign it twelve licenses, then you have permission to create up to twelve virtual machines. (But again, please note that this would not give you permission to move those VMs around your server farm. They would have to stay on that physical server.)
The second (and more expensive) route is to license every processor core in the physical machine with SQL Server 2016 Enterprise and cover those licenses with Software Assurance. Once you do that, then all bets are off. You can create virtual SQL servers to your heart’s content. An unlimited supply of SQL Servers is now at your fingertips.
And if you want to expand your SQL empire even further, you can take a whole server farm and do the same thing! Cover all the processor cores in all the physical servers with a license of SQL Server Enterprise with SA, and you can create a bazillion virtual machines running SQL Server. And since they are already covered with SA, you also have permission to move the VMs from host to host as the need arises.
Of course, the only catch is the price. For example, in the image above you will need to license twelve processor cores with SQL Server Enterprise with SA. One way to do that would be through the Open License program which will give you two years of SA. At $20,621 for a two-core license with SA, you are looking at an initial price of $123,726. Down the road, a two-year renewal will cost you $6,874 per license, so you are looking at paying $41,244 every two years for the foreseeable future. There are other volume licensing programs that will help bring that cost down a little and will allow you to spread out the payments, but those numbers give you an idea of how much this robust solution is going to cost.
In conclusion, there are a variety of ways for you to virtualize SQL Server 2016, ranging from the very small to the very large. For more details on using SQL Server 2016 in a virtual environment, you can download Microsoft’s “SQL Server 2016 Licensing Guide”.