How hard is it to build and manage a WIndows VDI infrastructure?
My use case is: I want a server for our shop to store client data in a database.
I need to have two computers able to access the database.
This is all going to be retired enterprise/business hardware.
I thought I can get a better server and store everything there and boot the two PCs with VDI.
It has to be WIndows 10 so I though of building a Windows 2016 or 2012 R2 server.
Instead of buying something like Dell or HP SFFs, I would buy a couple of thin clients to save on space and cost.
I have access to free copies of WIndows 10 Education, Server 2016, 2012 R2, Hyper-V 2012 R2 and a plethora of VMWare stuff through Microsoft Dreamspark.
I really have no experience with Server OSes and databases but it is a good opportunity to get some.
Do you think something like this is possible or makes sense?
If you have the licenses, the easiest solution would be a decent Server 2016 box and just enable the terminal server role (I think that’s what it’s still called) along with whatever software you need to host on it. Setup user accounts for each user and just use RDP to access them from cheap thin clients. Should work pretty well with minimal effort. Just double check that the software you need to use supports this kind of setup (I’ve only heard of a few over the years that don’t) and you are good to go. I don’t think you need to have a domain setup, but I have never tried it outside of a domain environment. If you need help with the setup just shout, but the server OS install is fairly straight forward.
Yeah, after doing some research, I don’t think Win 10 Education supports it, Microsoft Documentation states only Enterprise versions of WIndows unfortunately
Win 10 Education might not support VDI, but from what you are describing you don’t really need that. VDI is basically RDPing into a VM. The VM has it’s own OS and resource allocations that don’t effect other users. Remote Desktop Services (what they used to call Terminal Services) is allowing multiple users to use a single machine at the same time. Share resources and all that. If you really wanted the VDI experience without buying new licenses, you could enable Hyper-V on the server and create 2 VMs that you then RDP into from the thin clients. Doesn’t even have to be RDP, could be Teamviewer or whatever. Doing it that way for just 2 machines when you already have to have some sort of thin clients to access them is a toss up in terms of functionality. Adding the complexity of the VMs when the thin clients could probably run Windows 10 natively might not be worth it, depending on the software you are using for the database access. Just something to consider.
You can get an RDP client for almost any OS. Mac, iOS, Android, Linux, whatever. If you are buying new thin clients, I really have no idea what the cost would be. Since all the processing is happening on the server, you could use a toaster for hardware as long as it supported video out, keyboard, mouse and network. If you are using older desktops, native Windows 10 for the clients in a classic server-client setup would be easy and cheap considering you don’t have to pay the extra Microsoft tax for the licensing and older desktops still have plenty of power for most users, especially in a business setting.
If you are going the RDP / VDI / VM approach, I would get the cheapest things you could find that will hook up to a monitor and run a modern OS for security purposes. Hell, a Rasberry Pi would even work for this I’m sure. If you are going the server-client approach, then I would hit up ebay and buy older i5s with 4GB of RAM or better (should be able to get them for $200 or less).
Most of the things you should be thinking about are not directly technology related. I always say that unless you are just learning or tinkering around, find the tech for the problem and not the other way around. What is your tolerance for down time and what else are you going to need to do in the desktop environment? If you have your database, desktops, storage and everything in one box, what do you do when it goes down? Are you willing to install all the other desktop software for the clients on the server (web browsers, office software, whatever) or do you just want to host the DB and storage for the DB. As you can see, you can easily go down a rabbit hole with this stuff. If you are running this in a production environment, keep it as simple as you can while still being able to work easily. If you are playing around, make it as crazy as you want because you kinda want it to break so you can fix it and learn while you do it.
Thin clients justify the price of a low end Dell R710 that will be running ECC RAM and next-gen file system, otherwise I would be running a basic computer without those features. I do want to tinker with it and learn through the process. As I understand it, I don’t even have to run Windows Server if I go down the RDP route, right?
You will need Windows Server if you want more than one RDP client connected to your server at a time. Win Pro will only allow one client to RDP into it at a time. There might be a registry hack that allows for more than one user to RDP into a Win Pro box at a time, but I’m not sure. Win Server is the only build that officially supports more than one user at a time with Remote Desktop Services role enabled.
I was thinking of an ESXi server running 2x Windows 10 VMs plus some LTS Linux distro for the database or 2x Linux Distros plus the LTS Linux database VM. If I get a server with 12 cores and >48GB of RAM, that would be totally doable, wouldn’t it? Also, do you have any idea if I need more than 1 gigabit of networking for the server?
Yes, but I think it might be overkill on the RAM. Unless you know specifically the amount of RAM you require, I recommend buying the biggest sticks of RAM your board supports in matching pairs. You can always buy more if need be without having a bunch of memory sitting idle. If the hardware you are getting supports quad channel memory, buy in sets of 4. I like to build my servers with an upgrade path in mind, but memory is crazy expensive right now so get whatever works for your budget right now. Ebay and used enterprise gear is an awesome way to get great hardware that is stable and expandable. Can even get a dual socket board and buy another processor down the road if need be. TLDR, most people overestimate the amount of RAM they need and that money could be put toward other hardware that will increase performance.
As far as cores, the more the better but 12 should be plenty for your application.
If all your storage is going to be on the ESXi box, then Gb is fine. The VMs will use a virtual 10Gb NIC to talk to each other, so your only bottleneck there will be the speed of your storage. You can always install more NICs if you need more bandwidth, but RDP uses very little.
Do you already have a database? If so what Database Engine is running it? If the two client PC’s are just accessing the DB you only need them to access the application UI to access the database, not Remote desktop to a more powerful VM, to then access the application UI which then accesses the database in another VM on the same server…