Licensing for Windows server and MS SQL server on Proxmox

DavidBrown

New Member
Feb 12, 2023
4
2
3
I'm hoping someone can help me understand the maze that is licensing for Windows server and MS SQL server, for running in a virtual machine on Proxmox. I'm used to Linux servers, and PostgreSQL as a database - licensing is clear, usually zero cost, and if you want to pay for support agreements, additional features, early access to updates, etc., then you can do so and you know what you are getting. But now we have a third-party application that needs to run on Windows server, and needs MS SQL server (not Express version). There will only be a few users here, so we don't need many CALs.

We've done tests with evaluation versions of Windows server and MS SQL server on a Proxmox VM, and it all runs without trouble. Now we need to figure out the licensing for a full installation. We are happy to pay what it costs - but we'd rather not pay more than necessary :) And we'd like to know the possibilities and restrictions of what we are getting.

For the Windows license, it seems we can get a standard server license for around $1000 (exact prices will vary by country, currency, distributor, etc.), plus a few CALs as needed.
https://www.microsoft.com/en-us/windows-server/pricing

It seems that this allows for 2 server installations, with at least one of them virtual. But I can't see if the virtual machine has to be on MS's own Hyper-V. What I would like is to be able to have 2 separate Proxmox VM's running Windows server from the one license. Can anyone tell me if that is allowed for Windows 2022 server standard?


MS SQL server seemed to me to be similar: https://www.microsoft.com/en-gb/sql-server/sql-server-2022-pricing shows MS SQL server standard for around $1000, plus a couple of CALs as needed. However, a supplier has told us that this is only licensed for use on a physical machine. They said that if we want to run the SQL server on a virtual machine, we need a version costs twice as much but only lasts 3 years, with a support contract for those three years. I can't find anything on Microsoft's website to support this, so I would like to hear if anyone else knows about it. Clearly, we'd much rather get a perpetual license for $1000 and use it on a WIndows Server on a Proxmox VM, than have to run on a physical machine or have a much more expensive and time-limited SQL license.

Any advice or links would be greatly appreciated.
 
All standard licenses (like Server 2022, SQL Standard, etc.) apply to one machine, not on multiple ones. In principal, there’s no difference running OS/SQL on bare-metal or on VMs.

For example: if you want to install 1x Server 2022 Standard (or 2025, which will be released soon), you‘ll need a license plus the appropiate amount of CALs for each device/user which will connect to it. The same applies for SQL. The difference to SQL is that you can either license additional CALs or cores. In your case, the CAL model would be more appropiate. Licensing cores is usually way more expensive.

There are other license models like volume licenses (Open Value with 3 years of software assurance) but this makes no sense in your case.

We run multiple Server/SQL VMs on customer sites and I never heard of „special licenses for SQL“ which have to be renewed after 3 years (and our certified MS license dealer also not).
 
