Hello all! As the title suggests, I’m looking for some help and recommendations for starting a NAS storage/backup between a few households in my family.
Apologies if this isn’t the right place to ask this. This will be my first entry into something something like this, so I’m not entirely sure where to go.
What I would like to do is have an enclosure in each house and have them all sync together. Two drives will be necessary since I’ll use one drive just on my own since I have a lot of files to store. The other drive I would like to partition so that each household can be given a set amount of storage.
The rest of my family isn’t very tech savvy, so I would prefer a solution that is relatively straight forward to setup and troubleshoot in the rare case I might need them to do something remotely.
I would like to keep the price of the enclosure reasonable since the rest of my family is pitching in on the costs.
Some extra info I copied from one of my comments:
- At this point, will have 2 houses, but likely 3 by next year.
- The first two will be a short drive away, but the third will be hours away.
- The houses are on 100/50Mb fiber. Very stable internet.
- Me being the tech person, I’ll access them every way that’s available. For the rest of my family I’ll likely set them up either with a hardwire or local network.
- We will be using them as part of a 3-2-1 backup for all of our files like photos or documents. I’ll be using the second drive for occasional video backup storage.
- The shared drive will probably be 5-10 TB, depending on how much storage each household wants. The second drive for me will be around 20TB.
- We want multiple units so we have multiple copies of all our important files in the event of something like a house burning down.
Another clarification:
We do want to access files from each NAS individually instead of having everyone connect to one master NAS. The storage will be used mainly for archival and backup, so version conflicts of individual files wont be much of a concern.
I strongly recommend ZFS as a filesystem for this as it can handle your sync, backup, and quota needs very well. It also has data integrity guarantees that should frankly be table stakes in this application. Truenas is an easy way to accomplish this, and it can run docker containers and VMs if you like.
Tailscale is a great way to connect them all, and connect to your nas when you aren’t home. You can share devices between tailnets, so you don’t all have to be on the same Tailscale account.
I’ll caution against nextcloud, it has a zillion features but in my experience it isn’t actually that good at syncing files. It’s complicated to set up, complicated to maintain, and there are frequent bugs. Consider just using SMB file sharing (built into truenas), or an application that only syncs files without trying to be an entire office suite as well.
For your drive layouts, I’d go with big drives in a mirror. This keeps your power and physical space requirements low. If you want, ZFS can also transparently put metadata and small files on SSDs for better latency and less drive thrashing. (These should also be mirrored.) Do not add an L2ARC drive, it is rarely helpful.
The boxes are kinda up to you. Avoid USB enclosures if at all possible. Truenas can be installed on most prebuilt NAS boxes other than synology, presuming it meets the requirements. You can also build your own. Hot swap is nice, and a must-have if you need normies to work on it. Label the drive serial number on the outside so you can tell them apart. Don’t go for less than 4 bays, and more is better even if you don’t need them yet. You want as much RAM as feasibly possible; ZFS uses it for caching, and it gives you room to run containers and VMs.
I’ll share my experience with my very unprofessional but working setup.
I have two locations, both using retired PCs. I don’t need anything fancy, but some considerations could be GPU/encoding hardware if you wanted something like jellyfin/Plex. I use proxmox and proxmox backup server for managing everything and so far it’s been working well. Definitely not plug and play like an aio nas but that’s because a nas wasn’t my only goal as I needed cameras (frigate) and homeassistant.
I would highly recommend headscale/tailscale (as others have suggested) as it “just works” when setup in my experience. This enables safe remote access without opening any ports on your families networks so you can troubleshoot if something did break.
Regardless of which solution you decide to use, the most important part about having a backup is testing. If you can’t see when your backups fail or don’t know how to recover you may as well not have a backup.
Put them all on the same tailscale/netbird metwork and use restic to encrypted backup from each one to the others. Each hpuse gwts their files from there own box and has encrypted backups to pull from if their unit fails
After all the other comments and recommendations, I’ll likely do something like that. Haven’t looked up Reatic yet, but Tailscale looks to be what I need.
restic, sorry. there’s a web client version that runs in docker called backrest that seemed fairly easy to configure when I tried it out and seems to be actively developed.
If I understood you correctly then you want each NAS to have two storage pools.
Pool1
- bigger pool
- only your data
- part of a distributed storage across all NAS(?)
- backup 3-2-1
Pool2
- smaller pool
- shared to the home network it is a part of
- backup 3-2-1
Is this correct?
There will probably be several pools. Each household will get a private pool. Then there will be a shared pool for stuff like family photos. Finally I’ll have the second drive as my own pool. So there will be 4-5 pools on the small drive.
Each NAS will be identical so all data is mirrored to each one. That way if a NAS dies or something worse happens like a house burning down, we won’t lose any files.
A mirror isn’t a full backup, are you sure you don’t want to use something like restic?
If someone deletes a file it’s gone, if a virus overwrites it good luck.You didn’t specify if your pool should be a distributed one or one individual pool per nas.
I have a Synology nas. They recently started thumbing their nose at budget/home users and if I had to buy new I’d consider QNap.
I would set up a nas at each location and enable quick connect.
I would set up a redundant drive pool and create volumes to avoid single drive failure.
I would set up the Drive services. This works just like Dropbox or onedrive. I believe there’s a component that allows Drive on one NAS to sync with Drive on another.
I would set up hyperbackup between the NAS and use Tailscale to avoid playing with firewalls, dns, NAT.
Advanced I would set up federated authentication between the nas.
I would set up firewalls and dns.
Clients I would set up the photos mobile app for everyone.
I would set up google/onedrive backups.
I would set up the Drive app on their machines.
I would probably go with a simple approach like this:
- ZFS: Each house gets a “NAS” that provides a ZFS filesystem to store the data. This gives you the ability to share the drives across your use cases (you, rest of the family), snapshots, RAIDZ support, and usage quotas. For the OS, you could use what you prefer (TrueNAS, Debian, Ubuntu, …).
- Syncthing to synchronize the files across the servers/houses. This allows you to read and write data from anywhere and syncthing will mirror the writes to the other places. I use it to synchronize data across 5 devices and it works quite well.
There are probably more advanced (enterprise?) ways to handle the file synchronization. But, I think this hould be good enough for normal, personal use. The main disadvantage is that you’re only synchronizing the current data (excluding the ZFS snapshots). On the other hand, this also allows you to mix file systems if necessary.
If the data only needs to be read & written from a single server (and the others are just backups), you can also use simpler replication instead of synchthing. E.g. syncoid or TrueNAS replication. It sounds like you should be able to do that with separate datasets per household in your usecase.
We will likely read data from every location. That way people can access the data at full speed using WLAN
Read (only) access should be fine. What makes it complicated is if there can be writes from multiple locations. Basically, the simple version would be to just periodically copy the data from the primary to all secondary locations.
This will be for long term storage of files like family photos and document safe keeping, i.e. “let’s dump all our important files here so we don’t lose them”. Two people writing to the same file will practically never happen.
I’ll keep Syncthing in mind.
I’ll probably go with an all in one NAS just to keep things simple for the less tech savvy people of my family.
I can see why you’d want to go with an off-the-shelf NAS. But, I would carefully check if it supports your use case, as it’s quite advanced.
Our needs are flexible in terms of how the backup is performed in the technical sense, so I would imagine any of the feature rich NAS units can do what we need in some way or another.
It’s possible there is dedicate system to do this, I haven’t researched it. But if not setting up syncthing would work. And if its a lot of data sync it local first then mail or drive the remote drive to them.