Our Backup Strategy - Inexpensive NAS

by Jeff Atwood

on February 20, 2009

As part of our new backup strategy, I decided to invest in an inexpensive Network Attached Storage (NAS) unit -- the QNAP TS-409U.

qnap 409u

The TS-409U has the following specs:

  • 1u rack mountable

  • 4 SATA drive bays

  • 500 MHz embedded CPU, 8 MB flash RAM, 512 MB RAM, Linux based

  • Supports RAID 0, 1, 5, 6 with hot-plugging drives

  • Gigabit ethernet network interface w/ web UI

  • Mac, Windows, Linux filesystem support

Being Linux, you can also do lots of other cool stuff on it, like run Apache+PHP, MySQL server, FTP server, BitTorrent server, Multimedia Server (whatever the heck Twonky is), and iTunes compatible media sharing. But for our purposes, it's an inexpensive RAID-based filesystem. It's a minimalistic set of hardware, as you can see in this Techware Labs review:

ts409u-internals

I populated our TS-409U with four of the best price/capacity hard drives I could source. As of today, at least, the sweet spot is 640 GB drives. Total price was $799 for the device, and $60 each for the drives, so around $1,200 total with tax and shipping.

Our Database Ninjatm, Brent Ozar, gave me a little flak for investing in such a low-end NAS device. It's true, for around $1,400 I could have built yet another quad-core, 2 drive mirror Lenovo RS110 server. However, I felt that having an embedded device dedicated to backups -- and one with four drive bays that can do better than RAID 0 or 1 -- was the more logical choice. But I agree, it would have been nice to have another full-blown server to pinch hit for scalability or anything else. It's a grey area.

As for setting up the QNAP TS-409U, I was a little annoyed that you have to run a Windows or Mac executable for the initial setup, instead of just booting it and configuring everything through the comprehensive (and very nice) web UI. But it detected my drives and configured OK, at which point I could use the web UI for everything else:

ts409u-sata-config

Seventeen (!) hours later, the array was fully synced and ready for benchmarking. RAID 6 is just like RAID 5, but with one more parity block, so it can survive two drive failures instead of just one.

raid-6-diagram

The downside of picking a low end NAS is speed. The relatively anemic 500 MHz embedded CPU, combined with software-only RAID and the inherent write penalty of RAID 6's dual parity calculation, means ... well, this is not what I would call a "fast device". Here are some quick benchmarks I ran:

1 file; 6.06 GB
read 21.0 MB/sec
write 7.62 MB/sec
5,784 files; 1,114 folders; 355 MB
read 2.46 MB/sec
write 1.81 MB/sec

For our intended use, storing a bunch of large single file daily database backups, blazing speed isn't particularly important. Now that we have a 1+ TB backup device on the local network, we can store a huge history of daily backups. These check in at about 5GB per day currently, with a growth rate of 50 - 100 MB per day. This also takes some write pressure off the database server, since whatever backups we take will be spooled to the NAS over ethernet.

We plan to complement our onsite daily backups with informal offsite "sneakernet" backups. As I've mentioned before, we are fortunate to have Stack Overflow team member Geoff Dalgas live about a mile from the data center. We bought him a 500 GB 2.5" USB drive, so he can head over the data center every 2 months or so and copy some backups off to keep in the (hopefully) unlikely event something terrible happens to our data center.