I like my files and I like copying them. I was looking for a reliable way to store and backup them, and there were a few experiments along the way. At this point, I think I can safely say that I settled down with QNAP as my file storage and backup solution.
Hardware in my setup
I chose the entry-level model, QNAP TS-233. I was fully aware that it is an ARM-based server, which performance specs are well… not impressive. I combined it with two 4TB WD drives. Recently, I bought a second unit and equipped it with used hard drives from my PC.
Overall experience
I need to mention that I was fully aware that this product is an entry-level unit, and the overall performance and user experience may not be optimal. And this is exactly what I see. The user interface is slow and feels clunky. However, I could see no performance issues in the background operations and the network I/O, when working with up to 3 connected clients. The truth is that for most of the time, the server is serving files. It does that task reliably, and I don’t have any complaints about it.
Features of a QNAP server
Connecting disks
On the physical layer, disks are located in bays, and the server needs to be disassembled to access them. I never planned to do hot swap, so this is not an issue.
So far, unlike some other manufacturers, QNAP allows connecting any drives “on your own risk”. Some companies switched to closed ecosystem approach with compatibility list, where you can only install approved models. With my QNAP, I was able to run it even on older general-purpose drives (not specifically designed for NAS).
When it comes to the software, the first abstraction over disks is the storage pool. QNAP supports various RAID variants, but with two disks I could only choose between RAID-0 and RAID-1. I chose RAID-1 to have at least a minimal redundancy. With more disks, QNAP seems to offer more modes, and it is possible to switch between them under certain conditions. Disks inside of a pool can be replaced (which I haven’t tried yet), and the pool itself can be resized if the capacity of the underlaying disks changes. The server manages pool synchronization in the background, and there is a setting that controls the priority of this task.
Logical structure
Inside of the storage pool, there are volumes. There are a few things that can be configured about volumes, including whether it should have pre-allocated capacity, what should be the capacity limit, and if it should be encrypted.
Volumes can have snapshots, and QNAP offers snapshot schedules and retention policies, as well as manual snapshot creation. This is where we come to the first limitation: there is a limited number of snapshots that can be stored, which in my case is 32. This is definitely not enough for me to feel comfortable about my backup plan, but I was able to find alternatives. Snapshots, however, are very simple and intuitive. For example, in the shared folder on a snapshotted volume, I can navigate to special directory, which allows me to browse files in recent snapshots. This is very simple and convenient.
Shared folders are the basic management unit in the software ecosystem. When mounting SMB drive, the name of the shared folder goes directly after the first (back)slash in the address. When installing software that manages photos and videos, it asks which shared folder to use for storage. For management of security cameras, it’s the same thing, it needs a shared folder to store the recordings.
Interfaces and APIs
There is a graphical user interface, which looks like a desktop, and it seems to be the only reasonable way to manage the server. I have not found any API or SDK that would allow programmatic access. Usually, I would say no to that, but in this case it really does not feel like a limitation. Recurring management tasks can be usually automated, and I was able to find schedule option for everything that I needed.
When it comes to accessing the data, SMB is the primary interface. It works smoothly with Windows, Linux and MAC, and Windows is mounting the shared folder as network drive without any problems.
For other technologies, there is usually a separate module on the server. I have never tested iSCSI or FTP, but I tried QuObjects, which is a S3-compatible server. I tried it with minIO client library, and it worked, but I haven’t used it enough to draw any conclusions. I do, however, use it in my backup plan, but it is QNAP-to-QNAP operation. The S3 server offers version management and object lock. There are retention policies, which seem to be in line with the general concept of S3-compatibility. The S3 server has another limitation, though: in general, if using S3 interface in a shared folder, the shared folder can no longer be used as “regular” SMB share. Sometimes it works, but if the object lock and versions are enabled, the objects become more than just files in the filesystem. It makes sense, and I don’t think it’s a flaw, it is a perfectly reasonable design approach.
Cloud integration
There are several ways in which QNAP can connect to the cloud. It can copy/move data to/from cloud services, and I will discuss it in the section about backup. QNAP can also “mount” a cloud service and present it as if it was a local drive. In this case it only needs cache space on the device. I have not explored that option in detail, because this in not how I plan to use the cloud services.
Backup
QNAP offers a dedicated application specializing in data backup and sync between local and remote servers, as well as cloud services.
The backup module takes specified directories (they can be sub-directories in a shared folder or the entire shared folders) and copies them to specified location, with a time marker. This is usually combined with schedules and retention policies. QNAP offers smart versioning, which allows lowering granularity as time goes. For example, we can have hourly backup from the past week, daily backup from the past month and monthly backup from past 10 years.
When backing up on the same server, I noticed that files are copied on the first run, and then only the changed files are copied, while not-changed files are hard-linked. This approach, however, seems to be prone for errors. I ran integrity check on the backup made in this way and it complained about some missing files and directories. Looking at the file list in the report, these files seemed to be irrelevant, and somehow got mixed in. I think it is a false positive error, and I chose another approach.
Backups can have encryption and compression. When backing up to cloud services with these two options enabled, QNAP uses the qdedup file format. It creates a directory with data vault and metadata files to hold information about the backup. It allows to keep backup size under control, because each backup is incremental, as only the changed files are processed.
There are a few ways to restore the backup. If the server is operational, in the GUI application, we can select the backup source and point in time to which we want to restore data. If the server is down, but we can access the data, QNAP offers application that runs on a computer and can restore the backup.
Most importantly, there are plenty of cloud destinations that we can choose from. The list includes popular consumer storage systems, as well as industry-standard S3 and S3-compatible options.
Sync
The same application that is responsible for backup, can also do data sync. I use it to automate file operations in my environment, which is fragmented across various cloud providers. For example, I can download all my files stored in the cloud, to have them backed up by the backup job. Then, I can copy a single directory from provider A to provider B, so that I can share it with my family.
All the sync jobs (just like backup jobs) can be scheduled. Schedules can be time-based or chained (e.g. running backup job after sync job has been completed).
Photo and video management
I am an amateur photographer, and I have tens of thousands of digital photographs, taking up more than 1 TB of space. I never wanted to delete anything, so the archive just kept growing. This was one of the reasons why I started looking for a file server.
QNAP offers a dedicated application for managing and viewing photographs and videos. On the hardware that I have, and with the number of files, I can clearly see limitations of this application. Due to poor performance, its role is reduced to copying photos from my phone to the server. There is a client application on the phone that uploads files to the server. It is fast and reliable, so I really can’t complain about this part.
The rest of the ecosystem is too slow to be useful. The software does a great job at indexing files and generating previews, but with the number of photos that I have, it just isn’t reliable. It doesn’t crash, though, it is just terribly slow. It would be interesting to see how it works on a more powerful server.
Summary
I do not regret buying QNAP server. It allowed me to build a solid backup plan for my digital life and run automated tasks on my files. It is not a revolution in how I think about storage, but it is a reliable tool makes things simpler. It does, however, change the way I think about cloud services. I can make the most of them by having a QNAP working silently in the background, copying, encrypting and backing up my data.
