From Proxmox to FreeBSD and Sylve in Our Office Lab

46 pointsposted 2 days ago
by arch1e

35 Comments

wolvoleo

24 minutes ago

This is really interesting. I've played with bhyve before but I didn't realise anyone actually used it in anger. And that people had written such great tooling around it.

My home lab still uses ESXi 8. But it needs something new and I was looking at proxmox. However I may give this a try first.

dizhn

2 hours ago

Sylve looks like a decent project with a promising future but this article really doesn't explain why they picked it over Proxmox at all. They explain a lot of things but I can't see the advantage over prox other than they wanted to use it.

arch1e

20 minutes ago

OP here. One thing we mentioned in the blog but probably didn’t emphasize enough is how deeply ZFS is integrated into the UI.

With Sylve, you rarely need to touch the CLI. Snapshots, datasets, ZVOLs, even flashing images directly to ZVOLs, it’s all handled from the UI in a straightforward way.

That tight ZFS integration also lets us build more flexible backup workflows. You can back up VMs, jails, or entire datasets to any remote machine that supports SSH + ZFS. This is powered by Zelta (https://zelta.space) (which is embedded directly into the Go backend), so it’s built-in rather than something you bolt on.

In Proxmox, you can achieve similar things, but it’s less intuitive and usually involves setting up additional components like Proxmox Backup Server.

TacticalCoder

32 minutes ago

> They explain a lot of things but I can't see the advantage over prox other than they wanted to use it.

A huge, totally obvious, advantage is that FreeBSD isn't using systemd. I'm now nearly systemd-free, if not for Proxmox. But my VMs are systemd free. And, by definition, my containers too (where basically the entire point is that there's a PID 1 for the service and that PID 1, in a container is not systemd).

So the last piece missing for me is getting rid of Proxmox because Proxmox is using systemd.

I was thinking about going straight to FreeBSD+bhyve (the hypervisor) but that felt a bit raw. FreeBSD+Sylve (using bhyve under the hood) seems to be, at long last, my way out of systemd.

I've got several servers at home with Proxmox but I never, on purpose, relied too much on Proxmox: I kept it to the bare minimum. I create VMs and use cloudinit and tried to have most of it automated and always made it with the idea of getting rid of Promox.

I've got nothing against Proxmox but fuck systemd. Just fuck that system.

redserk

2 minutes ago

Whether an appliance OS uses SystemD or not is as silly of a concern as “does the lead developer prefer cheddar or brie”

What about performance characteristics? Recoverability of workloads?

I’m interested in a FreeBSD base OS because it seems ZFS is better integrated and ZFS has a lot of incredibly useful tools that come with it. If Bhyve is at least nearly as performant as KVM, I’d be hard pressed not to give it a whirl.

Cyph0n

2 hours ago

Sometimes unification can be an advantage.

I run Proxmox at home, but now that I have been drinking the NixOS koolaid over the past 2 years, all of my homelab problems suddenly look like Nix-shaped nails.

EnigmaCurry

an hour ago

Same. Here's how I scratch the NixOS itch on Proxmox and/or libvirt[1]. One interface for both targets.

[1] https://github.com/EnigmaCurry/nixos-vm-template

dizhn

an hour ago

That feature list looks really good. It would actually be really nice to standardize the guest operating systems in such a way.

I actually have a few hosts that only run docker. I might be able to test with those.

dizhn

2 hours ago

I have the same thing with proxmox especially after I realized how well it integrates with proxmox backup server. And I haven't even gotten into clustering yet. It really is a very solid product.

Cyph0n

an hour ago

Indeed, Proxmox VE is an amazing product.

gcifuentes

2 hours ago

Bhyve doesn't feature nested virt though.

liendolucas

an hour ago

Honestly asking, in which cases nested virtualization is useful?

wingmanjd

14 minutes ago

We run Proxmox VMs that are running Hashicorp's Nomad orchestration at $DAYJOB. The Nomad clients are then turning around and running the docker containers (Proxmox -> Nomad VM -> Docker). For us it's easier to manage and segregate duties on the initial metal this way.

belthesar

an hour ago

Nested virtualization can be very handy in both the lab and in production. In the lab, you can try out a new hosting platform by running one atop the other. IE: Proxmox on VMWare, Hyper-V on KVM. This lets you try things out without needing fresh bare metal hardware.

In prod, let's say you run workloads in Firecracker VMs. You have plenty of headroom on your existing hardware. Nested virtualization would allow you to set up Firecracker hosts on your existing hardware.

liendolucas

13 minutes ago

Perhaps I'm misunderstanding, but wouldn't that case be covered by simply putting some vms under a vnet and others on another vnet and make them talk to each other? I can't also understand what you mean by "fresh bare metal hardware". In either case you don't need bare metal, being a top level vm or a nested one.

zenoprax

an hour ago

One example: when learning Proxmox itself. I was able to set up a multi-node cluster with more complicated networking than I was normally comfortable with and experiment with failures of all sorts (killing a node, disabling NICs, etc.) without needing more hardware or affecting my existing things.

Outside of learning and testing I am not sure of what uses there might be but I'm curious to know if there are.

KaiserPro

2 hours ago

What does Sylve provide that proxmox doesn't?

Or better, how does it do it better than proxmox?

This isn't to say that proxmox is the best thing since sliced bread, I'm curious as to what makes sylve better, is it the API?

evanjrowley

2 hours ago

Without looking at the Sylve docs, I'll conjecture that it has deeper integration with ZFS. With a foundation on FreeBSD, there is a likelihood Sylve can support ZFS-on-root rollbacks better than hacking it into Proxmox. A rollback capability is why I'm looking for Proxmox alternatives. In the Linux world, Talos Linux and IncusOS provide A/B updates which achieve a similar rollback capability. With something based on FreeBSD, your "immutable" OS and all of it's data can be treated equally as ZFS datasets. There's also a higher risk that a Linux kernel update will break ZFS.

justsomehnguy

an hour ago

> Sylve can support ZFS-on-root rollbacks better than hacking it into Proxmo

Can you explain your use case when you absolutely can't provide a separate M.2 drive solely for the OS?

evanjrowley

an hour ago

Regardless of the number of drives available, you gain an advantage when your file system can leverage snapshots to roll backwards or forwards. There are other Linux-native filesystems that can provide this capability too, but many admins prefer ZFS because the full range of capabilities is unparelleled.

Havoc

36 minutes ago

Perhaps I'm missing your point, but proxmox+lxc on zfs storage works fine in proxmox? If just looks like any other storage in proxmox and on commandline you've got all the usual zfs tools

TacticalCoder

30 minutes ago

> What does Sylve provide that proxmox doesn't?

A Un*x system that doesn't use systemd as an init system.

sidkshatriya

2 hours ago

I love FreeBSD but Linux just provides every feature under the sun when it comes to virtualization. Do you find any missing features on bhyve ? Is bhyve reliable ? I can't imagine its been tested as thoroughly as KVM ...

gcifuentes

2 hours ago

Bhyve is quite cool but no nested virt which means you cannot nest vm_enter/exit calls with EPT pages so you cannot virtualize within those guests. I found this crucial. For instance Qubes OS won't run in Bhyve by any means.

rwmj

2 hours ago

Or Windows VBS, if you need to run full-featured Windows VMs.

seanw444

2 hours ago

Do they have any near-future plans to resolve that?

evanjrowley

2 hours ago

Anecdotally, Bhyve has worked in FreeBSD for a decade now. Eventually it got ported to Illumos because it was better than their implementation of QEMU.

MisterTea

2 hours ago

If you are unsure of bhyve's abilities then why not test yourself? Speculation and guessing about stability or testing is useless without seeing if it works in your application.

sidkshatriya

an hour ago

> If you are unsure of bhyve's abilities then why not test yourself?

It is not possible to come to a conclusion about everything in the world yourself "from scratch". No one has the time to try out everything themselves. Some filteration process needs to be applied to prevent wasting your finite time.

That is why you ask for recommendations of hotels, restaurants, travel destinations, good computer brands, software and so on from friends, relatives or other trusted parties/groups. This does not mean your don't form your opinions. You use the opinions of others as a sort of bootstrap or prior which you can always refine.

HN is actually the perfect place to ask for opinions. Someone just said bhyve does not support nested virtualization (useful input !). Someone else might chime in and say they have run bhyve for a long time and they trust it (and so on...)

So I can't agree with your viewpoint.

LeFantome

14 minutes ago

I agree with you and do not understand the “I read every manual” and “I test all software” crowd. I play around with A LOT of software but I cannot test it all.

Speculation is not useless if you are saying “the answer I got makes it 99% likely that this solution will not work for me”. Curation has immense value in the world today. I investigate only the options most likely to be useful. And that still takes all my time.

MisterTea

16 minutes ago

The phrasing of your questions is the problem. They are uninformed, too general, and assuming. The last sentence reads as if you outright dismiss bhyve because YOU can't imagine it was tested thoroughly.

> It is not possible to come to a conclusion about everything in the world yourself "from scratch". No one has the time to try out everything themselves. Some filteration process needs to be applied to prevent wasting your finite time.

It's totally possible when you know what your application requires but you didn't state anything.

> Someone just said bhyve does not support nested virtualization (useful input !).

What nested applications are you planning to run?

sidkshatriya

2 minutes ago

Ok you have a problem with the way I framed my questions and my (unintentional) tonality. Fair enough. Let's move from critique of the way I asked my questions to what your experience with bhyve has been, if you're willing to share that.

Have you used bhyve ? What has your experience been with it ? Have you used KVM+QEMU -- can you compare your experience between both of them ?