Virtualization and home/workstation use question

Ok, Sorry if this is submitted wrong, have a bit of an I believe unique use case and was wondering if it would work or is even viable at all.

So I have a personal computer, If I had the choice I would have a dedicated personal computer and a dedicated workstation with a dedicated video capture/streaming box. Now I am currently in win 7 and have no intentions to move off of it at all, if anything I plan on managing a firewall once support for 7 fully dies, and using the os till I finally can’t do it anymore, much like I did with windows 98 and to a lesser extent xp, however I have been looking at virtualization for quite a while, and pcie pass through to me is very interesting.

so, what i’m considering as a possibility is a switch to some linux distro that isn’t a complete nightmare of why did I move off windows, and possibly use it as my base os, much of my ‘personal computer’ use is web browsing, reading, and almost all of this is more than capable of being done painlessly on linux, but on the likely chance that some of the programs I use only want to play nice with windows, im considering linux just to be the host os and win7 to be the primary used one.

so with that I would have 2 oses at once, however I left out gaming.
this I would want to have a dedicated win 10 virtual os that is condomed from everything unless I explicitly say ok. now we are on 2-3 gpus, 3 because I don’t want to go headless, but really any gpu that can output 4k60 is good enough for my main display and possibly something old would be good enough for linux itself. so now we are on 3 gpus, and possibly more then 1 boot drive if im not able to partition the virtual oses on one drive.

Now we get into streaming/video encoding pc, and what if this was another virtualization? This one would just need to run obs or something similar. as I have no intention to use a gpu to encode, as cpu encode gets me better results v bandwidth as long as I have the hardware to toss at it, and I have/can acquire the hardware, I can’t acquire better up speed. this is how I would do it.

so, in the end, we are talking about 4 oses running at the same time at peak, 1 with a great gpu, 2 with good enough, and 1 with whatever works, given I have ram, and hardware to hook up to everything, this should work, and when im not streaming, I could reset the game os to use all the hardware for the streaming one on itself too. I think this would be the best way to compartmentalize everything, and I want to compartmentalize everything for reasons.

Now with that said, I would have the streaming ‘pc’ and the gaming on the same hardware, but seperated by virturalizations, would it be possible for the streaming virtualization to see the gaming ones video and use that in obs?

see the way i’m originally looking at this is I would need a personal, a gaming, and a streaming box, where each one requires an os, ram, hdd, boot, cpu, videocard, and from there the streaming would also need a video input device. if I had something like threadripper, I could fairly painlessly split the thing among the various instances and not care, I could have the ram on the various instances be somewhat dynamic, so I could get 64-128 gb of it, and split it where needed (around 32 for personal use, 16-24 for gaming, the rest for workstation) and instead of getting lesser parts for all 3 builds, I could get great parts and use them in 1, but this largely hinges on if i’m able to pass the video on one virtualization to another virtualization without additional hardware. Right now this is all in the air thinking, I have no idea if I will follow through with it, any insight will help me come to a decision.

Hmmm… seems to me you making things more complex than they perhaps need to be? Nothing wrong with what you want to do but it sounds like a path that could get frustrating and expensive.

Before doing something as complex I would evaulate the simpler options:

  1. Go Win10 Pro as main and gaming environment and then use Hyper-V with Linux VM’s (these can even have dedicated SSD’s and NIC’s) for stuff you need to get done in Linux or sealed away from Win10. Just use Shutup 10 to disable the annoying bits in Win10.

If that is a no-go (no problem with that either), then;

  1. Linux as main with a Win10 VM with passthrough devies/GPU and then seek to use LXC or Docker to isolate other Linux workloads in lightweight containers.

Either one of those approaches is alot simpler than 4 full fat VM’s. I woudl also have thought that for gaming/streaming tasks you could associate CPU cores to the respective process threads if they are both running within the same OS environment?

My recommendation is to always seek the simplest path - less to go wrong and troubleshoot when all you want to do is play a game or get soem work done.

By-the-way

Most amusing typo :rofl:

2 Likes

Looks very complicated setup and lot of headache. Maybe you wanna try cubes Os?

1 Like

