Discuss Virtualized gaming machine? in the Dev Shed Lounge forum on Dev Shed. Virtualized gaming machine? Dev Shed Lounge forum discussing anything that doesn't fit into the other forums. This is a place to relax, talk, and even have some friendly debate. Walk softly and carry a big wiffle bat.
Time spent in forums: 5 Months 2 Weeks 2 Days 9 h 22 m 52 sec
Reputation Power: 9259
Virtualized gaming machine?
So I want to jump on the virtualization bandwagon because, among other reasons, I have a couple small servers supporting a number of services and I would (a) like to expand upon them and (b) not have to run them all in the same OS. Other reasons include "I want to learn about it" and "I think it's cool" and I'm sure I can find others just give me more time.
If I were to do this I would want to virtualize my gaming machine too. Not a requirement, but it would go a long way towards convincing me to do this whole thing. What do I mean? Have the OS and such run virtually rather than be traditionally installed on one machine. Past research says it would be impossible/impractical/silly to try to virtualize the graphics too (ie, rendered on one machine and networked to the one I'm using) due to speed and bandwidth constraints so I've already given up my hope of having a thin-client on my desktop. Unless there's some secret I don't know... besides running a really long HDMI cable.
But that's only acceptable if I can get nearly the same performance out of the system that I do right now. I'm sure it wouldn't be identical, of course, I just need something comparable that keeps me at the "Medium" quality level or higher I enjoy now.
I think it would work like this:
- I have multiple server-type machines that handle the virtualization stuff, which I can purchase more of over time (as I'd rather not invest too many $thousands right now)
- Most of the VMs would be running at the same time, and most of those would have low disk and memory requirements (eg, one for a web server, one for home automation)
- My current desktop machine would participate in the virtualization seeing as how it has good hardware in it already (six-core AMD something, 8GB RAM, GTX680 I think)
- One particular VM would be my "normal desktop OS" with my normal stuff. Including games. This would surely run "directly" on the desktop machine and as such get "direct" hardware access to the bits that matter (ie, video card, sound, local SSD, optical drive)
- Keep using my 6TB NAS for shareable file storage, have HD(s) and maybe even some USB(s) for local/VM storage
I've tried to do some research already: a handful of things that look relevant were written years ago while some others seem to confirm that what I'm thinking of is possible (though it's not totally clear that we're talking about the same thing). Like, as I understand it OS-level virtualization is the "best" as it wouldn't have any middleman sitting between it and the hardware, but I would need to use duplicate hardware on all the supporting servers; that would be a problem because of using the desktop machine for one and the possibility of adding more servers over time for two. Correct?
So is it feasible? Besides the obvious subject of virtualization itself and its requirements, what kinds of things do I need to look into and learn about? What kinds of limitations might I face? Is the grass really greener or should I just be happy where I am?
And perhaps most importantly, are there any good reasons to do this kind of thing at home? Easy system images, for one. But there aren't multiple users, I don't need test environments, I don't have legacy systems to maintain... I mean, I could totally just buy more resources and throw Folding@Home at it but that's wasteful.
Time spent in forums: 2 Months 2 Days 20 h 11 m 10 sec
Reputation Power: 7170
Have you found a hypervisor that actually allows you to give a VM direct access to a video card? My impression was that most, if not all, virtualize the video card. I know that some hosted hypervisors like virtualbox and vmware do support 3d acceleration, but it's primarily intended for things like video acceleration, not games. I'm sure the gaming performance you get out of them would be terrible.
Options for a native hypervisor would be ESX, Xen, KVM or Hyper-V I think, but if you plan to build a cluster that might limit it more. I know for sure that ESX supports clusters, and I think that Hyper-V does as well. I don't know whether Xen or KVM do. You will also want to look into the licensing costs, as the versions of these software that supports clustering may be rather expensive (four figures plus).
Also 8GB is probably not enough RAM for a VM host, particularly if one of the guests is going to be your main machine (which I imagine you'll want to have at least 4GB for).
The actual model number of your processor is sort of important; if it doesn't support virtualization extensions that would be a major block, however since most modern processors do it's probably not an issue.
Overall though, gaming is pretty much the least-suitable application possible for VM technology, so I'm quite sure that most hypervisor software is very much not optimized for it.
Time spent in forums: 2 Months 3 Weeks 5 Days 13 h 26 m 12 sec
Reputation Power: 6300
DevShed was down when I wanted to reply to this last week
Basically what I told requinix privately is that the biggest issue is going to be the video card driver. To my knowledge there is no virtualization environment which provides direct access to the 3d accelerator. So while you can install virtualbox and get all your games installed on a winXP machine, you can't actually play any of them because the "video card" windows sees is a 2D-only card with standard virtualbox drivers.