Considering that a Network-Attached Storage system is essentially a low-power device whose only purpose is to transfer files and archive backups, it may seem like an unassuming little node for newcomers to the home lab ecosystem. But as your server projects pile up, you’re bound to end up requiring more mileage out of your NAS – both in terms of storage capacity and performance.

Luckily, upgrading your NAS is fairly simple, and you don’t need to shell out thousands of dollars on new components like you would in the case of a typical gaming PC. As someone who uses multiple pre-assembled NAS workstations in my home lab, here are some of the easiest upgrades that provide the best performance uplifts for my storage-centric nodes.

Installing a custom NAS OS

Proprietary distros aren’t quite there yet

Since they’re often cheaper than buying all the components separately, proprietary NAS rigs are a cost-effective alternative to building a NAS. Most NAS manufacturers tend to ship their chassis with first-party operating systems, and these can be a double-edged sword. On one hand, you get beginner-friendly interfaces that make running your NAS a cinch. But on the other hand, their limited functionality can get rather annoying for power users, with certain proprietary operating systems removing updates for old products after a certain period of time. Worse still, many of the proprietary NAS distros are deeply intertwined with cloud services offered by the manufacturer – effectively getting rid of the privacy advantage of a local storage server.

Me? I tend to arm my NAS enclosures with custom distributions – sometimes long before the server has hit the age where it stops receiving new updates. I consider TrueNAS (to be precise, the Scale version) the creme-de-la-creme for NAS-heavy operations thanks to its advanced features, but I’ve also outfitted my Arm-based models with OpenMediaVault, which is surprisingly more lightweight than the first-party distros. The only caveat is that certain brands can void your NAS’ warranty when you install a custom NAS, but depending on your NAS’ age and the nature of your tasks, it can be a worthwhile trade-off.

Switching to ZFS

It’s the perfect file system for my RAID arrays

When a NAS distribution (first-party or otherwise) includes support for different file systems, ZFS is often my first choice. When it comes to preserving data integrity, ZFS’ checksum support, CoW design, and scrub tasks ensure the longevity of my data. Creating snapshots is another inherent facility of ZFS, and it’s especially handy for storage servers where safeguarding my files remains the top priority.

Then there’s the fact that ZFS has the best RAID support out of every file system I’ve ever used. Although I’ve transitioned to RAID 10, I used to be an avid RAID-Z1 user until last year, which provides the same benefits as RAID 5 while using ZFS’ data protection features to avoid the dreaded write hole issue from plaguing my setup. Don’t get me wrong, ZFS has its own share of problems, but with enough RAM and some advanced planning, it’s a terrific file system for folks looking to bolster the performance of their RAID-powered NAS. While we’re on the subject of memory…

Slotting in extra RAM

I’m glad I upgraded my NAS before the RAM-apocalypse

Whenever I need to buy a new NAS, I always ensure it doesn’t include soldered memory. That way, I can always arm it with more RAM sticks, and I’ve got enough reasons to do so. For one, Adaptive Replacement Cache is a feature that massively boosts the performance of my network shares by using the excess RAM as cache.

Even leaving aside the fact that ZFS aggressively allocates memory to ARC, it also uses the RAM to store metadata. As such, it can consume high amounts of memory and even slow the system down if my NAS can't meet the RAM requirements. Throw in the extra RAM required by the apps I host on my NAS, and you can see why I still pat myself on the back for buying some memory modules before the memory apocalypse caused the RAM prices to hit the red zone.

Creating SSD pools

SSDs + iSCSI shares are amazing for high-speed tasks

Although I rely on hard drives for storing archival data and backups, SSDs are fair game for tasks that require blazing fast speeds. Take my virtual machines, for example. Since running them off hard drives would result in slow startup times, I use SSD pools to house the boot drives for my VM collection.

And as dumb as it may sound, SSDs are terrific for storing games on a NAS. On a 10G connection, booting games off an iSCSI share created on an SSD pool results in extremely quick load times – to the point where I wouldn’t even know that I’d stored them on a NAS without a stopwatch. Heck, even a 2.5GbE connection can result in decent boot times. Considering that most of the mid-range NAS systems have started shipping with a handful of M.2 slots, creating SSD pools is a great way to bolster performance for demanding tasks.

Some more tips to level up your NAS game

Aside from the pointers I’ve mentioned in the article, SMB Multichannel is a handy method to boost your NAS’ bandwidth. But depending on your distro, it can require a lot of elbow grease to set up, and you’ll need more than one Ethernet connection on the server as well as the client machine. In a similar vein, upgrading your home network can bolster your NAS’ performance, though you'll have to drop a pretty penny on anything faster than 2.5G paraphernalia.

But if it’s reliability and fault tolerance you’re looking for, I recommend buying a budget-friendly NAS chassis. That way, you can use it as a remote storage server that receives backups from your primary NAS.