I have a trusty UnRaid server that has been running great for almost 3 years now, with some kinks and headaches here and there, but mostly very stable. Now I’m entertaining the idea of setting that box up with ProxMox, and running UnRaid virtualized. The reason being that I want to use UnRaid exclusively as a NAS and then run all dockers and VMs on ProxMox (at least that’s how I’m picturing it). I would like to know your opinion on this idea. All I have is Nextcloud, Immich, Vaultwarden, Jellyfin, Calibre, Kavita and a Windows VM I use to update some hardware every now and then. I mainly want to do that for the backup capabilities in ProxMox for each instance. Storage is not a concern, and I have 64GB of ECC Ram running in that box. What are the Pros and Cons, or is it even worth it to move all this to ProxMox?
Use either proxmox or unraid. Don’t stack.
They are both great in their own respects but you need to choose what works for you and your hardware.
Up until recently I liked unraid due to being able to use multiple disks with different capacities. You don’t really have that freedom with proxmox.
To most of your comment I completely agree minus the freedom for choosing different disk sizes. You absolutely can do that with btrfs or just throwing a virtual layer on top of some disks with something like mergerfs.
You’re correct, with a bit more know how and knowledge it’s completely doable. Quick question maybe, once you create a pool and are utilizing it, are you able to add/remove drives as needed or does that require additional work to be completed? I am under the impression that the pools can be created with a variety of drives but making any physical adjustments are a bit of trouble.
However, I do appreciate you posting about this, maybe it’ll help someone else that might be browsing through here. Thank you.
It depends on your needs. It’s entirely possible to just format a bunch of disks as xfs and setup some mount points you hand to a union filesystem like mergerfs or whatever. Then you would just hand that to proxmox directly as a storage location. Management can absolutely vary depending how you do this.
At its heart it’s just Debian so it has all those abilities of Debian. The web UI is more tuned to vm/lxc management operations. I don’t really like the default lvm/ext4 but they do that to give access to snapshots.
I personally just imported an existing zfs pool into proxmox and configured it to my liking. I discovered options like directly passing datasets into lxc containers with lxc options like lxc.mount.entry
I recently finished optimizing my proxmox for performance in regards to disk io. It’s modified with things like log2ram, tmpfs in fstab for /tmp and /var/tmp, tcp congestion control set to cubic, a virtual opnsense heavily modified for 10gb performance, a bunch of zfs media datasets migrated to one media dataset and optimized for performance. Just so many tweaks and knobs to turn in proxmox that can increase performance. Folks even mention docker I’ve got it contained in an lxc. My active ram usage for all my services down to 7 gigs and disk io jumping .9 - 8%. That’s crazy but it just works.
If you have a disk controller you can pass through.
And that’s why I chose to ask here. More heads put together come up with better choices. Watching this TechHut video (https://www.youtube.com/watch?v=ahOXQM4416Q) and another one from Christian Lempa (https://www.youtube.com/watch?v=M3pKprTdNqQ) is what led me to think it could be an idea.
I guess it’s the “add another server” to route for me.
Thanks so much.
Best of luck jjlinux. I hope you have a ton of fun getting your system up and running.
Thanks a lot, I’ll update my progress, if my wife chooses to spare my life once I start 🤣
Oof. No.
Wouldn’t do it for a litany of reasons, but the main being that it’s not meant for such things. You want it to be as close to the OS and drivers as possible. Anything getting between Unraid managing the disks is overly complex, and asking for trouble. What happens if the container dies? What happens if the container gets OOMkill’d?
If you’re not going to use it to manage your disks, then I guess no issues, but there’s better suited software for such things.
Isn’t Unraid also a VM host of sorts?
Yeah, UnRaid does all of that, but from my very basic testing of ProxMox in an old computer, the VM management is much better than in UnRaid. The same goes for VLAN awareness with just 1 nic.
I’m in no way unsatisfied with UnRaid, but I watched a video by Christian Lempa doing something similar, only with TrueNAS instead of UnRaid, which is what got my brain thinking about all these potential options.
There’s the question of “CAN I do this?” vs “SHOULD I do this?”. I don’t think abstracting your main storage handling software away from where it definitely needs to be is going to net you anything positive, but add more issues and complications.
I’m sure you can find videos of people running drivers out of containers just because it’s possible. Should you though? Nope.
I do have the advantage of having a mirror of my server 2.5K miles away in my brother’s house. That’s probably why I’m thinking about being so candidly careless.
I appreciate the great advise. But now I’m willing to take one for the team and come back with either am horror story or an epic win.
BRB.
You’re thinking about this wrong way though. Why are trying to abstract the thing that keeps your disks working properly? What’s your gain here?
Oh, ok. Mainly 3 things:
- Manage all my containers and VMs over ProxMox instead of inside UnRaid directly, effectively leaving UnRaid to be just manage storage only.
- This, from my understanding, will in turn allow me to play with container options other than docker (docker is awesome, I know, but it also has limitations), effectively opening new roads of knowledge to me. UnRaid doesn’t even support Kubernetes or LXC.
- Easier VLAN management in the server side. I have to play with firewall permissions on my PFSense to allow some containers to talk to others. ProxMox, being VLAN aware, would allow me to eliminate those permissions from PFSense and just manage interconnectivity via ProxMox.
While I’m aware that I can even compose dockers in UnRaid if there’s no UnRaid docker template available, it’s not the most user friendly way for managing those containers, in my opinion.
Another reason is that I’m always trying to learn new things, and from my limited experience with ProxMox (I’ve only been playing with it for about a month or so on an old rig), ProxMox is incredibly easy and powerful when it comes to container and VM deployment. The management options seem to be infinite.
Your point is very solid, which is why I’m contemplating segregating UnRaid and ProxMox into 2 separate rigs as opposed to virtualizing UnRaid.
These are hard decisions. Keep just 1 rig and spend way more time and probably migraines configuring this, or just build a new rig for ProxMox and migrate all my containers and VMs to it, which is faster, but will come at a higher monetary price, including power consumption.
Just get a separate host for whatever the VM stuff you want. You won’t need to worry about messing anything related to storage up, AND you’ll be able to mess with all the networking stuff without impacting your NAS.
If you’re just trying to run some simple services, just get a $300 Ryzen minipc. Plenty powerful for what it sounds like you’re looking to do.
Yeah. I told my wife what I wanted to do, and she actually would rather have me spend the money than risk spending too much time if and when I break something. I’m thinking a minispc Ryzen 9 or a Ryzen 7 venus, set it up with a 4TB NVMe. That should do the trick. It’s a bit over 300 bucks, but will be a bit more future proof. 64GB DDR5, and fire it away.
Have you considered the increase in disk io and that hypervisor prefer to be in control of all hardware? Including disks…
If you are set on proxmox consider that it can directly share your data itself. This could be made easy with cockpit and the zfs plugin. The plugin helps if you have existing pools. Both can be installed directly on proxmox and present a separate web UI with different options for system management.
The safe things here to use are the filesharing and pool management operations. Basically use the proxmox webui for everything it permits first.
Either way have fun.
I actually never considered this. And if I’m understanding you correctly, this would render using UnRaid unnecessary.
This is great info. I’m going to fit my current ProxMox test rig with a few disks I have (old small disks I have replaced over the years that still work) and test this option first. This might make this easier.
If this works out, I can still keep the server I set up off-site to mirror my storage, right? Even if that is still UnRaid? I need more coffee.
Yup you can. In fact you likely should and will probably find yourself improving disk io dramatically compared to your original thoughts doing this. It’s better in my opinion to let the hypervisor manage disks operations. That means in my opinion it should also share files with smb and NFS especially if you are already considering nas type operations.
Since proxmox supports zfs out of the box along with btrfs and even XFS you have a myriad of options. You combine that with cockpit and you have a nice management interface.
I went the zfs route because I’m familiar with it and I appreciate it’s native sharing options built into the filesystem. It’s cool to have the option to create a new dataset off the pool and directly pass it into a new lxc container.
I’m very inclined to use this method instead.
I would like to ask for some suggestions on the initial process to migrate the data from UnRaid.
Considering that:
- My disk pool is made out of 2 10TB disks, for a total of 20TB
- It also has a 10TB parity disk
- The pool is using just -6TB of the storage
The option I see is:
- Get another 10TB disk
- I can clear the parity drive and copy my data from the pool to that disk for migrating
- Configure the pool disks to RaidZ and once I complete that, use the other 2 disks as parity pool
Or, I bite the bullet, get brand new 10TB disks, 12 to make it Raidz2 and have a storage pool of 40TB (35 usable?). I’m thinking 4 groups of 3 disks each should do the trick. Then use the same method to migrate my data.
With 64GB of ECC RAM, I should have a pretty swift storage IOPS that way.
I’ve been running Unraid on top of Proxmox for over 3 years. No problems whatsoever. I initially bought a RAID controller to directly pass the drives to the UnRAID VM. Another option is to passthrough the SATA controller of your motherboard (only possible if you don’t use them on the host).
I documented the process on my blog (it’s quite straightforward): https://simplyexplained.com/blog/howto-virtualize-unraid-on-proxmox-host/
So, if I’m running ProxMox off of 2 NVMe drives in RAID, I can just pass through SATA and USB for the UnRaid VM and just NFS my way to happiness, right?
I’m still testing each of my UnRaid containers on ProxMox, and so far they all work fine. With a Ryzen 7 5700G and 64GB ECC RAM, I could give the UnRaid VM just 2 cores and 4GB of RAM, and should be smooth sailing from there, right?
Yep! The only requirement is that your NVMe controller is in a separate IOMMU group than the SATA controller. But that should be the case.
Awesome. I am happier every day I’m in Lemmy and out of Reddit. You guys are flat out amazing. Thank you.
I wouldn’t, you’ll lose a lot not having it manage the disks such as using dissimilar disks for the array and having it spin down unused disks. You might be able to pass disks through so the unraid VM can manage them directly, but it might be harder than I’d personally want to deal with.
If you aren’t running VMs much. Truenas scale I believe can do docker well. I’ve seen a lot of people put that in a VM on proxmox with disks passed through to be used as the NAS portion.