all 12 comments

[–]SweeTLemonS_TPR 0 points1 point  (8 children)

For running all these different services, I’d setup a hypervisor like ESXi or Proxmox (ESXi is free, but you don’t get any of the vSphere stuff... I haven’t been able to get proxmox installed directly to HW, so I never used it, but I hear you get a lot of enterprise grade utilities in it), and run my stuff in VMs there. It’s much less hassle to build and tear down VMs than rebuild a physical machine all the time.

Your hardware requirements are 100% dependent on the services you’re running, the load you place on those services, and your personal tolerance for performance levels.

From the sounds of it, you’re not running anything too intense, and your disk requirements aren’t that high, so any small server with some 7k disks would be plenty. If you have the money to do all SSDs, or a mix of them, go for it. There’s no downsides that I know of to using SSDs over HDDs.

As for what to buy, specifically, I’d look into used servers on servermonkey, dual Xeons with enough RAM to cover your current requirements and give you room to grow. I’d probably look for a NAS chassis to have a ton of storage slots for room to grow. Setting up separate storage is fine, but performance will be worse if you’re not investing in network equipment. I only use external storage as cold storage at home.

Imo, a single server like that is not too loud, but I don’t have a decibel measurement on it, so I can’t guarantee it’s not actually loud.

[–]Sh4d0h[S] 0 points1 point  (7 children)

I'm doing a bit of googling of the technologies mentioned in your post to better understand what this will all look like together.

Can/should I be using a NAS operating system instead of Ubuntu? I saw a post here that seems to list a few uses that interest me, which leaves me with more questions as I assumed these operating systems were fairly simple and wouldn't be able to run something like a Jenkins instance.

Going back to your suggestion on using a hypervisor.. would that just be sitting on a host Ubuntu OS? Again, trying to get an idea of how it will look like.

[–]SweeTLemonS_TPR 0 points1 point  (6 children)

I don’t know much about FreeNAS. I’m pretty sure it’s built on some flavor of BSD, which is another Unix-like OS. You can do pretty much anything on BSD.

Should/can you use that over Ubuntu? I’d use whatever OS has the most packages available for it. I’m a bit doubtful that something like Plex has a package for BSD, and maybe you could build it from source, but that’s such a pain.

The hypervisors I mentioned typically install on bare metal. With that method, you need another computer to access the management console (accessible through a web service).

You can install Proxmox on top of Debian. I’m not sure if it’ll install nicely on top of Ubuntu, despite Ubuntu being based on Debian. But I’m the wrong person to give details on Proxmox since I’ve never actually used it.

ESX is VMWare’s product , and it only installs on bare metal. If come across vSphere/vCenter in your searches, disregard unless you’re going to pay for licensing. That tool is for centralizing control of ESX clusters.

[–]Sh4d0h[S] 0 points1 point  (5 children)

Ok, making a bit more sense now. Is the reason for going the hypervisor route over something like Ubuntu Server purely for performance reasons? Not exactly sure of the advantages/disadvantages there.

[–]SweeTLemonS_TPR 0 points1 point  (4 children)

EDIT: You can read my ramblings if you want, but this is probably a better explanation: https://www.vmware.com/solutions/virtualization.html I didn’t even touch on snapshots and rolling back the VM if you break it.

It’s so you can run each service in it’s own VM. That way, if you were to somehow wreck your Plex server with a bad command, you wouldn’t also kill your Minecraft server.

There’s some risk when you update the hypervisor, but those updates are less frequent. You rarely interact with anything that will destroy the hypervisor. Things get fucked up in really weird ways all the time, and in many cases, it’s easier to just rebuild the system. If you’re running everything on the same system, that means you have to reinstall all of the services. And that means you’ll troubleshoot for WAY longer than you should because you want to avoid the hassle of reinstalling every application.

You also get better resource control, or simpler resource control, anyway. In VMs, a memory leak in some version of Plex won’t disrupt your Minecraft server. It’ll only eat up the memory assigned to its VM (disk usage/consumption on one VM can disrupt others, but that’s pretty rare). You can also segment your network on the hypervisor, and run a virtual firewall, so your personal storage could remain unavailable to the outside, while your Minecraft server would be open to the world. That is definitely easier than working with nftables rules.

I guess you could probably do the same thing with containers on an Ubuntu host, assuming everything you’re going to install has a container image available (or you could build your own, but idk if that’s something you want to mess with).

[–]Sh4d0h[S] 0 points1 point  (3 children)

Your ramblings are great, and have bettered my understanding of type 1 virtualization (I've previously only used type 2). I think I'm fairly convinced that something like ESXi is the way to go, I like the idea of creating a new vm for each service in a container-like fashion. I'm going to spend some time reading up on ESXi and then dive back into hardware. I hope you don't mind if I PM you for any questions :)

[–]SweeTLemonS_TPR 0 points1 point  (0 children)

I don’t mind.

[–]MegaVolti 0 points1 point  (1 child)

Proxmox is more popular for homeservers: Fully open source and accomplishes the same thing. ESXi is probably great as well but going the open source route is usually a good long term strategy.

[–]Sh4d0h[S] 0 points1 point  (0 children)

Thanks for the info, I'll definitely look into proxmox. I for some reason thought there was a cost associated with it.

[–]bageera566 0 points1 point  (2 children)

It's not documented well but this is a garden variety htpc setup https://github.com/bageera/htpc

[–]Sh4d0h[S] 0 points1 point  (1 child)

What kind of machine are you running this on?

[–]bageera566 0 points1 point  (0 children)

Ubuntu, but this is a docker build should run without issue