Thanks for that. I think the SQL license our supplier talked about would be the "Open Value with 3 years of software assurance" you describe. (Our supplier got the information from his supplier, so there's a bit of "whispers" game going on, making it harder for me to figure out the details.) Do you think there could be any reason why this sub-supplier had said we needed that type of volume license for SQL server for running it on a virtual machine? Perhaps that sub-supplier assumed we meant Azure, or to move the SQL server around on different machines.

I would be quite happy to run one Proxmox VM with one Windows Server running one MS SQL Server. If the Windows Server Standard license also allows an additional VM, I'd be even happier, but it is not essential.

And if I have a Proxmox VM with Windows Server Standard and MS SQL Server standard, is there anything in the licensing to restrict moving it between Proxmox machines in a cluster? What about making clones? Obviously, I assume we could only run one VM at a time on the cluster, which is fair enough.
 
Afaik running another instance of Windows Server with the same license is only allowed if Hyper-V is used (instead of Proxmox). For SQL you‘ll need a standard license plus CALs. It’s allowed to buy and use OEM licenses for both systems.

Regarding moving VMs inside a cluster: from the license point of view there’s no difference if a VM is running on host 1, 5 or 7 (for example). One thing to keep in mind is the cpu type. If your cluster has mixed architecture (Xeon, Epyc, etc.) and the cpu is set to „host“ you can run into some problems on the SQL side if a VM is moved. Usually switching only the CPU is not a big deal (except for performance issues). All other factors like UUIDs keep the same.

Cloning AND running a VM while the original VM is still active and running would lead to a license violation.
 
To be clear - in regard to cloning, I only meant running one at a time. It can be useful for testing or with risky changes - stop the VM, clone it, test the changes in the clone and see how it goes. That makes it easier to roll back if things go horribly wrong. If we want to clone an installation, modify it, and run both, then we'd get a second set of licenses and use them in the clone.

It's a shame if the second Windows Server instance is Hyper-V only. But it's MS's software, they make the rules.

However, it all sounds as if there has been some miscommunication and our supplier's supplier has misunderstood somewhere when saying that we need an "Open Value" license for SQL to run it on a virtual machine.

Thanks for your help and information here.
 
  • Like
Reactions: cwt
An alternative to cloning are snapshots. Power down the VM, take a snapshot and run your tests. Much more comfortable than creating clones.
 
I am required to disagree with cwt here.

In general, you can run two VMs on one physical host with one Windows Standard license. The hypervisor doesn't matter, it can be HyperV, ESXi or even PVE. This license is then bound to this host and both VMs are required to remain together on this host. The only exception is that both VMs may be migrated to another host for maintenance purposes a maximum of once every 90 days. However, the two VMs are always required to remain together, as the license is always host-bound.

Alternatively, with datacenter you can license the entire host and install unlimited VMs. These can then also be moved to other Datacenter licensed hosts as required

SQL licensing is a little more complicated if you buy core licenses.
No mobility (live migration) is allowed unless you have the more expensive license with Software Assurance.
With a small number of users, it is worth thinking about simply licensing the SQL according to concurrent users, then the substructure is completely irrelevant.
 
That is interesting to hear, thanks. We will only need the one Windows Server instance initially, but it is nice to know about the possibilities (and restrictions) in the future. I know that the datacenter licenses allow a lot more freedom, but they are rather expensive - we only need this server for one specific application. There will be one machine connected to it, and one other user, so CALs are definitely the way to go for the SQL licensing.
 
  • Like
Reactions: Falk R.
I am required to disagree with cwt here.

In general, you can run two VMs on one physical host with one Windows Standard license. The hypervisor doesn't matter, it can be HyperV, ESXi or even PVE. This license is then bound to this host and both VMs are required to remain together on this host. The only exception is that both VMs may be migrated to another host for maintenance purposes a maximum of once every 90 days. However, the two VMs are always required to remain together, as the license is always host-bound.

Alternatively, with datacenter you can license the entire host and install unlimited VMs. These can then also be moved to other Datacenter licensed hosts as required

SQL licensing is a little more complicated if you buy core licenses.
No mobility (live migration) is allowed unless you have the more expensive license with Software Assurance.
With a small number of users, it is worth thinking about simply licensing the SQL according to concurrent users, then the substructure is completely irrelevant.
Hi Falk,

I want to agree with you, but it seems that even Microsoft resellers are not aware of those small details of 2VM per any Hypervisor until now. Can you point to some official documents that Microsoft refers to? Also, regarding 90 days of maintenance, it would be very helpful if we could spot it somewhere in the Microsoft Legal agreement or License term in order to make this transparent to everyone.

Thank you
 
Note that Datacenter is now called Enterprise. What was said above really depends on your license, so moving VM to another node or the cloud is only if you have Software Assurance on top of your regular contract costs.

Per their own documentation:
  • License individual virtual machines (VM), and when licensing per core, buy core licenses only for the virtual cores assigned to the VM.
  • License for high VM density by buying Enterprise Edition core licenses and Software Assurance for all the physical cores on the server (or server farm) and deploying an unlimited number of VMs on the licensed hardware. Without Software Assurance, VM density is limited to one VM per Enterprise Edition core license.
Note they may also want to sell you Azure Hybrid at lower cost. This basically means instead of the license, you pay the Azure SQL Server costs (per hour, core or DTU) regardless of where you run the infrastructure.

As with everything Microsoft it really depends on your overarching license contract and cost depends on what you can finagle out of your sales partner. We have sufficient number of covered people, we have practically unlimited license to the entire MS software library, they want us to trade those licenses for unlimited Azure where we only pay for data and resource usage, but even that is too expensive compared to switching to Linux and using open source.
 
Last edited:
Note that Datacenter is now called Enterprise. What was said above really depends on your license, so moving VM to another node or the cloud is only if you have Software Assurance on top of your regular contract costs.

Per their own documentation:
  • License individual virtual machines (VM), and when licensing per core, buy core licenses only for the virtual cores assigned to the VM.
  • License for high VM density by buying Enterprise Edition core licenses and Software Assurance for all the physical cores on the server (or server farm) and deploying an unlimited number of VMs on the licensed hardware. Without Software Assurance, VM density is limited to one VM per Enterprise Edition core license.
Note they may also want to sell you Azure Hybrid at lower cost. This basically means instead of the license, you pay the Azure SQL Server costs (per hour, core or DTU) regardless of where you run the infrastructure.

As with everything Microsoft it really depends on your overarching license contract and cost depends on what you can finagle out of your sales partner. We have sufficient number of covered people, we have practically unlimited license to the entire MS software library, they want us to trade those licenses for unlimited Azure where we only pay for data and resource usage, but even that is too expensive compared to switching to Linux and using open source.
Ok just to understand
I have a node Proxmox with 40 cores and I want to install 2x Windows server standard edition. How many licenses do I need to buy ? Also the reseller told me that if my node has 40 cores then I have to buy win srv license for 40 cores. Is that true ??
 
How many cores do you want to assign to your SQL Server VM. Assuming you want SQL Server 2025 (2022 has a different license model option)

You have a choice:
SQL Standard for VM is per vCore assigned (up to 24 I believe, don't quote me on that). So if you have 40 physical cores but you only use 4 for SQL, then you pay for 4 cores + n cals for the number of users. If you want to use 40 cores, then I don't think SQL Standard allows you to do that. Say you have 4 cores and 50 users and a relatively standard pricing model: $1200 * 4 + $230 * 50 = $16,300. You want 24 cores, you do that calculation. If SQL Server is fronted by a web service then you still need to pay per user of that web service - if it's public, SQL Enterprise is the only viable option then.

SQL Enterprise can be done with same core+cal IF you are grandfathered into it OR you pay for the entire Proxmox server farm (40 cores * # servers) and get unlimited VM and no CAL needed. I believe the per core price is about $13,000. So 40 * 13,000 = $520,000 - note you often get huge discounts on this so you'll probably pay closer to $50-100k.

IF you have software assurance you are allowed to move your VM to another physical host, provided you've either licensed per vCore or every core in each of the nodes you may move to on the server farm.

Azure Hybrid - you pay for the SQL Server instance AS IF you were running it on Azure Cloud.

Yes, you still need Windows Server licensing, they require their own CAL if you're going to use AD, RDP etc. and at least in the past (years ago) each CAL will need at least 1 Windows client license in the same contract (so no using your OEM license), regardless whether the client is actually running Windows, similar pricing models apply (either you license per vCore and don't get to move it without SA, or you license the entire server farm).
 
Last edited:
  • Like
Reactions: Johannes S
How many cores do you want to assign to your SQL Server VM. Assuming you want SQL Server 2025 (2022 has a different license model option)

You have a choice:
SQL Standard for VM is per vCore assigned (up to 24 I believe, don't quote me on that). So if you have 40 physical cores but you only use 4 for SQL, then you pay for 4 cores + n cals for the number of users. If you want to use 40 cores, then I don't think SQL Standard allows you to do that. Say you have 4 cores and 50 users and a relatively standard pricing model: $1200 * 4 + $230 * 50 = $16,300. You want 24 cores, you do that calculation. If SQL Server is fronted by a web service then you still need to pay per user of that web service - if it's public, SQL Enterprise is the only viable option then.

SQL Enterprise can be done with same core+cal IF you are grandfathered into it OR you pay for the entire Proxmox server farm (40 cores * # servers) and get unlimited VM and no CAL needed. I believe the per core price is about $13,000. So 40 * 13,000 = $520,000 - note you often get huge discounts on this so you'll probably pay closer to $50-100k.

IF you have software assurance you are allowed to move your VM to another physical host, provided you've either licensed per vCore or every core in each of the nodes you may move to on the server farm.

Azure Hybrid - you pay for the SQL Server instance AS IF you were running it on Azure Cloud.

Yes, you still need Windows Server licensing, they require their own CAL if you're going to use AD, RDP etc. and at least in the past (years ago) each CAL will need at least 1 Windows client license in the same contract (so no using your OEM license), regardless whether the client is actually running Windows, similar pricing models apply (either you license per vCore and don't get to move it without SA, or you license the entire server farm).
I am sorry for the misunderstanding me. All I need to understand is the OS license not the sql part :) so all my questions refer to windows server 2025 or 2022 but not on SQL
 
Very similar, per 16 cores do either a Windows Server Standard or Datacenter edition.
For each Server license, Standard allows 1 host with 2 VMs, or 1 host with unlimited VM for Datacenter edition.

So for 40 cores, you'll need to get 3 licenses for Standard which gets you 2-6 VMs (for every 16 cores/VM consume 1 license) or 3 licenses for Datacenter if you need more VMs.

And then you need a Windows Client license and/or Server CAL for each client (user and/or device on your network) that can use/reach said server (eg. will it ever touch 80/443 IIS, RDP etc).

Again, your Microsoft rep will give you a 'deal' where some or all of these things are included. The price online is not representative and depending on your organization's size and revenue, a fraction of that revenue will be calculated as the target overall licensing cost, often going by headcount and industry, may even include Office 365 etc just to make it attractive to switch from whatever solution you are running now to the 'already included' Microsoft cloud.
 
Last edited:
Ok but still do I need to acquire license for 40 cores even though I won’t use them ? Or just license with base 16 core is just fine ?
 
If your host has 40 cores, you need to purchase 3x16 cores for Server if you are going to do the DIY 'webshop' approach. Doesn't matter if or how you are using them (VMs, containers, not at all). Again, most license packages are calculated differently though, so your rep will give you the option to do headcount or revenue based licensing which practically gives you 'unlimited' licenses (eg. I've got 2,000 licenses for datacenter edition and 10,000 licenses for standard in my 'software assurance' which would allow me to run a server for every single employee).

It's hard for me to give any detailed information, because licenses also depend on your use (hence the client and device CAL).

You can easily get to a point where you are using Windows client as a server (eg. I've seen people here promote the shady Terminal Server alternatives) which converts your client to a server license regardless of the installed OS flavor. You have a developer that runs a Windows container or HyperV on their Windows 10 - well, you may want to check what that means for commercial use.
 
Last edited:
Hi Falk,

I want to agree with you, but it seems that even Microsoft resellers are not aware of those small details of 2VM per any Hypervisor until now. Can you point to some official documents that Microsoft refers to? Also, regarding 90 days of maintenance, it would be very helpful if we could spot it somewhere in the Microsoft Legal agreement or License term in order to make this transparent to everyone.

Thank you
You can find any Sources in the WWW.
Here is an example:
https://learn.microsoft.com/en-us/a...many-virtual-machines-i-can-create-on-windows
 
Ok but still do I need to acquire license for 40 cores even though I won’t use them ? Or just license with base 16 core is just fine ?
You Need for every one or two instances (VMs) 40 Cores Standard. 16 Cores is the Base License and then add additional 2Core Packs.
For 5 or 6 VMs you need 3x 40 Cores.
 
Hi,

Maybe is usefull to be aware, that you can run MSSQL on linux(centos for example). So, you can avoid OS licenses. An it is running very well at least for me(updates included).

Good luck / Bafta !
 
  • Like
Reactions: Johannes S
Hi,
I recommend using Ubuntu for MS-SQL, as Microsoft develops and tests the packages on Ubuntu.
 
  • Like
Reactions: Johannes S