Viable to go server + virtualisation for a 4 PC home?

Squilliam

Beyond3d isn't defined yet
Veteran
Supporter
I was just wondering about the possibility of running just a server and getting rid of 3 PCs in my home whilst getting everything working on virtual machines.

I have at the moment:

HTPC
Office PC
Games PC
iPad

I was hoping to turn it into just the one machine to make backups etc a lot faster.

Two of the machines are used for gaming, the HTPC and games PC so its possible to get the required performance on a virtual machine?

Also I was hoping to make the whole thing seamless so people don't realize that they are infact working on a dumb terminal with the brains somewhere else.

So is the above going to be workable/practical and what kind of machine would i need?

I was thinking:

8 core Bulldozer (I'll try my Phenom II X4 initially to see how it goes)
SSD
8 GB RAM
4TB HDD
External 4TB for backups
HD 5870 GPU
 
The fun part would be virtualising the GPU so that more clients may game simultaneously on it:D.

It's not possible ofcourse, but what would be nice would be a driver that tries to assign to each gaming client a gpu from an available pool (of physical devices, ofcourse)
 
Well the GPU would only be needed on one machine at a time, is it possible to share? Sort of like a local Online almost?
 
Sorry, I'm not very knowledgeable in this topic. I just remember that a while a go it was well.. "possible" to do 3d gaming on a virtual machine yet it was pretty slow and unreliable. But things might have changed a little.

Also I believed the articles i've read back then were about a host os <-> hypervisor <-> guest os.Your configuration will ideally be hypervisor <->os i (i=0 to n).

Anyhow, what you're trying to do is both practical and interesting. I wish you would succeed but i'm a bit skeptical.
 
You mention one of the main problems is backups, what's wrong with running a Windows Home Server? I shifted all my movies, data, pictures and music to the server and pointed all the usual "My Documents" etc in Windows 7 to those folders so there's nothing actually being stored locally to backup. I just set certain shares to duplicate themselves.

I don't think there's any chance of doing 3D gaming in a virtual machine.
 
Look into using ESXi as the base for your virtualization. With the proper motherboard you can pass-through devices including GPUs so your guest OS see them directly. This will allow full 3D GPU acceleration for a Windows 7 guest OS. This is done with PC Tuner / Video Capture cards and works extremely well for carving up a system for multiple duties including NAS / PVR / HTPC / Office roles.

There's also the possibility of using Windows Hypervisor products, but I have seen less exposure of using that than ESXi.
 
funny, microsoft's SP1 has just added that GPU sharing feature, but you need a windows server 2008 license and special terminal license, that ain't cheap.
well, it's more about multi-user than virtualization, you can use no virtualization at all and only win on simplicity and performance. classical virtualization vs multi-tasking, those are orthogonal features.

what you may try with no financial investment is ubuntu with ltsp (or any distro but let's say ubuntu). you may install it in a virtualbox on the gaming PC, set up bridge networking, then set up ltsp - edubuntu claims to make it trivially easy.

clients only need to be able to network boot (PXE), if you're lucky sound may work, maybe even local usb storage. (I have not tried the latest version).
performance is excellent but it's not suited for full screen video (or demanding 2D gaming). it's good at replacing an office PC, if you don't insist on Windows.
Note that your network boot server becomes your dhcp server.

there is workaround tech for video playback : sending the video stream to the client for local decoding. but again you need Server Windows, or an enterprise solution from HP, Sun or IBM.

what you may do on the HTPC instead is running it diskless, but with its own "real" distro. it PXE boots then mounts a NFS share (or you could use iSCSI) as its root file system.

GPU sharing *is* possible on unix and linux, with VirtualGL. but let's not worry about that, there's enough work to do already, also I'm not satisfied with linux gaming, wine is foremost a band aid for running good quality old games. :rolleyes:.

your phenom CPU is excellent already, sharing it would allow it to get more use if anything.

so in conclusion, you can do some fun stuff, running the gaming PC as the home server, making the other PCs totally diskless. you can plug any computer, even old crap, and have it run as another office or media PC.
but is it worth your time and efforts?
 
Last edited by a moderator:
Look into using ESXi as the base for your virtualization. With the proper motherboard you can pass-through devices including GPUs so your guest OS see them directly. This will allow full 3D GPU acceleration for a Windows 7 guest OS. This is done with PC Tuner / Video Capture cards and works extremely well for carving up a system for multiple duties including NAS / PVR / HTPC / Office roles.

There's also the possibility of using Windows Hypervisor products, but I have seen less exposure of using that than ESXi.

the motherboard feature in question is IOMMU, it's on AMD 890FX motherboard and future 970, 980G, 990FX, 990GX chipsets. Intel has it too but probably insists on you getting a Xeon or a "pro" motherboard. waiting for an affordable 970 motherboard. it will certainly make the whole virtualization affair more useful.

good to know ESXi can do that ; Xen 4.0.x introduced the feature as well.
it's more elegant than running Windows 7 as the host OS and linux distros as slaves squatting in the task bar. if only because you may want to reboot that Windows without killing everything :).

there may be creative uses as well. imagine a vid card physically assigned to one guest, and a second one or IGP to another guest, with secondary USB keyboard and mouse. the end result is virtually indistinguishable from using two separate computers. you can also add onboard and discrete sound cards to the mix (or USB amp or speakers)

a "cynical" comment on your scenario : in the simplest sense a computer with video player software, a tuner card, a few shared folders and a word processor installed is a NAS / PVR / HTPC / Office combo already.
virtualization has quite a procrastination potential, so it has to be tied to goals and benefits imo.
 
You mention one of the main problems is backups, what's wrong with running a Windows Home Server? I shifted all my movies, data, pictures and music to the server and pointed all the usual "My Documents" etc in Windows 7 to those folders so there's nothing actually being stored locally to backup. I just set certain shares to duplicate themselves.

I don't think there's any chance of doing 3D gaming in a virtual machine.

The issue is that most of the data is infact a 50:50 mix of games and movies. The movie data is fine but wouldn't the game data be terrible over a network connection?

Look into using ESXi as the base for your virtualization. With the proper motherboard you can pass-through devices including GPUs so your guest OS see them directly. This will allow full 3D GPU acceleration for a Windows 7 guest OS. This is done with PC Tuner / Video Capture cards and works extremely well for carving up a system for multiple duties including NAS / PVR / HTPC / Office roles.

There's also the possibility of using Windows Hypervisor products, but I have seen less exposure of using that than ESXi.

Would it be possible to share a desktop environment over two stations then? The HTPC is never used when the gaming PC is used to play games. Instead for games couldn't it be treated as a multimonitor setup with two separate inputs? The only issue there is constantly telling the PC which monitor is the primary output. The HTPC and the Game PC are almost never used at the same time so therefore only the office PC would need to be virtualised.
 
Would it be possible to share a desktop environment over two stations then?

that's the multi-user scenario. it's ideal but microsoft's license for desktop OS prevents it, and they actively use technical measures to enforce it. it's the tech behind the "Remote assistance" feature, and the error message you get if you try a "remote desktop connection" to localhost is because of the enforcement.
even warez windows server won't cut it, it may work but only short term :p. by the way "fast user switch" from windows XP and later really is multi-user as well.

if you use linux there's no such limitation.
simplest way to seamlessly connect to a linux desktop :
you boot a minimal linux environment in text mode (but with X installed), or kill the graphical login manager.
then you type :
X -query yourlinuxcomputer

you get the other computer's login screen, where you can log in and end up on the desktop.
 
Last edited by a moderator:
I should write a website about all that, with user-friendly examples and more technical pages. I love that issue and the strong cost savings and recycling potential. have been writing a bit too long posts in your thread.
 
Xen seems rather limited with only the primary graphics adapter having pass through. The patches to do it with secondary adapters seem rather rough around the edges, also the fact that something as important as this can be submitted as patches to the mailing list in May and not get incorporated somehow into mainline makes me rather hesitant about the usefulness of Xen to the non server crowd, they don't really seem to care about those kinds of users much.

Looking around it seems far from straightforward under ESXi as well.

PS. part of the problem seems to be that resetting graphics cards after a crash without a reboot isn't generally successful.
 
Last edited by a moderator:
The issue is that most of the data is infact a 50:50 mix of games and movies. The movie data is fine but wouldn't the game data be terrible over a network connection?

A gigabit ethernet connection can easily support 90-100 MB/s data transfers which is only marginally slower than a local HDD on the outer tracks. You'd probably only have problems with games that stream in game assets as the network latency could then become a factor. As well network latency could increase level load times slightly, but I don't imagine that's too large of a problem if you REALLY wanted to consolidate data.

But in a case like that you wouldn't want to store game/application execution files on the DE array.

Still a 1 TB HDD on the local machine for games and applications should be plenty for most people, unless you never uninstall a game ever. :p Meanwhile all documents, archives, and media can be stored on the WHS machine and WHS can be configured to automatically backup all connected machines. I especially like it when I do the occasional main drive upgrade in my machine. Just put in the new drive, boot up the WHS recovery CD and network restore all the data from my primary partition over the network and voila, booting back into Windows as it was on the previous drive.

It's also quite easy to set user permissions per folder in case each member of the family wanted their own private space to store files without other's seeing it. The administrator will always have the ability to view everything, of course.

Regards,
SB
 
that's the multi-user scenario. it's ideal but microsoft's license for desktop OS prevents it, and they actively use technical measures to enforce it. it's the tech behind the "Remote assistance" feature, and the error message you get if you try a "remote desktop connection" to localhost is because of the enforcement.
even warez windows server won't cut it, it may work but only short term :p. by the way "fast user switch" from windows XP and later really is multi-user as well.

Ouch that sucks, proprietary BS I guess is the name of the game when you're a monopoly enforcing global conglomerate.

if you use linux there's no such limitation.
simplest way to seamlessly connect to a linux desktop :
you boot a minimal linux environment in text mode (but with X installed), or kill the graphical login manager.
then you type :
X -query yourlinuxcomputer

you get the other computer's login screen, where you can log in and end up on the desktop.[/

Well Linux isn't an option for what I want. :(

A gigabit ethernet connection can easily support 90-100 MB/s data transfers which is only marginally slower than a local HDD on the outer tracks. You'd probably only have problems with games that stream in game assets as the network latency could then become a factor. As well network latency could increase level load times slightly, but I don't imagine that's too large of a problem if you REALLY wanted to consolidate data.

Regards,
SB
[/quote]

Yeah latency for games is especially problematic, movies not so much. It just seems so wasteful having 3 computers when it could all be stuffed into the one and managed from there. It also looks like there are no good options from within the Microsoft ecosystem to change things.
 
Ouch that sucks, proprietary BS I guess is the name of the game when you're a monopoly enforcing global conglomerate.

well there are a few reasons for that :
- your computer is powerful enough to serve 20 users. really (big economies of scale, system components and any kind of dll are only loaded once. if user doesn't do heavy things CPU just waits between keypresses so additional users fill in the gap. one antivirus, one torrent client etc.)
- that would mean selling one windows licence and one word licence rather than 20 of each
- it's "business" or "enterprise" grade stuff, not more expensive than photoshop or CAD packages, and typically with a sysadmin and server hardware in mind
- merely a decade ago the hardware for multiple processors, lots of ram was inacessible to the consumers, though really you can survive on a single core box with few ram if you're doing word processing and the like.

I don't find the restrictions exciting but it's usual practice for "serious" commercial software
 
Would it be possible to share a desktop environment over two stations then? The HTPC is never used when the gaming PC is used to play games. Instead for games couldn't it be treated as a multimonitor setup with two separate inputs? The only issue there is constantly telling the PC which monitor is the primary output.
Should be easy enough to script, with autohotkey for instance.
The HTPC and the Game PC are almost never used at the same time so therefore only the office PC would need to be virtualised.
Almost doesn't count of course ... so lets assume you would be satisfied with never again. The Xen 4.0 approach would work then with an appropriate motherboard.

You would use one windows guest with VGA passthrough of the primary graphics adaptor, in multihead mode. Use some virtual desktop software and some scripting to switch desktops and primary display, this takes care of the gaming PC and HTPC. Then use one windows guest for the office PC (which uses a secondary graphics card through a virtualized driver) and another windows guest for the iPad to use through RDP.

In theory you could also use a windows OS in multihead mode for gaming and HTPC AND as a host for the office/iPad guests ... but crashing your office PC when the videocard drivers for your gaming PC crash seems a bad idea.
 
The HTPC is never used when the gaming PC is used to play games. Instead for games couldn't it be treated as a multimonitor setup with two separate inputs? The only issue there is constantly telling the PC which monitor is the primary output. The HTPC and the Game PC are almost never used at the same time so therefore only the office PC would need to be virtualised.

so with very long cables in the litteral sense, long video cable and USB for the mouse and keyboard, you could use the gaming PC as HTPC.
if you have a second set of keyboard/mouse in the HTPC's room, they would work as the same inputs as the primary ones.

of course running the cables may not be practical, though Intel Thunderbolt would change that : you would be able to run a single fiber from the gaming PC to the living room and connect display, sound, inputs, removable storage, all physically run by the gaming PC.
this new interconnect is extremely interesting to say the least :)


Should be easy enough to script, with autohotkey for instance.

yes, or maybe some third party "resolution setter" program like multires or "dual screen managers" such as ultramon, nview etc.
 
would something like kali get around that ?

isn't that for playing duke nukem 3D? :)

though I remember stumbling on commercial software that precisely allows multi-head/multi-user use over the network. maybe unlocking the features by cracking the limitation, I thought it was violating the licence.
in a similar way you can unlock software raid 5 on windows by modifying a few bytes in a .dll or overwriting it with the file from server windows - there are instructions to do it on the web
 
that's the multi-user scenario. it's ideal but microsoft's license for desktop OS prevents it, and they actively use technical measures to enforce it. it's the tech behind the "Remote assistance" feature, and the error message you get if you try a "remote desktop connection" to localhost is because of the enforcement.
even warez windows server won't cut it, it may work but only short term :p. by the way "fast user switch" from windows XP and later really is multi-user as well.

if you use linux there's no such limitation.
simplest way to seamlessly connect to a linux desktop :
you boot a minimal linux environment in text mode (but with X installed), or kill the graphical login manager.
then you type :
X -query yourlinuxcomputer

you get the other computer's login screen, where you can log in and end up on the desktop.
I did lots of CAD/CAM from a simple PC running Linux and x-windows on a fast SPARC server in 1995. Running a game shouldn't be all that difficult if your network connection is fast enough.

Perhaps not those games that demand a fat GPU for acceptable performance in the first place, but everything else should run fine.

But I haven't tried, so I don't know if OpenGL games allow that.
 
Back
Top