Fundamentally and very broadly speaking there are two ways to solve many problems; build a solution yourself, or purchase an existing solution. While there can certainly be many benefits to doing the former – like potentially being more cost-efficient, have better bang-for-buck, or simply tick off more of your requirement checkboxes – there too can be benefits to going with an existing solution. Customer support, warranty, and the fabled "it just works," just to name a few.
For those of you who have followed along with my endeavors related to homelab shenanigans will know that I went decidedly off to a different direction at first, by using several old "enterprise grade" rack servers. From there I moved on to building a work machine that was powerful enough to run several background tasks (be it docker containers or virtual machines).
Unfortunately that approach came with its own set of challenges and downsides. Power bills certainly became more affordable, but it was a rather large inconvenience to use my machine in certain scenarios. It also still felt like overkill to have it running all the time, even when it only really needed to keep certain lighter tasks going.
And so, I found myself at this pivotal point. I wanted to have a dedicated, lower powered machine for these services I like to have on 24/7. I'd also like to be able to turn off or reboot my work machine when I need to. I explored building my own solution, but pricing started creeping up rather quickly, not to mention time spent researching it all.
The prospects of something covered with warranty, have a known track record, and be something you can "set and forget" became increasingly appealing, especially when your mind and time are already occupied with many other things. Even though you may have the skills, you could simply not have the time right now to spend building something, even though your needs may require a solution right now.
For what I was looking for, my requirements were relatively simple:
- Low power consumption so I can safely and comfortably leave it running 24/7
- Support for 4 hard drives. SSD for docker containers/VMs would be a nice bonus.
- Able to natively support and run Docker containers (no virtual machine for docker shenanigans)
- Able to host my archives and media content like music collection, movies and TV shows, as well as my family videos and other projects
- Able to host my photo library with a usable UI. Bonus points if I can back up my iPhone photos to it as-well.
- Ability to run a virtual machine is a nice bonus, but will not be used often.
Several people I know already use Synology products, and it seems like these devices served them well enough. These devices should also support every single feature listed above, at least in theory.
And so, instead of spending considerably more time continuing down this custom made path, I instead opted to bite the proverbial bullet, and buy one the current model of one of home storage's most famous brands.
Let's have a look.
The Synology DS920+ is their recent-most (at the time of writing) consumer grade 4-bay NAS, with an Intel Celeron J4125 quad-core CPU at 2Ghz with up to 2.8Ghz turbo boost, an upgrade over the from what I can tell otherwise virtually identical older DS918+, which has an Intel Celeron J3455 at 1.5Ghz and up to 2.3Ghz turbo boost.
The NAS comes with 4GB of RAM, with the official option to upgrade to a total of 8GB. Only a select few RAM sticks and brands are considered officially supported, but fortunately the community has done some more extensive testing and found that you can actually upgrade beyond 8GB total. I purchased an additional Samsung 8GB RAM stick to bring my total ram up to 12GB.
Other than the four hard drive bays, the NAS is also heavily advertised as having two NVMe M.2 SSD bays available, to be used as cache drives. However, the actual usefulness of these are minor at best, as pretty much everone recommends against you using consumer grade SSDs in such a setup, as you'll likely end up chewing through these SSDs quicker than you like, and once they do go bad they might very well take certain data with them – and lock up your NAS in the process.
Unfortunately, there's no official way to repurpose these bays for any other purpose, so unless you're willing to do something Synology does not officially support, you'll likely end up not wanting to use these SSD slots at all, or at the very least not for write cache. More on what I ended up doing with this in another post.
Speaking of things officially supported; Another thing Synology does is keep a relatively short list of what they consider to be officially supported hard drives. If you purchased drives not on that list, expect customer support to be potentially more limited as whatever issues you might need help with will be affected by these unsupported drives you're using.
The NAS is heavier than you might initially think, which actually feels pretty nice. If it's too light, it might end up rattling or shaking too much after all. The finish is good, and it seems well built.
The hard drive trays, however, are thin, 100% plastic, and could definitely be done better. Granted, you'll likely not be swapping drives too often, but for the one part that you'd actually be touching if you need to do something with the physical NAS, you might expect something a little less flimsy than what's here.
The software is.. an experience. For some reason or another, they have decided the best approach to the Synology UI would be to create a whole OS-looking UI, accessed right from within your browser. It has windows that can be minimized, resized and moved, an activity bar, it even has shortcuts you can add to its desktop. It seems to work for what it is, but I can't help but feel like this was over-engineered without much benefit. You can't argue about taste, I suppose.
Installation was as easy as you can expect it to be. Hard drives are installed into the flimsy hard drive caddies without the need of any tools whatsoever, which is actually nice. Things just click in place and instead of screws, little rubber pokey parts keep the drive in place and vibrations at a minimum. Then it's as easy as sliding them in the device and bob's your uncle.
I started off with two brand new (and not officially supported, sigh) Western Digital 8TB drives. This was so I could transfer my existing data over first – which is hosted on two identical drives that are installed in my PC. Then, once all was done, I could add these two drives and expand the pool.
Copying over data took several days, as one could expect, and I took extra care in making sure everything was indeed copied over successfully. I opted to use
rsync, so that I could re-run things several more times to ensure things looked alright. I also took this opportunity to re-organize some parts of my archives, as things had been set up a little less ideal than I'd like.
My photo library was one such area where organization is desperately needed. My hope was that Synology's Photo solutions would be of use here, but more on that later.
Now that all files are in place, it was time to set up a backup solution.
Setting up a Backup solution
Instead of going with Synology's proprietary solutions I wanted to keep using Duplicacy. Initial setup is straight-forward as I'm using the Docker container. After that I simply had to configure the tasks. As I had made quite a few changes to my data structure and because I wanted to keep my previous backup just in case I make any horrible mistakes, I went ahead and created completely new backup tasks to new storage buckets. This way I could keep my old backup for a certain amount of time as a snapshot of sorts.
Another difference I made this time around was create separate buckets for each set of data. Previously I had stored everything inside one bucket, something that Duplicacy fully supports, but as there was so much going on in that one bucket, loading up anything for a restore for example took quite some time, so I figured I'd separate things out.
I did some more extensive tests with Wasabi to see if it was worth switching over for me, but I ended up sticking with BackBlaze B2. The primary reason for this was that I don't really have any problems with B2, it's fast to back up to their US-based servers even though I'm based in South Korea.
Secondly, I had a hard time liking Wasabi's UX, specifically their permission implementation. Somehow they decided to copy Amazon's horribly confusing permission system, which is a headache and then some to deal with. That, and their peculiar 90-day minimum policy, which just isn't compatible with a personal storage solution, at least in my book.
With the data in place and the backups, well, backed up, it was time for me to split out the RAID setup in my PC so I could add one more drive to the mix. This was a bit of a scary step for me, as even though I now had the data in multiple places (four to be exact, not including RAID), knowing me I would always be able to find a way to insert an oopsy somewhere. But, it had to be done.
My PC's raid setup was also a btrfs RAID1 setup, and my idea was to first convert it back to a single drive setup, take out the second drive and add it to the NAS, have it do its thing of spreading out the data among three drives (which takes anywhere up to a full day), then when everything looks A-OK wipe the final drive and add it to the NAS.
Naturally, I made an oopsy, and forgot to run the final command to cleanly switch from RAID1 to a single drive, so I ended up messing up the data after all. Guess I now only have three copies.
I added the third drive to the NAS, initialized it, then added it to the pool. All this went easy enough, as one should expect. Actual expansion took a full day, but went a bit faster once I discovered the
RAID Resync speed limits setting (under
Configurations), which allows you to prioritize RAID re-sync even if it results in lower performance for other tasks.
This was fine for me, as performance had been absolutely atrocious up until this point anyway. There is one thing I haven't yet mentioned that is probably worth its own section. And so..
"It Just Works."
Anyone familiar with the Apple ecosystem probably knows that when you're fully invested in their ecosystem, things really do almost always just work. Photos taken with your phone magically pop up on your iMac near instantly. Handoff probably worked for some of you. Apple Watch owners likely forgot that other people actually need to enter a password to unlock their Macs, as theirs just magically unlocks when needed.
But when something doesn't just work, things can get complicated fast. One reason for that is that, well, computers are complicated beasts. Another reason is that in order to simplify things, errors or other behaviors might be abstracted away behind non-descript messages, or are designed to fail silently, or something along those lines.
Synology feels like that. It's pretty easy to get started with it, but as soon as your needs step even a tiny bit outside of their crafted narrative, you're left scratching your head in confusion, or even frustration.
Take the indexing of data for example.
Indexing whatever, for however long
After you have added your files, it makes sense that a device that has fancy UI features to show photos and videos needs some time to work through these. If you have a lot of images or videos, it is totally reasonable to have this process take several days, perhaps weeks even.
What isn't very useful, however, is to have such little feedback on what's happening, that even if you have fully disabled indexing of folders. That even if you have hit the pause indexing button, the system is still bogged down so much that it struggles to provide directory listings over SMB. Or to let you watch a video file from the NAS on your TV.
The only indication you have of what's happening is the little processing icon in the top-right hand side, which expands to show how many images and videos it wants to index/process.
What it doesn't tell you is why it's stuck at around 12% for three weeks in a row, or why the total video count only goes up, even long after you finished moving data to the NAS.
It would be fine if it just had to do whatever it's doing behind the scenes as long as it didn't affect the rest of the system, but as I mentioned before, it was extremely sluggish. CPU usage was constantly pegged at near 100%, even if I paused the indexer.
At one point I suspected it must've stalled on a particularly odd video format or so, and as there's no button you can press to really turn things off or on, I rebooted the system several times throughout this process to see if that would help it chug along, but to no avail. Cool.
It actually was so bad that my initial plan of running Pi-hole in a docker container on the NAS ended up not working out. The NAS was so bogged down that my wife and I were having issues using the internet on our phones. Pihole really doesn't need a lot to operate, but it somehow was still too much alongside whatever it was indexing ad infinitum. What a disapointment.
And so, I used my old Raspberry Pi 3B+, set up Pihole and a WireGuard VPN server, which of course worked perfectly right away. My plan of running most server-like things on one machine have failed, but let's hope this is the last set-back. Running a Raspberry Pi alongside this overpriced storage box isn't too bad, I lie to myself to make me feel better.
Alright, let's switch gears. Let's look at photos.
One of the things I was quite excited for was Synology's photo solutions. As I mentioned before my photo library is in dire need of organization, this in large part due to me not having found a good photo library tool I could rely on.
After leaving Lightroom behind I have tried several tools and solutions, but they all had their own set of downsides. I didn't need a full-fletched editing solution, but I also couldn't just rely on a simple viewer, as I at least wanted the ability to rotate some images to their appropriate orientation. Ideally I would also be able to tag and group images, possibly even edit some metadata. The last one would be particularly useful as many of my photos were made with film cameras, and thus lacked any useful EXIF information.
Synology had two solutions available at the same time; their newer Moments application, which was decidedly more simplistic in terms of functionality but looked very nice and was much more enjoyable to browse through, and their older Photo Station, which offered more editing and organization functionality.
The upcoming DSM 7.0 upgrade (in beta at the time I got my NAS) would introduce a new solution that supposedly combines the functionality of Moments and Photo Station, which sounded great. But I wasn't willing to rely on beta software, so Moments and Photo Station it is for now.
In my thinking it would make sense to use Photo Station for my old Lightroom and Flickr photos, and use Moments for my iPhone photos and videos. Later then with DSM 7.0 these would come together into one coherent collection. This idea I like.
Unfortunately, problems came once again.
No matter what I tried, I was unable to get Photo Station to actually see and index the photos I placed in the
photo shared folder on my NAS. This is supposed to work, right? What gives.
Unless I manually uploaded an image via the Photo Station web UI, it just wouldn't show up. I searched for a solution, but I couldn't find anything that actually worked. Maybe it was related to that endless indexing. Did it prevent Photo Station from even recognizing a folder exists? Who knows.
The Synology system offers no way of actually finding out, as most of the details of what's happening are abstracted away behind overly simplified indicators, if they're even being shown at all. The indexer, for example, shows some of what Moments is doing with object and people detection (I think?), but not all, nor does it let you actually control it with the pause button.
I decided to give up on this for now, and wait to see if things might magically start working once the indexer has finally finished doing whatever it is that it's doing. Time will tell?
After about a month in I was honestly starting to feel annoyed, as the video indexing progress indicator had still not even once progressed beyond 13%. As far as first impressions go, this wasn't a good one. I had purchased this decidedly uncheap device so I wouldn't have to think twice about it, but here I am a month in and I'm still not closer to even knowing if a simple task of copying a folder of images to a certain folder makes it show up in the expected place or not.
For the images that did show up, I was having other odd issues too. Like selecting multiple images to download resulting in a weird error page.
For a device whose sole purpose is to be trusted with your data, this isn't a very trustable beginning. I'm trying to stay optimistic, but it's an uphill battle. Surely my expectations aren't this unreasonably high. Are they?
By the time I purchased the NAS, DSM 7.0 was already in beta. My original plan was to wait out the new release until at least a point update, just to make sure there are no new unforseen issues, but by this point it had been released and reception in the Synology Reddit seemed very positive, without huge bugs being reported or anything.
I figured with the current version already being a mixed bag of quality and stability, perhaps these new features and combined photos solution might actually help things along. I still have both backups in place for a worst case scenario, and so I went ahead and gave in to temptation, and started the upgrade process.
The upgrade process was fairly quick, taking about half an hour in total I believe.
Once the upgrade was done and updated packages installed, I took a peek at the indexer and lo and behold!
Somehow the reporte total video count had dropped by about half, but the overal progress indicator now stood at 31%. Hallelujah! Perhaps it can finish indexing by the end of this year after all.
Checking out the new Photos app showed a mixed state of having imported stuff from Moments over, but still needing more time for things like facial recognition.
The Synology Moments iOS app also no longer worked, of course, as I now had to download a new application. Once I did this though, I needed to disable the automatic upload feature, as it wanted to restart from the beginning. Even though it wasn't actually uploading any new images due to it noticing these images already existed, it still took forever for it to walk through all these photos, as they had to be individually downloaded from iCloud first.
I ended up disabling the auto upload feature until the NAS was (finally) completely done importing and indexing everything. I then proceeded to set up a new auto backup task to upload only new photos made from now on, and manually uploaded the images and videos made between the last time Moments worked and the new Photos app started working.
I am not entirely sure what happened there, but let's just assume that was somehow something I did wrong. Anyway, it worked in the end.
What also worked is that the new Synology Photos app now actaully recognized the folders I had placed in the
photo shared directory a month ago. They somehow didn't show up under the "Albums" view, but in the
Folder view of the
Photos tab they all showed up just fine. More progress!
I also figured out that I could easily add them to the
Albums view by creating a "conditional album" that simply included all photos in a specific folder. Nice!
Where standards meet Synology
Under the hood the Synology NAS runs Linux, so when it comes to the command line (or SSH), many of the things you might be familiar with actually work similarly or the same. Though this similarity is, unfortuantely, more shallow than you might initially think, or indeed want.
Docker, for example, once you've installed the package, works pretty much exactly as you'd expect, which is great. All you need to do is add your user to the
docker group (and restart), or stick with using
sudo for all your docker interactions.
docker stats works,
docker-compose is even included, which is really nice.
The way you modify user groups is decidedly non-standard though, as Synology opted to create their own method for that.
sudo synogroup --add docker $USER should do the trick. Though again, you'll need to reboot for it to take effect.
Virtual Machine Manager
Under the hood, Synology's virtual machine functionality makes use of qemu, just like you're probably familiar with if you're already using Linux. Using the command line you can launch launch virtual machines just like you'd expect, which is how I was able to run a macOS virtual machine on the NAS, for example.
Unfortunately, Synology's frontend does not rely on the standard ways of defining and configuring virtual machines. What this means is that you can't add virtual machine through command line and have it show up in your Virtual Machine Manager, nor can you modify a virtual machine that's been created in Virtual Machine Manager through command line.
This is really unfortunate, as there are standard ways Synology could've handled this, but they instead opted to go a very custom route on top of these standards. This means it's not actually possible to create a virtual machine that requires configurations that aren't customizable in Synology's extremely limited UI.
I of course understand them not wanting to create a bloated UI that covers all these possibly rarely used features, but I just don't understand why they're not just relying on virsh' existing virtual machine definition solution. A proprietary solution really wasn't necessary here.
Backing up your VMs is also not going to be easy. Unfortunately Synology has decided that being able to automatically back up your VMs is a feature only businesses need, and so you'll need to purchase a business license in order to be able to do that. If you like to keep your virtual machines backed up, get ready to do this manually.
As I am not planning on using virtual machines for much, it is not a huge deal for me, but not being able to maintain up-to-date backups seems like a very weird feature to keep away from customers. Maybe I'll have to stick with VMs on my PC after all.
Network Bond Interface
Setting up LAGG or other type of balanced network option is nice and straight-forward. This way you can make more efficient use of the NAS' two built-in gigabit network ports, although depending on your specific needs it might be beneficial to set up two separate lines instead. I can see benefits in dedicating one line for internet access if your NAS is particularly busy up- and downloading, for example.
As I sometimes am involved with some archive related side projects, I occasionally have to up- or download some larger packages. It's nice to still be able to access the device while this is happening without the line being congested, which is why I went for this particular configuration. The same applies to when I'm transferring some larger files from my PC over if, for example, we want to watch a movie or TV show at the same time.
Dynamic IP (DDNS)
I opted not to use Synology's built-in support of DDNS, as it does not support Digital Ocean out of the box. I instead am using a docker container for this purpose, which seems to work nicely. I'm also not using the built-in QuickConnect functionality, as I don't need it. I have a VPN that I can log in to to give me access to my home network, so I really don't need the NAS to be available outside of my home network.
Uninterrupted Power Supply (UPS)
I also wanted to take this opportunity to add a basic UPS to my setup, as sudden power outages could cause data corruption or other issues. As it so happens around this time my apartment complex had an upcoming scheduled power outage which, apparently, happens once every three years (they take this time to check and test the system), so pretty convenient timing to instantly be able to test this new setup out, too.
I opted to go with the APC Back-UPS ES 700, an affordable choice that supports basically everything I would need for my low-powered setup. The only thing this thing doesn't support is the ability to disable or otherwise turn off the incessent beeping, so if your power does indeed go out, or if it deems the battery bad, it will tell you with loud beeps at very frequent intervals and there's nothing you can do about it.
The Synology NAS natively supports this UPS, which is really cool, so all you have to do is plug it in with the UPS' included and very odd USB cable, and enable the functionality in your Control Panel (Hardware & Power > UPS).
A surprise missing hard drive
About two weeks ago, my wife woke me up saying a beeping noise is coming from the network corner. As it turns out, it was the NAS, and it had been beeping since about midnight, which we couldn't hear through the door. Sorry, neighbors.
For some reason the NAS had suddenly decided the fourth drive no longer existed and wasn't installed. I have no idea why this happened, but if an internet search is anything to go by, this somehow can suddenly, rarely, happen, for no real reason. What.
Somehow that's an acceptable answer to Synology, but I'm certain if I even were to contact them abou this, they'd just blame it on my "unsupported" hard drive. I re-inserted the hard drive and ran an extensive SMART test on it, which after about 12 or so hours returned with zero issues. The (brand new) drive was and is completely fine.
After re-inserting the drive Synology seemed to recognize it just fine too, so I couldn't do much else but to assume the NAS had a brainfart, or maybe it wasn't pushed it hard enough? Who knows. I didn't want to leave the pool limping onward too long, as a second drive suddenly deciding it didn't want to play along for no reason would mean data loss, so it was time to bring this fourth drive back online.
In order to bring the drive back in the pool, I actually had to first "deactivate" it, and then re-add it to the pool as a new drive effectively. Which means the NAS had to redo the whole spreading out of data thing all over again. With the
Run RAID resync faster option once again enabled, this ended up being done in just under 15 hours.
I still have no idea why this happened, but things have been runing fine since then, so I, once again, just hope things will run smoothly from now on.
I feel like I need to do a lot of hoping with this thing.
As you can probably tell, I am not overly happy with my purchase. I can't help but feel like it is overpriced for what is offered. I understand that for these kinds of markets, overpriced is kind of the status quo though. If this device had been priced 30-40% lower I think I would've considered it adequately does its job, but at the actual asking price the software unfortunately under-delivers at best.
I am still hopeful that in the long run I will find that the device delivers. As it stands right now, though, if I ever need to purchase a new NAS, I would seriously consider whatever alternatives are available at the time. Perhaps QNAP would be a good choice, or simply building my own solution after all is the best way forward if this is what I can expect with pre-made solutions, as I'm not really saving all that much time in the end.
As I don't have enough experience with other choices, I can't make an equal and fair comparison just yet though. Perhaps time will tell.
At least in the power consumption department I am pleased. My entire home network corner now uses about 60 watts. This includes the Synology NAS with 4 hard drives, a Raspberry Pi, my internet provider's modem, one of the three mesh wifi network devices I use. And the UPS of course.
I can now comfortably update my PC, turn it off over the weekend, or boot into another OS if needed, all without interrupting background tasks that I'd like to have running consistently.
It's also nice now that a bit more hardware is removed from my home office. Especially in the warmer months, having fewer devices heating up the room is never a bad thing. The NAS is now standing in a corner dedicated to home network gear, so isn't bothering anyone.
I have been using this setup for a bit over two months now. About three or so weeks of this it has been running free of indexing, and about two weeks have been running without issue since that surprise disappearance of one of the drives.
Time will tell if I'm finally out of the woods with this thing. That would certainly be a nice thing. I can see why people like having a dedicated NAS, but I can also clearly see room for improvement. Let's hope future updates of DSM 7.0 will help bring some more useful functionality back in. Perhaps even some shifts towards using existing solutions as supposed to their proprietary overlays would be really nice. But that's probably wishful thinking.