I recently discussed my network attached storage server yet again, and it made me think about what the future holds for this device. I did some brainstorming and settled on the following areas of potential changes and upgrades.
Currently the NAS is open, a trust model that has been fine in all the living situations I’ve used it. Everyone on the network has read/write guest access to the network file share componenets and although the FreeNAS web interface does have a username and password it is still shared with a limited group.
Part of me thinks it’d be cool to add a permission model, especially for various scenarios:
- Guests on the LAN get full read access to some folders like music or movies to download or play.
- Friends or neighbours with VPN or LAN access get some read file access and maybe a section (with quota?) they can use for backups that aren’t private.
- House members with their own private sections for backups or storage such as confidential work, tax documents.
- Servers/systems with hidden sections for backups and extended storage.
- Servers that can read but not write to other servers' sections to provide auditing, log management.
- Admin users with full access permissions to everything.
It’s possible I might need to consider some form of directory service such as LDAP or Active Directory to make this work.
I run a bunch of small applicaation VMs, from GitLab (which I wrote a book on), to project management software, to Tiny Tiny RSS, and having somewhere extra with a lot of space where they can dump data could be handy. This could be logs, or backups, or just increased area for application or archival storage.
Combined with the permissions discussed above it could limit any accidental file deletion issues, and potentially allow new VMs such as log aggregators and searchers to get involved.
Critical data is backed up occasionally to object storage with a cloud provider. Most recently with a powerful one-line Rclone command that can throttle the uploads so it doesn’t interfere with NAS operation. Moving to an automated system and doing occasional checkups would give an increased level of safety and peace of mind.
A lot of the media on LBS isn’t backed up to a cloud provider for two main reasons:
- It’s cost prohibitive to store that many terabytes for a home server.
- It can mostly be re-acquired in the event of a catastrophic incident.
However resurrecting my HP N40L MicroServer and whacking a few big drives in it could provide a local backup, as well as secondary storage for other systems and potentially other uses.
Working out automated systems and solutions for backing up online accounts (GMail, Twitter, Facebook), as well as a simple way to export everything on my phone into the right folders would be neat as well.
I’m happy with LBS’s current hardware, it more than meets my needs and I’ve still got a lot of free space left, but it’s always fun to think about future rebuilds and what I would or could change. Outside of unforeseen events I don’t think I’d replace the processor or RAM anytime soon. They’re still pretty Gucci, they meet all my needs in terms of grunt and have a lot of extra capability. I guess it’s mostly storage where I might want to change things.
When it comes to hard drives, I’ve been running 6x 2TB drives for all the time I’ve been using LBS. When I first bought the Western Digital Caviar Green drives they were cheap, about AU$90 a piece. Not too long later, horrendous flooding in Thailand had a massive effect on hard drive supplies, driving prices skywards by over 200% at one point. When it came time to replace them (with the Western Digital Red drives in 2015) the prices had come down to make 6x 2TB drives financially worthwhile once more.
But even with dropping prices and higher capacities, I don’t think I’d go with RAID-Z2 and six bigger drives. The reason comes down to statistics. The linked piece is a long article, but it goes through how every drive has both a “total failure” rate and an “unrecoverable error” rate. With higher capacity drives, rebuilding a RAID-5/RAID-Z or RAID-6/RAID-Z2 array after one disk failure increases the chance of hitting a second or third issue and trashing the whole array during the rebuild process. Even worse, if the drives were purchased around the same time and have been in use all that time, you’re statistically approaching a greater chance of multiple near-simultaenous failures. And having all drives from the same batch is likely even worse (I made sure to use multiple batches when changing to WD Red drives).
As that linked article states, for bigger drives (8TB+) I could move to a triple parity using RAID-Z3, otherwise I could look at something like RAID-10 (striped data over mirror groups). I’m still not settled either way, but time will tell. Space available inside a case would definitely play a factor in helping me make decisions. I stil want something that can fit under a desk and be lugged around by one person.
Solid State Drive
I’ve considered adding a second all-flash storage pool to the FreeNAS solution, but networking is already a limiting factor at times. My current setup uses just one 1GbE port, so an all flash pool would likely not provide much benefit. If I upgraded the networking on the NAS and the local home network it’s something I could consider but it’s not useful at the moment.
There’s also the possibility of L2ARC caching with an SSD or setting up one as a ZFS Intent Log (ZIL) to speed writes, but the latter would be dangerous if it corrupts during a power outage since there’s no secondary power supply for it.
My plans for my file server aren’t extravagant or expensive, especially not in the near term of the next few years. I want to make it more functional and suitable for more purposes while still handling it’s main roles well. I do want to potentially open access to more people and I want more interconnectivity with other things I own.