this post was submitted on 29 Jun 2024
117 points (97.6% liked)

Selfhosted

39667 readers
134 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
117
Pros and cons of Proxmox in a home lab? (lemmy.linuxuserspace.show)
submitted 3 months ago* (last edited 3 months ago) by [email protected] to c/[email protected]
 

Hi all. I was curious about some of the pros and cons of using Proxmox in a home lab set up. It seems like in most home lab setups it’s overkill. But I feel like there may be something I’m missing. Let’s say I run my home lab on two or three different SBCs. Main server is an x86 i5 machine with 16gigs memory and the others are arm devices with 8 gigs memory. Ample space on all. Wouldn’t Proxmox be overkill here and eat up more system resources than just running base Ubuntu, Debian or other server distro on them all and either running the services needed from binary or docker? Seems like the extra memory needed to run the Proxmox software and then the containers would just kill available memory or CPU availability. Am I wrong in thinking that Proxmox is better suited for when you have a machine with 32gigs or more of memory and some sort of base line powerful cpu?

(page 2) 22 comments
sorted by: hot top controversial new old
[–] [email protected] 2 points 3 months ago* (last edited 3 months ago)

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
HA Home Assistant automation software
~ High Availability
HTTP Hypertext Transfer Protocol, the Web
IP Internet Protocol
LTS Long Term Support software version
LXC Linux Containers
NAS Network-Attached Storage
NFS Network File System, a Unix-based file-sharing protocol known for performance and efficiency
SSO Single Sign-On
VPS Virtual Private Server (opposed to shared hosting)
ZFS Solaris/Linux filesystem focusing on data integrity
nginx Popular HTTP server

