Backups: NAS vs external hard disk

Discussion came up on a forum to which I belong whether it is better to use NAS (network attached storage) or external hard drives for backup. My answer is why not use both?

Effectively I have three NAS servers. One is a media server. The others are purely backup – though they can quickly be repurposed as a media server if the first one were to suffer a catastrophic failure. I also have a number of external drives too. But in all cases they are devices I have chosen to build myself, rather than buy off the shelf. Here’s why…

Rolling your own NAS

20200501-2400339-lms-backup

Image 1 of 2

I’m not particularly keen on commercially available NAS. I prefer to build my own. This is pretty easy these days thanks to easily installed Linux distros such as Ubuntu and KDE Neon (and many, many others). Ubuntu on a fairly pedestrian PC, stuffed with HDs or SSDs of your choice will almost always outperform NAS units of a similar price.

  • Find an old standard PC (pref. in a standard AT case), or buy a new one if you feel rich,
  • Install a Linux distro of your choice. If you are new to this then Ubuntu is s pretty good distro to start with
  • Stuff it full of as many hard drives as you want, of whatever type you like, in whatever configuration you like.

Best both in terms of bangs per buck and in terms of flexibility. It’s probably more secure too, since you are root and set your own passwords, encryption methods, RAID etc. And it’s certainly much cheaper and easier to repair when it goes wrong. 🙂

In my case, I have plenty of old PC bits floating about. So apart from new HDs my NAS units are effectively free. As an aside, my current preference to use small SSD for the system volumes and Western Digital Reds for the data volumes. Though I am not particularly precious regarding one manufacturer over another. Disks all can and do fail eventually. That’s why we do backups in the first place! 🙂

Importantly I also encrypt all the data volumes with Truecrypt/Veracrypt. Backups are managed with a standard Unix tool rsync – and “rsync-over-SSH” for backup to NAS. It’s very fast and it enables me to keep accurate logs of what was backed up and when. Additionally I use rsync-over-SSH running as a “cron job” every day at 04:10 UTC to back up my remote webserver, where I host a number of sites and mall boxes for my clients. Means that if my remote webserver suffers a catastrophic failure, or the hosting company goes bust, I have a complete testable local copy of the entire remote web server, including all configuration files and Unix file permissions.

Windows users

Personally I’ve not used Microsoft Windows as a main OS since 2007. Connecting to a home made NAS via GNU/Linux is easy. You need nothing more than the tools I already mentioned. However if you are still using MS Windows, despite the risks and the cost, then you will need to install Samba on your home made NAS. Samba is a free software re-implementation of the SMB networking protocol used by Microsoft Windows local area networks. This guide (originally for Ubuntu 16.04) should work fine with later versions of Ubuntu (and its derivatives) too…

Roll your own external HD too

The volumes in the NAS machine are directly interchangeable with the physical drives in (most of) my external HDD cases. This is made possible by the fact I prefer to buy my own cases and assemble my own external drives. I also have installed power take-offs on my Linux Media server so that it is very easy to connect the external volumes when needed – wallwarts are not required. These external volumes also serve as transit disks, enabling me to make backups to “friendly” servers in other locations.

I can also manage all backups from my laptop, or my rooted phone, via SSH. And of course my laptop(s) is backed up to my prime NAS nightly using rsync over SSH, just as I retire for the evening. I also use rsync over SSH to backup my entire rooted smartphone to NAS too. Though I do this less frequently since I keep very little actual personal data on my phone. It’s mostly just maps and snaps etc.

Using rsync has many advantages, including speed, reliability, not-to-mention, zero cost. It is also possible to tee-off its STDOUT text output to a log file, something like this:-

rsync -a --progress --delete /path/to/source/ /path/to/target | tee -a /path/to/logfile.log

TBH, I rather enjoy my backups these days! 🙂 That may seem a flippant remark. However, in reality, backups that are easy and fun to do, are much more likely actually to get done.

The header photo shows a backup in progress – Veracrypted HDs in external cases. The disk caddies in the photo are bog-standard Novatech SATA to USB3 cases and use a standard 12VDC 5.5mm x 2.1mm “barrel connector” for power. The Linux Media Server case is an old ACER box that a customer was dumping. It’s quite small and pretty, and quiet. But all its internals were somewhat suboptimal and everything including motherboard, power supply and of course MS Windows have all been replaced with something much stronger and more appropriate 🙂 

The home-made power panel on the NAS/Media Server, c/w 2 off 5.5mm x 2.1mm barrel connectors for 12VDC. This particular panel also has 0 volt, 5 volt and 12 volt via 4mm lab-type “banana-plug” sockets. This was a legacy idea that I subsequently ditched. My new panels simply have the barrel connectors. Sockets are backlit with colour-coded LED to identify them, to verify they are working, and to make them easier to find in the dark!

Update 2022-08-30

Here are our latest (at time of writing) 20TB Western Ultrastar HD’s, being installed in latest Ennotek aluminium cases…

20220830-p2440809-20tb-ultrastar-hard-disk-in-ennotek-enclosure

Image 1 of 10

2022-08-30 20TB Ultrastar SATA hard disk and Ennotek USB3 enclosure

More info regarding the 20TB WD Ultrastar disks themselves…

And the difference between TebiBytes and Terrabytes, might explain why your HD never seems to have as much space as you expect…


 

Related Images:

Leave a Reply

Your email address will not be published. Required fields are marked *

captcha

Please enter the CAPTCHA text