My Home NAS, Part 1
I don't throw away a lot of data. It's a bit silly, really, but who knows when I might unexpectedly need to read a high school English paper I wrote around the turn of the century?
Unfortunately, storing everything forever can be a bit of a challenge. My most recent attempt, a 500GB external Seagate hard drive from Circuit City, ended in a disastrous puff of bluish smoke this past summer; some well-timed backups helped save a lot of that data, but even so, I found myself in need of a much better solution. Flickr has helped for photos, but what about that high school English paper?
In an attempt to solve this dilemma, I decided recently that I would try network attached storage instead: it's dedicated hardware, remotely accessible, infinitely expandable, and as redundant as I can possibly afford. Geek that I am, I also decided that it would be fun to build it myself rather than settle for one of the more expensive commercial alternatives.
The requirements I had in mind:
- It should provide at least 1TB of storage.
- It should provide a certain degree of reliable failover in case of hardware problems. I'd be satisfied with a simple RAID-1 mirror with decent S.M.A.R.T. disk monitoring enabled.
- It should be mountable as part of the filesystem on any of our locally-networked computers, regardless of operating system. The ubiquity of SMB/CIFS file sharing software makes it an ideal choice for this scenario.
- It should take up very little space.
- It should use up very little power, since it will be running 24/7.
- Eventually, it should be possible to access it from outside our local network, in as secure a manner as possible.
- It should regularly back up the most irreplaceable of its contents to remote storage such as Amazon S3. For budget reasons, this simply cannot include large media files like pictures and music, so I will also need to make careful DVD backups from time to time.
Given the above requirements, here's what I've decided to start with:
- For the case, motherboard, and processor, meet the MSI Wind PC. It's about the size of two laptops stacked, so it definitely meets the space requirements; plus, it's Intel Atom-based, so it's designed for extremely low-power applications like this. Other notable features:
- It's got a CompactFlash card reader right on the motherboard, which provides a great way to install the operating system separately from the data. I don't think I'll make it completely read-only as some folks have suggested, but obviously I'll need to be careful about how often it gets written to. Anyway, I thought that was a pretty cool feature.
- It's got two SATA ports; only one 3.5" drive bay, but since I won't be using the 5.25" bay for an optical drive (no need), I can easily mount the second RAID disk in there.
- It's also got an SD card reader accessible from the outside, which will make it pretty easy to install the operating system without having to mount a CD or DVD drive.
- The onboard Ethernet adapter supports transfer rates of up to a gigabit, which would be very helpful if I also had a gigabit router. Maybe someday, if it turns out to be slow on megabit LAN. Anyway, it's nice that it's there.
- I'm going to give it 512MB of RAM; nothing special there.
- Just to make sure I've got plenty of space, I'm using an 8GB CompactFlash card in the onboard slot; that's quite a bit more space than my chosen OS needs, but it was only $30.
- For budget reasons, I'm only starting with a single terabyte hard drive, running as one half of a degraded RAID-1 array. Once I can afford a second disk, it'll be easy enough to build the other half of the array. My original choice of hard drive, the Hitachi Deskstar 7K1000, shipped dead-on-arrival from ZipZoomFly, so I'm currently working on a replacement; I'll let you know when I decide, but I think I'm probably going to go with the Western Digital WD10EACS instead (the drawback there is that it's not 7200rpm).
- For the OS, I've chosen Debian Etch, a very popular, stable Linux distribution.
So that's the setup; keep watching for details and photos, as this is bound to be a pretty interesting process.