this post was submitted on 11 May 2025
5 points (85.7% liked)

Self Hosted - Self-hosting your services.

13708 readers
1 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

Important

Beginning of January 1st 2024 this rule WILL be enforced. Posts that are not tagged will be warned and if not fixed within 24h then removed!

Cross-posting

If you see a rule-breaker please DM the mods!

founded 4 years ago
MODERATORS
 

Started my first home server about 3 weeks ago and I really need to reconsider my storage options, but everything I read about NAS setups is going right over my head. This is gonna be a novel partially because writing this down helps me think through it, and I also just want to be sure I'm on the right track.

Here's my current setup and what I'm looking to do:

  • My server itself is a little HP mini PC. i7, 2 TB SSD, solid little machine so far. Running Proxmox with a single debian VM which houses all my docker containers - I know I'm not using proxmox to its full advantage, but whatever it works for me. I mostly just use it for its backup system.

  • Currently using an 8 TB powered usb external, primarily for media and backup files. Everything else fits directly on the server's internal SSD with plenty of space available, but being able to expand or migrate nextcloud and immich down the road would be nice

  • Coincidentally, I've been using a similar 8 TB external for my desktop for the past 3-4 years. Right now it's just for desktop backups (cachyOS) and storing about 500GB worth of ROMs and growing. I used to use this to expand my steam library, but over the years internal storage has gotten much cheaper so I really don't need to do that any more.

  • I've been reading about external drive shucking, since apparently that's a thing? Seems like my best bet here would be to crack both of these external drives open and slap them into a NAS. 16TB would be plenty for my use.

  • Hardware: while I like the form factor of Synology/Terramaster/etc, seems like the better choice would be to just slap together my own mini-ITX build and throw TrueNAS on it. Easy enough, but what sort of specs should I look for? Since I already have 2 drives to slap in, I'd be looking to spend no more than $200. Alternatively, if I did want the convenience and form factor of a "traditional" NAS, is that reasonable within the budget? From what I've seen it's mostly older models in that price range.

  • I assume I can essentially just mount the NAS like an external drive on both the server and my desktop, is that how it works? For example, Jellyfin on my server is pointed to /mnt/external, could I just mount a NAS to that same directory instead of the USB drive and not have to change a thing on the configuration side?

  • Will adding a NAS into the mix introduce any buffering/latency issues with Jellyfin and Navidrome?

  • What about emulation? I'm going to set up RomM pretty soon along with the web interface for older games, easy enough. But is streaming roms over a NAS even an option I should consider for anything past the Gamecube era?

you are viewing a single comment's thread
view the rest of the comments
[–] nfreak@lemmy.ml 2 points 2 weeks ago (1 children)

This is all super helpful, appreciate it. Just for clarity, the mini PC right now is one of those tiny HP EliteDesks. Definitely no room to fit any extra drives, but I already pulled the trigger on a second machine after doing some more research, and that should be plenty for something that's basically just going to be a storage box.

Good catch on the redundancy, at the time posting this I didn't realize I needed the physical space/drives to set up that safety net. 8 should be plenty for the time being. Say if I wanted to add another drive or two down the road, what sort of complications would that introduce here?

I do have a backup plan but the mirror safety net is definitely a good call, since it's not an ideal solution. Right now I'm storing most backups internally, on a small USB drive, and uploaded to a b2 bucket, while I'm manually backing up all of that plus my media/emulation library to a 20TB external drive once a month and shoving it in my storage unit in between.

Good to know network latency shouldn't be too noticeable, guess that does make sense. I don't expose anything publicly, LAN/VPN only and it's just my wife and I here, so I'm not too concerned with locking down access any more than it needs to be.

[–] greyfox@lemmy.world 2 points 2 weeks ago (1 children)

Good catch on the redundancy, at the time posting this I didn't realize I needed the physical space/drives to set up that safety net. 8 should be plenty for the time being. Say if I wanted to add another drive or two down the road, what sort of complications would that introduce here?

With TrueNAS your underlying filesystem is ZFS. When you add drives to a pool you can add them:

  • individually (RAID0 - no redundancy, bad idea)
  • in a mirror (RAID1 - usually two drives, a single drive failure is fine)
  • raidz1 (RAID5 - any single drive in the set can fail, one drive's worth of data does to parity). Generally a max of about 5 drives in a raidz1, if you make the stripe too wide when a drive fails and you start a rebuild to replace it the chances of one of the remaining drives you are reading from failing or at least failing to read some data increases quickly.
  • raidz2 (RAID6 - any two drives can fail, two drives worth of data goes to parity). I've run raidz2 vdev up to about 12 drives with no problems. The extra parity drive means the chances of data corruption, or of a other drive failing while you are rebuilding is much lower.
  • raidz3 (triple parity - any three drives can fail, three drives worth of data goes to parity). I've run raidz3 with 24 drive wide stripes without issues. Though this was usually for backup purposes.
  • draid (any parity level and stripe switch you want). This is generally for really large arrays like 60+ disks in a pool.

Each of these sets is called a vdev. Each pool can have multiple vdevs and there is essentially a RAID0 across all of the vdevs in the pool. ZFS tends to scale performance per vdev so if you want it to be really fast, more smaller vdevs is better than fewer larger vdevs.

If you created a mirror vdev with two drives, you could add a second mirror vdev later. Vdevs can be of diferent sizes so it is okay if the second pair of drives is a different size. So if you buy two 10TB drives later they can be added to your original pool for 18TB usable.

What you can't do is change a vdev from one type to another. So if you start with a mirror you can't change to a raidz1 later.

You can mix different vdev types in a pool though. So you could have two drives in a mirror today, and add an additional 5 drives in a raidz1 later.

Drives in a vdev can be different sizes but the vdev gets sized based on the smallest drive. Any drives that are larger will be wasting space until you replace that smaller drive with a similar sized one.

A rather recent feature lets you expand raidz1/2/3 vdevs. So you could start with two drives today in a raidz1 (8TB usable), and add additional 8TB or higher drives later adding 8TB of usable space each time.

If you have a bunch of mismatched drives of different sizes you might want to look at UnRAID. It isn't free but it is reasonably priced. Performance isn't nearly as good but it has its own parity system that allows for mixing drives of many sizes and only your single largest drive needs to be used for parity. It also has options to add additional parity drives later so you can start at RAID5 and move to RAID6 or higher later when you get enough drives to warrant the extra parity.

[–] nfreak@lemmy.ml 1 points 2 weeks ago

Incredible info, thank you so much for this. Next investment will definitely be a couple of extra drives then - the 8 will be fine for a bit but I'm definitely gonna outgrow that space within a month or two