Technical Overview - NAS Setup for Family Data Storage
In a previous post that I made, I underscored the importance of holding your own data. I discussed the challenges and some of the benefits of having control of that data. In this article, I’ll go into the technical descriptions of the hardware and services I’m using to hold my own data.
Defining My Needs
The setup that I’ll discuss in this particular article is pretty specific to my needs. I go into great detail about those needs here. But I’ll go over some specifics in this article so that it makes sense from a technical perspective. Here’s roughly what I had for my needs:
- I needed to hold around 2TB of data initially with a plan to scale this up over the next 3 years (with no particular target but assuming we would roughly double it).
- We store photos, videos, and music for use on our network and on our mobile devices.
- We needed some way to provide a Google Photos-like experience for photos and videos on mobile clients.
- We needed some way to provide a NextCloud-like experience on our laptops.
- I very much wanted to be able to attach my security cameras to this system for storage.
Build vs Buy - and some history
With this in mind, I had a choice before me: do I build something myself or do I buy something pre-made? Our previous NAS, which I haven’t mentioned much, was a free-to-me machine from 2012 with two 4TB disks running Debian. I’d originally run TrueNAS on that system but became quite disenchanted with it after running problems each time I went to upgrade (something would become unhappy). Additionally, I had a desire to run containers on my NAS but TrueNAS, being based on FreeBSD, doesn’t exactly work the same when it comes to running containers as a Linux system would. I found that to be a bit problematic and more hassle than I wanted but, with my data already on ZFS, I just swapped to Debian and continued on my way.
Once on Debian, I ran NextCloud for quite a while. And while I find NextCloud to be quite a capable system for documents and other office-type tasks, I really saw it fall short in what I wanted for the photos and videos experience. There’s actually quite a bit that goes into generating thumbnails for NextCloud and making sure the client is responsive at all times. At the end of the day, I also became frustrated with NextCloud’s client. We had regular issues where previews did not load properly (even though they were generated) and the NextCloud client really isn’t much of a photos app. I found myself wanting a different experience - I wanted to buy the experience this time.
Research and Selection
With all of those items weighing in and discussing with the group of nerds I chat with regularly, I heard very good things about Synology products (with another nerd having Synology for some time). My only other personal experience was previously testing and recommending a QNAP NAS product in some of my professional work (I actually very much liked that). So what made the difference to me? Synology had Surveillance Station - something I’d oft heard spoken about in the r/homelab subreddit and other places as a great NVR software. I did some looking and saw that it seemed quite capable. That sealed it! I would go with a Synology NAS.
I began my specific research on Synology products thinking I’d probably do something like a 4-bay unit fully loaded. After all, I’d like to diversify the data storage across drives for both performance and redundancy purposes (harkening back to my days doing this with storage as a solutions architect). That was quickly shut down when I was met with the price of the 4-bay units. $600 for a 4-bay chassis with no disks! That was far more than I wanted to spend for this endeavor just for the chassis alone. A 2-bay unit would have to do for now. A bit more looking and I settled on the DS224+ as I’d learned that upping the default 2GB RAM was both cheap and easy.
So here’s what I bought as the chassis and RAM upgrade:
Finally, I needed some disks. I’ve typically been a Seagate or Samsung disk person for the most part (and yes, despite Seagate’s bad reputation I’ve never actually had a failure on my own). Hearing the negative press around Seagate and seeing that Samsung didn’t have any (affordable) NAS-focused options, I checked out the Western Digital offerings. While the WD offerings were pretty much on-par with Seagate in price, I couldn’t help but remember the problems I’d personally seen with WD drives in the past (failures, firmware limitations, etc). Maybe not the best criteria for selection but I went ahead with Seagate. I found that the IronWolf drives had very good ratings.
So here’s what I ended up choosing for my drives:
My overall total? About $731 USD from Amazon after taxes. It was a bit more than I wanted to spend but satisfactory to me.
Implementation
Soon enough, my hardware arrived and I went ahead and implemented everything. It was pretty apparent to me that the Synology setup experience was going to be far different than what I’d experienced rolling my own. I found the OS you use (DSM) to be a pleasant change from a terminal. It was intuitive and I didn’t really need much guidance. I did my usual routine when I get anything new:
- Boot it up and set the bare minimum defaults
- Upgrade to the latest OS and other software
- Reboot - and then configure it
This has always served me well compared to experiences where I didn’t follow this process only to run into bugs or configurations that had to be discarded because of later upgrades. I’ll go into detail on the setup for each part of the NAS in the sections below.
General Storage Setup
I chose to put my drives into Synology Hybrid RAID (SHR) 1 (mirroring) with Btrfs as the filesystem type. The mirroring decision should be obvious - we want redundancy, not nessarily performance here. I chose SHR-1 as this really lends itself better if I want to grow to a larger chassis in the future and, because my NAS model supports it, there’s no compelling reason not to choose it. The Btrfs was primarily chosen because it’s a pretty well-proven filesystem at this point in life being chosen as the defaults now for Fedora and SuSE.
With that all configured and formatted, I started setting up the various Shared Folders I would need for data and copying it across from my old NAS. The Shared Folders capabilities pretty easily met my regular “NAS”-like needs for being available on the network and sharing media. The SMB-capable shares were immediately available to things like Infuse for media sharing on my televisions (using AppleTV).
Need - Google Photos-like Experience
Beyond the basics, I needed to address my need to service the photos and videos. I knew I didn’t really want to go back with NextCloud again even though it was familiar and an option through containers. A friend recommended Synology Photos to me. I had a bit of confusion at the onset of my work though because I also found DS Photos from Synology as an app - which appears to be the older version and not meant for use with my NAS’s DSM version. At any rate, I setup Synology Photos by installing it through the Package Center. It really didn’t require much thought - it created a “Photos” directory in my home and all my photos go there. It then indexes the photos behind the scenes and honestly seemed great. Additionally, the app experience on mobile was far closer to what I wanted than something like NextCloud. I’m pretty satisfied with it!
I will call out something that I think I had to do. Coming from iPhone devices for a lot of our photos (though now we’re back on Android), we had a lot of HEIC photos. The thumbnails for these don’t generate properly without additional codecs that, as I understand it, were removed from Synology in the more recent versions of DSM. This meant that I needed to install some additional packages on the system to get these codecs. I ended up installing the additional package Advanced Media Extensions to make things work “better”.
Need - NextCloud-like Experiences on our Laptops
For regular file-sync activities, I had previously used NextCloud without any real problems. But because I chose to go with Synology Photos now for my pictures, I didn’t want to bring NextCloud up. Plus, I have really unappreciated the less-apparent storage that NextCloud uses so that it can support versioning (tradeoffs, I know!). It didn’t take much looking to find Synology Drive. This works exactly like I was expecting with the one caveat that the file storage is your home folder. As soon as I installed it, I noticed it was synchronizing everything to my computer (not what I wanted!). That’s easy to fix though because you can just change the sync settings - which I did promptly in my client on my laptop.
I’ve actually also implemented Synology Files to synchronize music to my children’s devices (we are sticklers about how that works). However, this is where I ran into a problem. While my wife, myself, and my daughter are all on Android devices and the sync process works fantastic for this situation, it did not work well on my son’s iPad. Synology Drive supports a concept of a “Team Folder” that allows you to specify a Shared Folder that all users can see. Apparently running a synchronization against this onto the iPad was just not something it wanted to do. It would show that it was going to synchronize but would never actually run. I tried all manner of things including reboots, placing files to try to force a sync, and manually downloading one of the files to be synchronized. Nothing fixed it - but time. Apparently just leaving the iPad for a while made it eventually synchronize down. That was - odd to say the least. The overall plan was flawed because the synchronized files can’t be automatically shared to VLC for playback anyway.
Need - NVR for Security Cameras
Network Video Recorder (NVR) software for security cameras is highly useful but, as someone who likes to select my own hardware, I’ve found it a bit hard to come by unless I actually want to buy a dedicated device (from someone like HikVision). I have avoid the use of Microsoft Windows in my household (Xbox gets a pass) due to all of the nonsense that Microsoft has caused us in the past. The most popular software option I could find, Blue Iris, apparently runs on Windows. I have previously tried a few other open-source packages that honestly were completely awful. With that said, one of the selling points of the Synology NAS was this Surveillance Station I’d heard so much about. I was quite excited to implement this.
I installed the package for it from Package Center and immediately setup a camera for testing. Excellent! It worked exactly like I wanted on the system. I went ahead and added another camera and ensured that it worked properly. This was going to be great! I was so pleased that my investment had paid off! And then I went to add a third camera and that’s where I hit a tree. No licenses? Wait, what? The system reported to me that I had no more licenses for cameras. I quickly researched and found it was true. As confirmed by this page, non-Synology-branded cameras need additional licenses to be used. I could not believe this. My own research had failed me! How could I have missed this?
To make matters worse, the licenses from Synology are physical. They are not available digitally (that I could actually find - I heard about digital versions but never found any that could actually come to me). This was incredibly disappointing to me. I have five cameras and needed to add another - this meant I would need to buy a 4-pack of IP camera licenses for a whopping $219 and wait for them to ship! This was, by far, the worst thing I’d run across. Had I invalidated my whole purchase here?
Well - no. While I don’t like it and I haven’t purchased the Synology license pack, the rest of the NAS works great and I’ve decided not to let the camera situation spoil that. I do wish that Synology would reconsider this though. I’m not making money off my NAS - I’m protecting my home. There needs to be some consideration for me as the user. I actually don’t even mind paying something for the camera licenses but over $50 each is out-of-line in my opinion. It brought an otherwise great technology experience down a notch.
Remote Access
So you may have noticed that I created a dependency on two services for mobile clients in my solutions - Synology Photos and Synology Drive. It would pretty much suck to have those as our options and not be able to reach those services outside of my house. For that reason, I do make those available by using Tailscale. Now, that implementation is somewhat outside of the scope of this article but it is important as it is what makes the mobile aspects work. Here’s what I’ve done:
- Tailscale is installed on my home router
- I generally make my whole LAN available via Tailscale (so I could access cameras but the NAS now too)
- Each mobile client and laptop has a Tailscale client
- We’re not doing full-path routing (though that is available) all the time so Tailscale just stays on for all the devices.
- I’ve found very little impact to battery leaving Tailscale on and a lot more convenience because I can just reach things.
- I still only allow synchronization of photos and videos over Wi-Fi
- Even though clients could sync over Tailscale while on mobile data, we are not of the Unlimited Data type and therefore put that off.
Any solution that works similar to this could work. Maybe I’ll write an article on why I chose Tailscale over some of the other solutions I’ve used in the past. The simple answer was that Tailscale just works the best that I’ve used across both Android and iOS devices. That made the difference for me.
Backup
After I’d set everything up and was quite satisfied with it, I needed to go about implementing a backup strategy. I discussed my reasoning and concerns about various methods of backup in this article. Having decided to go with USB storage, I wanted two 8TB drives so that I could form a proper rotation of my data:
- One drive will remain attached to my NAS receiving a backup plus an integrity check weekly.
- The other drive would remain off-site at a safe location.
- Once a month, I would swap the two drives around.
- I had accepted that a loss of a month’s worth of data was worth the balance of the actual task of getting the drives swapped physically.
After looking around a bit, I decided to go with some Western Digital drives (I know, not Seagate!) as they were an attractive price and had decent ratings for general use. In particular, I didn’t want anything that was high-performance (because of price) and I also didn’t want something that was going to be of poor quality (yes, I’m looking at you Avolusion). Here’s what I settled on:
Regarding backup on the Synology itself, I decided to go with Hyper Backup - an app available from the Package Center. I primarily read this information from Synology to help drive this decision. The factors that ultimately lead me to Hyper Backup over something like USB Copy were:
- Hyper Backup allows you to easily encrypt the backup.
- USB Copy (another method I did not select) would result in the data being readable by any OS, and that is actually a downside to me from a security standpoint because the backed-up data will live off-site and out of my control.
- Hyper Backup can do differential backups based on the changes.
- USB Copy, once again, didn’t seem to indicate that this was possible because it is a simpler method.
- In fairness, I could have just done an rsync method on my own here but then I still had to worry about drive encryption as well.
Not really of consequence to me (but possible) is that Hyper Backup can store multiple backups on the same drive if you have enough room. At least for the time being, I will be able to store more than one backup on these drives.
One final note on the backup drive: I enabled sleeping for the USB drive to reduce wear and runtime on it. This is done in Control Panel > Hardware and Power > HDD Hibernation. You configure a timeframe for the USB drives there. The units that I purchased above do support hibernation and seem to be going to sleep and waking just fine.
Diagram and Takeaways
To help bring everything I’ve discussed together, I’ve put together the diagram below:
Throughout this experience, I think there are a few takeaways that I have for what I found:
- The Synology experience is far and above what I could have put together on my own.
- And definitely from a time perspective, we’re talking button presses versus significant time spent “tinkering” with things like I’ve done in the past with NextCloud image thumbnails.
- My family seems pretty happy with the technology choice I’ve made as well - at least in their concern.
- My wife and daughter are both using Synology Photos without much of a thought. Both having used iCloud Photos and my wife having used Google Photos, they seem quite content.
- The biggest selling point of the solution I bought ended-up being the biggest bust - all due to camera licensing.
- In my professional work, I’m very thorough when it comes to fully resolving a solution. I allowed myself to be a bit more lax here and it turned out poorly on that front.
- Thankfully, the other features of the Synology NAS redeemed my investment completely.
Final Words
So there we go - a full walkthrough of everything I’ve implement on my NAS (so far) to help fulfill my family’s needs for technology. It’s important to me to make sure that my family has a good technology experience and I would definitely say that this investment was worth it. Even with the bit of a sour note around the security camera stuff, the solution as a whole looks to be working well and I’m looking forward to continuing to understand and expand my use of the Synology DS224+ NAS.