My thoughts are

  1. personal os instance, I mostly do reading and ‘private time’ stuff here. and as far as reading/general personal use goes, windows 7 is my choice, I could switch to linux given I would have a 10vm going and if something was broken on linux I could default to that, but for the sake of easing into it, I would want win 7
  2. the gaming instance that I let windows do whatever the hell it wants to the instance, update it, so on so forth, as much as I hate it, I love forza and don’t want a console, so I need to either go piracy, which I lost almost every known non virus source for a while back, or go with windows deciding to update at will…
  3. for compatibility sake, I want to go windows 10 on a workstation vm, though its called work station, it would probably be more accurate to call it workhorse as its where everything heavy would take place outside of gaming, an instance that could run off a weak gpu with heavy threading for encoding, or a heavy gpu and cpu use when gaming isn’t happening.

My main reason to separate the gaming and the streaming side is because windows does such a craptacular job of doing this as it stands, my little brother uses 10 and his cpu will use 2 cores for a game, but then chrome pops in, says “how’s it going over here, I see there is a core with 10% usage, but this one has 95%, i’ll just squeeze in over there and see if I can do my thing here. dont mind me” and hello stuttering mess. I would force one instance to have some cpu and ram use that I designate it can use, if possible run it off the same cpu core or same cpu ccx, not sure how good linux tools are for being able to determine that, and not have to worry about something like obs deciding to run on the cores that the game is.

For me, the hardware isn’t much, if I can pass a vm video through to another vm for capture, thats already cheaper then a capture card, and If I have to pay 50-100$ a gpu for the non powerful ones, i’m good for that, on the psu side, I already buy way overkill for my needs due to having one blow up on me due to it being over rated so 3 gpus that will be doing dickall, 1 gpu that will be pulling 400-500 on spikes and a cpu that will pull 125-300 watts, my sketchy math would say a 1000-1300 watt psu would get the job done, but really, probably an 850 could do it. seeing as gdc has me up a few thousand dollars, I could build this monstrosity and not even feel it, I just have to ask how possible is what I am thinking of doing?

As for the simplest path… that buy seperate computers which because of the workstation/stream box, would necessitate 2 powerful gpus opposed to 1, 2 8 core cpus, 2 motherboards, 2 sets of ram, likely 16-32 gb on the gaming one, and 64 on the workstation at least, though cpu wise I would probably come out under what I am looking to spend if amd does do a 12 core for the 300 range and 16 for the 500

more or less what i’m doing is playing with ideas in my head on what I could possibly do, likely nothing will move forward till after zen 2 drops as I have to assume quite a lot of people may pawn off a thread ripper or thread ripper 2 for the 7nm cpu given what the specs are looking like.

This isn’t difficult to do from within the same Windows environment. There are three ways to set processor affinity so certain processes can only use the cores you want them to.

  1. Do it manually (this is temporary, but good for testing) via the Task Manager - https://www.howto-connect.com/set-affinity-for-an-application-on-cpu-in-windows-10/

  2. Use the start command with the /affinity parameter (you can then create CMD scripts to launch OBS, Chrome and a particular game each with affinity settings to designate them to set cores) https://blogs.msdn.microsoft.com/santhoshonline/2011/11/24/how-to-launch-a-process-with-cpu-affinity-set/

  3. Use a piece of software like Process Lasso to do it for you - https://bitsum.com/

This is much more efficient that running a whole other Windows environment just to keep workloads onto separate CPU cores.

If your reasons for separating your win10 gaming due to win10 updates I urge you to look at Win 10 Pro and the free (as in beer) ShutUp 10 utility. Win10 Pro gives you a little more control over updates, and Shutup10 allows you disable automatic updates (I recommend you always apply security updates) along with loads of other settings e.g. disable Cortana and telemetry. www.oo-software.com

Win 10 Pro isn’t the terrible OS that was made out in the early days and has matured well; by using the right settings and utilities you can get a Win 7 feel to it (in looks as well). https://www.stardock.com/

If you’re determined to try and separate gaming to its own VM then a Linux main OS and Looking Glass is probably where you need to be. passing the GPU video feed from a VM to the host is what Looking Glass does. I’ve not played with it so can’t say much more than that, but loads of people on this forum use it and contribute to the project.

Good Luck :slight_smile: