One box, many roles (Virtualize?)

I'm hoping this is the right subforum to post this in. I don't necessarily have a problem that needs solved, just some ideas I'd like to flesh out and get opinions on.

I've inherited a system with an FX 8350 and 8GB DDR3-1866 (which I might upgrade to 16GB). I'd like to use it as both a file server (and possibly OpenVPN for external access) and a system to host game servers for whichever games my friends and I are playing at any given time. It would also be nice to run a Discord bot (basically a fairly simple Python application) on this machine instead of in the background on my desktop. Now, I know this isn't "best-practice" considering both my hardware and my goals, but I'm trying to come up with an effective way to meet my goals within these constraints.

One of the bigger decisions is whether or not to virtualize. I would imagine it would be easier to make sure each task is guaranteed the processing power it needs, but I know virtualization has its caveats. I won't pretend to have a solid understanding of the ins and outs of the technology, but I would like to tinker with KVM (Fedora/CentOS are my preferred distros, so it seems natural to try KVM vs some other options) and this seems like it might be a good time to try it out.

The first idea is to run everything in the same environment, without virtualization. Seems like it could be hectic, especially if something goes wrong with one portion and affects the others.

**The second idea is to make one VM with cores and memory capable of hosting game servers and to put all other tasks either in the host system or another VM. ** I don't know if it's a bad idea to run processes in a host rather than just VMs.

**The third idea is to have a different arrangement of VMs. ** This one is more of an open-ended prompt. Feel free to be creative, but be ready for questions if I don't understand something.

**I also want ideas regarding storage. ** I want to use RAID 1 for at least the file server, because I can't afford more drives for another setup. I was also thinking it might be useful to run the game server, or even boot from an SSD (I have an extra 240GB that I could use depending on how necessary it seems). The next question here is which file system to use. I'm not sure I understand when to use which filesystem, but I've read that BTRFS can be good for file servers. Should I use BTRFS for the file storage, for the entire system, or not at all? If not BTRFS, am I best with Ext4? Or what else?

I think I rambled too much to type a coherent TL;DR. I'll just have to hope you were bored or available enough to read it all. Part of the reasoning behind making this thread is to gather my thoughts and get feedback from anybody with half a clue, so it seemed best to try to pack as much info as possible into the OP.

Just go for a mashup, use packages for some stuff, install Sandstorm or something like and also have VMs for alternative OSs and testing. You don't need to be one or the other, this is real computing, not productized business nonsense ;)

I you install the OS on that 240Gb ext4, then set up ZFS on main array and direct your data there (don't be afraid to change paths or symlink /var/stuff - IMO YMMV)

Look into how you can expose access to your ZFS directly through KVM via the FS driver and apply the same principal as in the psychical machine.

Thanks for the encouragement. I'm not aiming for business-level organization, I'd just like the system to be a bit more organized than a bowl of spaghetti. Sort of like a "plan now to prevent avoidable problems later" approach.

So you're thinking in terms of having the files on the host OS and creating VMs for things like game hosting and general experimentation, right? I do like the idea of only virtualizing certain things, I just wasn't sure if running unrelated processes on the host could somehow be problematic.

Also, if I may ask, why are you recommending ZFS over the built-in BTRFS? I've found several good arguments for and against each option, but had trouble trying to determine what the differences would mean for my use case. My only concern about ZFS is that I've read that it can eat up a lot of memory, and I have a somewhat limited amount at 8GB, especially if I plan to run other processes as well. Or do I not have to worry about that at a small scale?

Thats the kind of thing yes, IMO there is no issues doing things on the host and in guests, with some caution. If your going to run something that could eat all your RAM that's going to be a nightmare on a host, but don't think I've ever seen OpenVPN, Samba or SSH do that.

Your right, for a hybrid box like this BTRFS is going to be better. It was missing some tools and reputation a few years ago.

Thanks for the advice! Now that I have a better idea of how I want to do things, I'll try setting this all up in a few days.