[Thread #839 for this sub, first seen 29th Jun 2024, 15:25] [FAQ] [Full list] [Contact] [Source code]

[–] [email protected] 17 points 3 months ago* (last edited 3 months ago) (3 children)

VMs under KVM are pretty much bare metal and Proxmox doesn't use much for resources itself, it's basically a headless Debian with a webserver interface to do all the KVM stuff.

Proxmox, especially if you use ZFS for the VM datastore, makes a home lab so much easier to revert, backup and deploy/clone VMs and LXCs. I highly recommend it if you're just starting out. Once you wrap your head around it, it gets out of the way and lets you just tinker with your projects, and not have to manually do everything in VirtManager or at the command line.

Combined with Proxmox Backup Server, it's a production ready hypervisor for anything you decide to keep. Also, the HA features work well enough that I had my main routing OPNsense VM jump between nodes when the primary node lost a drive, and I didn't notice for a week, it was that seamless.

[–] [email protected] 2 points 3 months ago (1 children)

Seconding this. Especially if you're still learning and making mistakes, it's so nice to just be able to destroy a VM/CT and start over, rather then potentially breaking other things or the OS itself.

load more comments (1 replies)
load more comments (2 replies)
[–] [email protected] 3 points 3 months ago (1 children)

If you want to get things working then never "tinker" with things, maybe it's not worth it. But if you want to learn and be able to try new things it is really helpful. Having a new VM not breaking existing VMs reduces risk when trying something new.

load more comments (1 replies)
[–] [email protected] 1 points 3 months ago (2 children)

It seemed nice at first, but one major issue: GPU passthrough was a nightmare. It cant be done in the UI and I didnt understand fully how it worked. There are many different tutorials not by promox that are outdated or may not work. It was frustrating enough I jumped to NixOS. Other hiccups included having to go to the terminal to passthrough drives for openmediavault, but that one was kind of straightforward atleast, and it worked first time.

In hindsight, I didnt actually need to virtualize everything at that level, so I never really had a good use case for it anyway. I use containers over entire VMs.

[–] [email protected] 2 points 3 months ago (1 children)

I think GPU passthrough has improved since you have used it. Some command line prep work is still necessary, but the passthrough config is done in the GUI.

[–] [email protected] 3 points 3 months ago (2 children)

I did it a week ago and it was just a case of passing through the video card. I came across a lot of guides and they were all in the CLI. I assume things have improved or maybe it differs per card. I was just using onboard graphics from an N100 CPU.

load more comments (2 replies)
load more comments (1 replies)
[–] [email protected] 25 points 3 months ago (1 children)

For me, pros are:

  • Fun to learn something new
  • Easy to test different systems. For example, I can play with different router or NAS software without having a separate computer around.
  • I've been able to create different "computers" that serve different needs and require different levels of security.
  • Currently, a cluster is probably overkill, it was a fun experiment.

Cons

  • Updating all the different systems can be a pain. I could probably automate it, but I haven't made the time to learn it yet.
  • As a beginner, I'm throwing a bunch of parts together and hoping it will work. I should probably be more strategic in my implementation, but I don't know what to prioritize. I'm sure I'll have to start over in the future.
  • With the previous point, the storage setup doesn't seem very intuitive. I probably need to set up that better.
  • I haven't quite figured out backups yet. My VM backups all seem too big. I need to figure that out and automate it.

Hope this is helpful.

load more comments (1 replies)
[–] [email protected] 21 points 3 months ago

Proxmox is based on kvm/qemu, and is very resource conservative. There is virtually no impact on performance due to the hypervisor, even on older processors. Scheduling on the cpu and hypervisor makes running multiple VMs at the same time trivial as well. RAM and I/O bandwidth are the two things that can affect performance. Running out of RAM due to too many VMs will grind you to a halt, but so would running too many applications or containers on bare metal. Running everything off of one spinning sata disk will make it impossible, but again, same downfall on bare metal.

Those minimal impacts to performance are a minor nuisance compared to the ability to run experiments and learn on sandboxed VMs. Now that TrueNAS has better virtualization support, it has caught my eye as a better homelab solution, but I will always have a proxmox server running somewhere in my stack just due to the versatility it gives me.

[–] [email protected] 4 points 3 months ago (1 children)

You need to understand what Proxmox gives you, which primarily is ability to run/manage/backup/etc VMs easily. If you don’t care about that, don’t use it. I have a fairly well spec’d desktop I use for homelab and I use proxmox because I often do experiments in VMs where snapshots and ability to jump to snapshots is essential. So is being able to spin up a new VM with new OS (like Windows) for example to do some testing. You can still do VMs without proxmox, but proxmox does make it a lot easier for living with daily.

[–] [email protected] 2 points 3 months ago* (last edited 3 months ago)

You need to understand what Proxmox gives you, which primarily is ability to run/manage/backup/etc VMs easily

Yeah and after understanding what it gives you then you move to Incus because while it might be a bit harder to setup it delivers around 80% of what Proxmox does without the overhead, mangled kernel and licensing issues.

https://cockpit-project.org/ also does VMs and can work for people without cluster needs.

[–] [email protected] 1 points 3 months ago

I'm using a commercial desktop with an i5 Sandy bridge. I maxed out to 32Gb of ram only because I'm running trueNAS, debian with containers, and home assistant. Most RAM goes to trueNAS and trueNAS doesn't accurately report ram. For CPU, mostly just task limited but I don't really think thats a proxmox issue. Obviously it's not going to support an enterprise or even small business but it works for what I need of less than 4 users on my budget.

Proxmox doesn't really ask for much but I probably would recommend docker for your arm devices.

[–] [email protected] 19 points 3 months ago* (last edited 3 months ago) (10 children)

If you know your way around Linux you most likely don’t need Proxmox and its pseudo-open-source... you can try Incus / LXD instead.

Avoid Proxmox and safe yourself a LOT of headaches down the line. Go with Debian 12 + Incus/LXC, it runs VMs and containers very well. Proxmox ships with an old kernel that is so mangled and twisted that they shouldn’t even be calling it a Linux kernel. Also their management daemons and other internal shenanigans will delay your boot and crash your systems under certain circumstances.

LXD/Incus provides a management and automation layer that really makes things work smoothly - essentially what Proxmox does but properly done. With Incus you can create clusters, download, manage and create OS images, run backups and restores, bootstrap things with cloud-init, move containers and VMs between servers (even live sometimes).

Another big advantage is the fact that it provides a unified experience to deal with both containers and VMs, no need to learn two different tools / APIs as the same commands and options will be used to manage both. Even profiles defining storage, network resources and other policies can be shared and applied across both containers and VMs.

I draw your attention to containers (not docker), LXC containers because for most people full virtualization isn't even required. In a small homelab if you can have containers that behave like full operating systems (minus the kernel) including persistence, VMs might not be required. Either way LXD/Incus will allow for both and you can easily mix and match and use what you require for each use case. Hell, you can even run Docker inside an LXC container.

For eg. I virtualize the official HomeAssistant image with Incus because we all know how hard is to get that thing running, however my NAS / Samba shares are just a LXD Debian 12 container with Samba4, Nginx and FileBrowser. Same goes for torrent client that has its own container. Some other service I've exposed to the internet also runs a full VM for isolation.

Like Proxmox, LXD/Incus isn’t about replacing existing virtualization techniques such as QEMU, KVM and libvirt, it is about augmenting them so they become easier to manage at scale and overall more efficient. I can guarantee you that most people running Proxmox today it today will eventually move to Incus and never look back. It woks way better, true open-source, no bugs, no delayed security updates, no BS licenses and way less overhead.

Also, let's consider something, why use Proxmox when half of it’s technology (the container part) was made by the same people who made LXD/Incus? I mean Incus is free, well funded and can be installed on a clean Debian system with way less overhead and also delivers both containers and VMs.

Yes, there's an optional WebUI for it as well!

Some documentation for you:

[–] [email protected] 3 points 3 months ago (1 children)

Thanks for all this. I’m familiar with Linux and I just think for my need, something like Proxmox is overkill. I do need to learn LXD on its own. Typically I just run binaries of the services I use, and I don’t tend to use docker or other things. I had toyed with the thought of using Proxmox for management purposes because let’s face it management of several on prem and off prem servers can be a pain. But keeping things running fast and smooth (for spouse approval) is important. I’ll look over the links you provided as it’s probably just good for me to learn LXD directly.

load more comments (1 replies)
[–] [email protected] 10 points 3 months ago (1 children)

I think I was on a previous account the last time I saw you, glad to see you're still posting. You convinced me to move from Proxmox to Incus a while back. Sure, I had some growing pains, but it's pretty smooth now.

I like that I can switch out my distros underneath Incus instead of being stuck on one weird kernel. IME you were absolutely right about that. I'm getting into atomic distros to manage homelab machines. I would not be able to do that on Proxmox.

I also don't need to edit a giant Javascript file to remove a nag about enterprise software repos, which is nice.

[–] [email protected] 4 points 3 months ago (1 children)

I'm glad to know that I could help.

I like that I can switch out my distros underneath Incus instead of being stuck on one weird kernel

This is an interesting take that I never considered before, my experience (be it corporate or at home) is usually around Debian machines running Incus and I never had the need to replace the distro underneath it.

[–] [email protected] 3 points 3 months ago (1 children)

Yeah, I think it's an unusual case, but I wanted to bring it up to support your point about rejecting their kernel and distro. You can put Incus on a lot of different systems. Don't like systemd? Put it on Void. Want a declarative setup? NixOS. Minimalist? Alpine.

Do I want to maintain a full operating system just to run this one type of software? No, that's absurd. I want to choose the distro I want to work with and then have the software work on top of it.

load more comments (1 replies)
load more comments (8 replies)
[–] [email protected] 2 points 3 months ago (2 children)

I run it on a 4GB Fujitsu Futro S920! 😆 All the RAM seems to be used by 3 VMs. Some SWAP is been used, ok, but the Proxmox overhead doesn't seem that much.

[–] [email protected] -3 points 3 months ago (1 children)
[–] [email protected] 5 points 3 months ago (1 children)

No way! For just 1 reason: I will have to learn another new thing and replace it in about 6 servers. I value my time and for now Proxmox is fine.

P.s. Incus seems nice though! NO, stop tempting me!!! I'm already in the rabbit hole with a gazilion of self hosted services and dozens piling up in the to do list 🙈🙈🙈

[–] [email protected] 0 points 3 months ago* (last edited 3 months ago) (2 children)

Well, I understand your POV... but real software freedom instead of messages asking you to buy a license and a questionable kernel is always a good choice :P

load more comments (2 replies)
load more comments (1 replies)
[–] [email protected] 4 points 3 months ago (2 children)

I have tried a couple of Proxmox clusters, one with overkill specs and one with little Mini PCs. Proxmox does eat up a fair amount of memory, but I have used it with Ceph for live migrations. Its really useful to me to be able to power off a machine, work on it, then bring it back up, and have no interruptions in my services. That said, my Mini PCs always seemed to be hurting for RAM. So that's my pros and cons.

load more comments (2 replies)
load more comments
view more: ‹ prev next ›