I can backup an entire VM snapshot very quickly and then restore it in a matter of minutes. Everything from the system files, database, Jellyfin version and configs, etc. All easily backed up and restored in an easy to manage bundle.
A container is not as easy to manage in the same way.
If a lxc container is in a btrfs subvolume or in a zfs dataset (those are created easily like a directory, it’s not a partition), you can do a full 1:1 copy in less than one second via a snapshot, keeping all the system files, database, version and configs
VMs can also be live migrated to another server in the cluster with no downtime and backups don’t need to take the VM down to do their thing. If in the future you want to move to physical hardware, you can use something like Clonezilla to back it up (not needed often, but still, something to consider).
Both have their places, but those factors are the main ones that come into play of when I want to use a VM or LXC.
It’s not the same. You then need to manage volumes separately from images, or if you’re mounting a host folder for the Jellyfin files then you have to manage those separately via the host.
Container images are supposed to be stateless. So then if you’re only banking up the volumes, then you need to somehow track which Jellyfin version it’s tied to, in case you run into any issues.
A VM is literally all of that but in a much more complete package.
i’d consider that all a good thing, but i can also see how it’s more work
they’re supposed to be stateless because it’s easier to manage, upgrade, etc… if you don’t want that, you can just use load/save/commit (or import/export: can’t remember off the top of my head which is which) and ignore volumes: it amounts to the same thing… there’s also buildpack rebase so you can swap out the base container and keep your top level changes for quick version upgrades that are super simple to roll back
I can backup an entire VM snapshot very quickly and then restore it in a matter of minutes. Everything from the system files, database, Jellyfin version and configs, etc. All easily backed up and restored in an easy to manage bundle.
A container is not as easy to manage in the same way.
How often do you do this?
How not?
If a lxc container is in a btrfs subvolume or in a zfs dataset (those are created easily like a directory, it’s not a partition), you can do a full 1:1 copy in less than one second via a snapshot, keeping all the system files, database, version and configs
VMs can also be live migrated to another server in the cluster with no downtime and backups don’t need to take the VM down to do their thing. If in the future you want to move to physical hardware, you can use something like Clonezilla to back it up (not needed often, but still, something to consider).
Both have their places, but those factors are the main ones that come into play of when I want to use a VM or LXC.
you can use commit, save/load, import/export for the same thing as VM snapshots
It’s not the same. You then need to manage volumes separately from images, or if you’re mounting a host folder for the Jellyfin files then you have to manage those separately via the host.
Container images are supposed to be stateless. So then if you’re only banking up the volumes, then you need to somehow track which Jellyfin version it’s tied to, in case you run into any issues.
A VM is literally all of that but in a much more complete package.
i’d consider that all a good thing, but i can also see how it’s more work
they’re supposed to be stateless because it’s easier to manage, upgrade, etc… if you don’t want that, you can just use load/save/commit (or import/export: can’t remember off the top of my head which is which) and ignore volumes: it amounts to the same thing… there’s also buildpack rebase so you can swap out the base container and keep your top level changes for quick version upgrades that are super simple to roll back