Hello fine folks! Recently i heard wendell mention he had succesfully set up a GPU pass through from linux OS to a windows VM which allowed him to play games for windows in a VM on linux.. immediately, i had an idea..
so here is a hypothetical,
lets say, i have the most monstorous of pc's. im talking 8 core AMD, 32gb of ram, 3 x 980ti, a dozen ssd's..
would it be possible, to setup GPU passthrough, for multiple GPU's individually, to individual VM's??
because if you could, could you not then setup 3 seperate instances of steam, each with 2 cores, 8gb ram, and a GPU. allowing you 3 seperate steam servers from 1 box...
ie. each VM (steam server) would need its own game store, so would you have to have 3 instances of each game you wanted to stream, or could you have a single repo shared by all 3?
You could store the steam library on a network share, but it would probably be faster to download all the games on one VM then copy the library to the others so you're not limited to the network speed when loading the game files. Not sure if there is a better way to share storage between VMs.
One of the issues with the game store, is that Steam keeps save games and other bits in the store space.
I haven't looked into that in a while, so if they keep those bits separate, it would be really simple to create a chunk of storage, then mount it to the folder for all the game contents but not the save files, download all the games, then mount it to the other VMs. You would also need to copy the bits that steam uses to assess what games are installed, or you would end up with all these games installed and only one of the VMs being able to access them. OR, your Steam instances would try to stream the games from the other VMs.
Also, VHDs are not RAID arrays. they are just Virtual Hard Disks. A single file that stores the filesystem.
yeah im aware of the steam saves thing and how that could mess it up, but thought it best to answer if it could work at all first. yeah a vhd is just a file, but if you stored that file on a raid array, its essentially the same thing.
getting all 3 VM's to see the installed games isnt difficult, just set them all up to the same directory, install the games from 1 machine, then rescan the library in the other vms and it will recognise the games that are registered on that steam account.
found that out when doing a re-install, as i keep my games on a different partition, as soon as i added the second drive as the games library it automatically added all the installed games to the library, if you get what i mean.
I can't be bothered turning my gaming machine on to check this but I'm pretty sure the steam library folder just contains the game files, not the user stuff like saves and all that, so if you just share the library folder and keep everything else local then it should work, assuming you don't have issues with three machines accessing the same VHD or however you decide to do it.
My suggestion stands then, Create one VHD (depending on the VM system you are using) and mount it to the SteamLibrary folder on each VM rescan and you are golden.
I checked, you are correct. But depending on the game, those save files may be inside the game folder.
Also,
Only time I see this being a problem is if you wanted to play the same game on all three at the same time. There shouldn't be an issue accessing the same drive, only if they are trying to write the same file. Even then, it may just overwrite all the changes the other two VMs make.
i was concerned about that aswell, and it may vary game to game, but i have accidentally ran multiple instances of the same game on one machine and it worked fine.. so in theory it should work.
the only problem then i can see, is how steam would react to the 3 VM's being signed in to the same account, recieving multiple streaming requests. how would it react to that.
ie, if your already streaming from VM1, then a second machine requests to stream a game, would it come from VM2, or VM1.
it might require having multiple accounts with the games registered (ie multiple copies of the game) though you could still run that from a single share, and would get around the save file problem as each account has its own save - file system.
but that would mean having to buy multiple copies of all the games you wanted to stream... which could get pricey.
I'll also point out that some games do not store their (save) files locally, but in the Steam Cloud instead. That's another factor to consider. If @Techy86uk doesn't have games that use this feature then, it's all good.
If they use cloud saves then that won't be a problem, you won't be able to use the same account on all three VMs at the same time anyway so the cloud saves will works exactly as they would normally.