One of the worst things about desktop virtualization is that Microsoft's licensing rules around it are complex and draconian. (Behold the power of a monopoly!) Even if you have a fully licensed copy of Windows 7, you need to have an additional license called "VDA" (formerly called "VECD") in order to connect to that copy of Windows via VDI and to be allowed to run it from a shared image or to migrate it to different servers.
Some people (and Microsoft) claim that VDA is not a problem anymore, because if you have a Windows desktop covered under Software Assurance (SA), then VDA is included for free. While this is true, having SA means that you pay for the right to use Windows on a yearly subscription basis--you never "own" the Windows license outright, and if you stop paying, you have to stop using Windows. Microsoft says this is great because it takes the guesswork out of budgeting, but in reality you only get the real value out of this if you always upgrade to the latest version of Windows. (I mean imagine if you had been paying for SA since Windows XP came out ten years ago and you, like many people, skipped Vista and are just now getting to Windows 7? If this is you, then congratulations, because you just paid $1,000 for each copy of Windows XP over all those years!) [UPDATE 12:23p: Gabe wrote that SA is only 29% renewal for two years, meaning that you could keep a desktop OS for ten years for only about $500, not $1,000 like I wrote.]
So this is why there are plenty of scenarios where it's better to just pay once and own forever. (And of course Microsoft knows this which is why they keep sweetening the SA program with bonuses like MDOP and VDA. If SA was really that good, would they have to bribe people to use it?)
The bottom line is that if you want to use VDI, you must have VDA. And in order to have VDA you must have SA. And in order to have SA, you must pay Microsoft about $100 per desktop, per year, forever. (Microsoft's own FAQs defend their decision to offer VDA only via the SA subscription by saying that since VDI allows organizations to deliver their desktops as a service, this allows licensing to be paid for more like a service too. Ok fine! But why not make that an option instead of a requirement? Oh yeah.. because they're a monopoly!)
The Datacenter Server loophole?
In order to avoid buying SA and paying Microsoft money year after year regardless of whether you actually upgrade or not, some people have pointed out that VDA only applies to the desktop version of Windows (e.g. Windows 7). But if you use the server version of Windows, there is no VDA.
Now I'm not talking about using Windows Server with terminal server / remote desktop with RDS CALs. I'm talking about a scenario where you've decided that you need VDI instead of terminal server. So what if you made your VDI with Windows Server VMs instead of Windows desktop VMs? In fact if you buy a copy of Windows Server 2008 R2 Datacenter Edition, that will cost about $6,000 for a dual processor license, but (1) you will "own" that license outright and can run it as long as you want, and (2) the Datacenter Edition of Windows Server lets you run as many server VMs as you want.
So now you can have VDI without VDA. The only "catch" is that your users are running Windows Server VMs instead of desktop VMs. (To be clear, this is not terminal server per se. In this case we're using these servers 1-to-1 for users. Users could install their own software, have admin rights, reboot, live migrate, etc. Each user would "own" his or her own VM, just like VDI.)
Plenty has been written on the internet to make Windows Server 2008 R2 look and feel like Windows 7. You can enable the Windows 7 theme, the search index, the sidebar, etc. In fact Citrix has released a whole toolkit (which is awesome) geared for server providers who want to use Terminal Server to deliver "real" desktops. (Even though this toolkit is made for multi-user terminal servers, the techniques are the same for converting a single-user server into a "desktop".)
And if you still think this is a bad idea, the fact that Microsoft doesn't like it is more fodder for me on why I do like it! :) From Microsoft's VECD FAQ:
Q: Do I need to pay for Windows VECD if I use Windows Server as a client operating system in my virtual machine? OR
Q: I’ve heard that I can avoid paying for Windows VECD by using Windows Server as my VDI desktop OS. Is this true?
Running a Windows Server® OS as the desktop in the datacenter does not require Windows VECD, but there are many reasons why a Server OS should not be used as a desktop, especially in the datacenter:
- The user experience with servers as the desktop is very different from using a Windows client.
- Many applications for end users were written for a client OS and not a server OS. Each of your applications would need to be retested to ensure compatibility with a Server OS. Additionally, most vendors do not offer support for client applications running on servers.
- Clients and servers are on different patch cycles, adding to management complexity.
- Most of the VDI ecosystem will support Windows client in the datacenter, not the Server OS.
However, if you do decide to run a Server OS as the desktop, please note that you will need to pay an RDS-CAL to correctly license that scenario.
Wait, you need RDS CALs for this?!?
So far I was really on board with this whole "just use Server instead of Windows 7 to avoid VDA" thing. I mean $6k per physical server, one shot, done! What's not to love! But that last line from the FAQ about needed to buy an RDS CAL for that scenario… what's that about?
The way I remember it, Windows Server OSes allow two built-in remote desktop connections which do not require terminal server and licensing servers and all that crap. Sure, the restriction is that users who login with one of the two built-in connections must be administrators, but that's fine, because that's the whole reason I'm using VDI in the first place. (And in this scenario, I'm just doing VDI with single-user servers.)
So I can't understand why this requires an RDS CAL?
According to the Windows Server 2008 R2 licensing and pricing guide: (p24)
In addition to the Windows Server 2008 CAL, a Terminal Services 2008 CAL (TS CAL) or Windows Server 2008 Remote Desktop Services CAL (RDS CAL) will be required to access any application or graphical user interface remotely hosted by Windows Server 2008 R2. This includes, but is not limited to, the use of Remote Desktop Services
As in Windows Server 2003, the Remote Desktop Services feature in Windows Server is intended for remote administration (This is referring to the built-in two free connections.)
So I'm not sure if this is a change from the past or what? But basically Microsoft is saying that if a user is using an application in a graphical way from a Windows Server, then you need an RDS CAL. (This means that all those newer cool ways of accessing Windows apps remotely that don't use Remote Desktop will still need RDS CALs.)
So this means that the Windows Server OS doesn't even allow one single user to use it for tasks other than administration, regardless of how they're connecting? (I guess this means if you run Windows Server OS on your laptop locally, you also need an RDS CAL?)
Did this just kill this whole concept? Or is paying $6k one time plus $110 per RDS CAL one time better than SA for VDA? (At least RDS CALs are available in per-user or per-device licensing modes.)
Why do think think? (Besides hating monopolies?)
UDPATE: 7:24am, I changed the phrasing of VECD to update it to VDA, which is Microsoft's new term for it. Thanks @shawnbass for pointing that out. I had no idea.