Virtualizing Workstations For Common Hardware?
An anonymous reader writes "We have approximately 20 workstations which all have different hardware specs. Every workstation has two monitors and generally runs either Ubuntu or Windows. I had started using Clonezilla to copy the installs so we could deploy new workstations quickly and easily, when we have hardware failures or the like, but am struggling with Windows requiring new drivers to be installed for all new hardware. Obviously we could be booting into Ubuntu and then load a Windows virtual machine after that, but I'd prefer not to have the added load of a full GUI underneath Windows — we want maximum performance possible. And I don't think the multi-monitor support would work. Is it possible to have a very basic virtual machine beneath to provide hardware consistency whilst still allowing multi-monitor support? Does anyone have any experience with a technique like this?"
It's call Norton Ghost.
Virtualization is not a cure-all (and your approach is wrong, to boot).
What you're looking to do is use the latest, greatest technology for profit(!!!). You're going about it wrong. There are plenty of other, better technologies to accomplish the same basic thing. Proper system imagining/installation via something like an installation server.
When you've got 20 workstations, you're at that cusp of continuing on the path you're on (and hopefully, resorting to a method of consistent repeatability) or deciding on a different approach - thin clients, perhaps. Or maybe virtualization is the right approach - but I can guarantee that there's likely no good reason to virtualize Windows on top of each of the 20 workstations that couldn't be solved with better design.
Honestly, if you're one of multiple IT in a place with only 20 workstations, you're seriously over-staffed. Someone - if not you, someone else - is going to figure this out, and figure out a way to make themselves important and you redundant. Even with moderate consistency and controls, a single competent Administrator should be able to take care of 5 times as many workstations and a handful of servers without too much sweat.
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
But only if you have hardware virtualization support.
I did this when I had to maintain a computer lab of about 250 machines and 6-7 different hardware profiles between them. Turned the multi-stage update nightmare I inherited from my predecessor into a (relatively) painfree couple of hours some evening after any patch Tuesday.
I used unattended on a FreeBSD box at one of my old jobs, since we had like five or so different models of computers. It works sort of like RIS, except it's easier to extend the system since it's all written in Perl and it's all open source. We dumped the contents of an XP disc on the server, then slipstreamed driver packs into the disc directory structure; this catches almost everything but the most obscure hardware out there. Unattended allowed us to run post-install scripts, so we threw in a bunch of other software packages that would install after the OS was done installing, like Office 2007, Adobe suite, etc.
This was substantially better than a disk image; we took care of all of the drivers in one fell swoop, so the only thing we used as a differentiator between computers was how the person used the computer (if it's a student lab computer, we loaded a bunch of stuff like Geometer's Sketchpad, InDesign, etc. If it was a faculty's laptop, we'd load software to operate stuff in the classroom.) We save space on the server, and we save time when it comes to putting together another "image" for a different use case.
But as others said above, I wouldn't virtualize the workstation, even if it eases up on the IT dept. a little bit; just be smart about what deployment method you use. I wouldn't recommend using unattended if you had only about three different models; it's likely substantially easier to just use CloneZilla.
Oh, and use a centralized software deployment system such as WPKG. Your disk images will go stale after a while, in which case you'll have to make sure that you can manage the packages installed on clients somehow.
"Hegelians, who love a synthesis, will probably conclude that he wears a wig." - Bertrand Russell
Your last line was absolutely spot on.
One image per machine is the wrong way to go about dealing with with hardware/driver conflicts. The effort and money could be better spent on gradually replacing odd-lot hardware with something standardized. For the windows machines, I find that 10-30 RDP sessions on one VM server, with 4-6 servers per virtualized host, now that works. I've had around 300-600 sessions virtualized across perhaps 10-20 servers in a dozen heterogeneous sites over the past 5 years. No catastrophic losses, not one customer has complained about speed issues or canceled the service for any reason, and a grand total of ~20 days of downtime across all servers, primarily to reboot for patches and updates. The kicker is that these would be Windows 2003 + 2008 servers on Windows Server 2000, 2003 and 2008 hosts, plus a handful of XP single-user images for special circumstances. Egad, really?!?! Windows VM on Windows hosts? Yes, really. Only very recently have I switched some hosts over to Linux or ESXi, and frankly, there's very little meaningful performance difference; the switch was undertaken largely to free up license slots on back end servers which have no user access. I love Linux and open source but the FUD and misinformation floating around regarding windows reliability and performance is .. well it doesn't square with my experience. But, I'm tired of arguing about it with people. Do some of your own benchmarks and see for yourself.
Even inexpensive server hardware (4k-8k range) is overkill, performance-wise, for a well-balanced, optimized VM internal cluster with sensible backup and monitoring controls. This arrangement has allowed me to more or less single-handedly manage the entire user base referred to above, for the entire time. I've reached the point where I cannot handle the new business that is steered my way by present clients via word of mouth. I have evicted 6 or 7 In-house "IT guys" who were sitting on their rears playing WoW 4 days a week, tending a tiny garden of 15-30 machines.