I’ve recently setup my own cloud server based on a Rock 5B sbc. This sbc is running an 8 core rockchip cpu and 8gb of memory. The goal was to have a cloud server running 24/7 with as low a power consumption as possible.
For storage I use two seagate 12TB drives in raid 1, setup with mdadm, connected to the board with an m.2 to sata card. The server is running ubuntu and I’m using docker for all the services, such as owncloud, immich, jellyfin, obico. On my local network I use SMB to transfer files to and from the machine and when I’m not home I access the files through owncloud. I also have tailscale setup, which I mainly use for ssh access when I’m not home.
The drives are running ext4 as a file system, but I do wonder if ZFS or even BTRFS would be a better choice for this? If I wanna make the switch I have to do it “now” before I back-up all the photos from my truenas machine. General convention AFAIK is 1Gb of ram for every TB of storage when using truenas at least, and this sbc does not meet that, will that be an issue?. Also from my understanding ZFS can be more cpu intensive? The rockchip cpu is more powerful than a rpi 5, but less powerful then something like a Intel N100.
What would you guys run? Should I just stick to ext4? Currently I’m getting satisfactory read/write speeds over smb, nearly saturating the 2.5gbit connection. As a side question would syncthing be the best way to sync the photos on my main treunas storage server and this low power server? or would rsync be better? I’ve never used rync, but are using syncthing to sync some game saves from one window mahcine to another.
It’s just truenas disinformation. Even I fell for that at some point. You can definitely run ZFS even on a low-RAM system. I’m running ZFS on a 4GB of RAM RockPro64 (FreeBSD) that’s also serving as an iSCSI Target (ctld) and NFS server. Also running on an Odroid HC4 (4GB) only serving as a backup server (just NFS shares).
That said, idk how much memory does owncloud and jellyfin utilize. The ideal is that you have about 2 GB of RAM for the OS and the rest for your programs. With the 8gb rock5, you should have enough memory for ZFS, IMO.
When your RAM is not utilized, ZFS will gobble some up. When other programs require RAM, ZFS will give RAM back to the system and allow other programs to use more memory. When you aren’t doing intensive writes, you won’t even notice the RAM being used that much. In any case, it’ll just balance out.
Now’s a good time to check ZFS out and test all your server software, before you commit to putting data on it. And kind reminder to set up a backup server too (even a single external HDD where you copy data from time to time, just have something).
Note: 2GB of RAM for OS and ZFS combined, at a minimum. You can use the rest of the memory for other stuff on your system (i.e. your services or whatnot). If you’re going to run some memory hog software (java is particularly atrocious in general) that can’t function if it doesn’t eat up 7 GB of RAM, then maybe don’t run ZFS. Most software though will be fine with a smaller RAM (particularly in containers).
If you can hard limit the memory usage on the container, I’d go for that (I’m pretty sure there should be an option for that).
Thanks for the insight. Right now the system uses 2.6GB when basically idling. The most memory hungry container is the Omada controller, gobbling up about 1 gig of memory. I’ll try to use ZFS and see if the performance is satisfactory.
Just as ThatGuyB said. I run a ZFS backup box on Intel Celeron N3150 with 16 GB RAM, which I guess is much less powerful than modern SBCs. At this time it’s basically bare OS + Tailscale and runs at below 2 GB of RAM. I have just over 4 TB of data with hourly replication and ZFS current ARC is just below 4 GB. But, again, you don’t really need much ARC, especially when you mostly just replicate snapshots.
Yeah I just finished setting up the mirror with zpool, which was very straightforward, loaded up some files and initial impression is very positive. Performance is good and everything is working as it should. I’ll have to do some more tests, but I honestly doubt I’ll go back to another filesystem. 8GB of memory doesn’t appear to be an issue. I’ll update the thread when I’ve used it a while.
Definitely check if all your programs are alright. I see no reason why they wouldn’t be ok with a zfs backend, but I heard (not ever witnessed personally tho’) that some software doesn’t like it, like some databases. In your case, I doubt it’s going to be an issue, but test and report back.
As far as memory utilization is concerned, you’re definitely fine. Even if your memory consumption jumps to 6 GB for all your programs, you’ll still have the minimum 2 GB for the OS and ZFS.
You can run ZFS on lower amounts of RAM than that, just don’t expect much from it.
You’d probably only run a NFS server, Samba and maybe an iSCSI server on it and that’s it if all you have is 2 GB and lower. I’d rather not put ZFS on anything lower than 4 GB, but it can be done (in fact, there’s been really old videos of people stress testing ZFS on youtube, on core 2 duos and 2 GB of RAM, like power loss by unplugging the system and introducing random crap in the system to corrupt the non-ECC memory and even back then it passed with flying colors).