I had a series of hard drive failures in a rather short time frame last year. My backup strategy sucks as much as the next guy’s. I figured the drives are cheap enough to finally buy/build a disk array.
I have a very noisy and probably very power hungry dual pIII/700MHz box that I use as a file server since 1999. It holds my git repositories, my music, my photo library, videos. It has a bunch of internal drives and two firewire and one usb external drive. A mess. It also acts as a print server and DHCP/DNS Cache/PXE server. I use the awesome
[dnsmasq](http://www.thekelleys.org.uk/dnsmasq/doc.html) for this as my router’s DHCP server configuration involves an on/off switch.
I looked around for cheap NAS boxes. There’s quite a few of them, but I’ve ended up fancying Synology Cubestation. Looking at the feature list, I was a bit worried if those aren’t just bullet points. I expected this coming from the marketing department making sure to have more features than the competition, while the actual features wouldn’t really deliver. That fear was luckily unsubstantiated. Everything I tried worked marvelously as expected from an appliance, despite including features like torrent download and your own personal Flickr-like web service.
I’ve done the initial setup from a Mac, using the included client software. The client finds the CubeStation on the LAN and sets up a small ~2GB partition where it puts the kernel and the system software. There’s a Linux client for this included in the upcoming firmware package, which I was quickly pointed to on the company forum, a valuable resource. Once the root partition with the system is up, you can use the web frontend to manage your Cubestation. The UI is decent, I was highly suspicious when I read “AJAX frontend” on the box. It lacks the elegance of a Wordpress dashboard, but gets the job done (crystal icons, yuck).
The initial creation of the RAID-5 Volume took longer than I expected. Somewhere around 10-12 hours. Then I was able to set up my samba sharing, ssh terminal access, iTunes (DAAP), printer and UPS (so it can shut down cleanly on power failure). That’s what the appliance provides out of the box. I had to upgrade the firmware (through the web-ui) to be able to serve media to my PS3 through UPNP (It presents the media in a much more sane way than mediatomb I was using).
This piece of hardware got me really excited because it’s what an appliance should be. It’s designed to solve a specific set of problems. But unlike something that would come from Apple, it allows customizations for those special cases you may need. Usually you don’t get both of these at the same time. Setting up all this on a stock Linux distro would take quite a lot of effort and I doubt I’d be able to pull it off. Having a solid foundation which you can extend is heaven. And extending I needed. Apart from the DNS/PXE/caching server I wanted to have a git server for my local repos I used to have on my Linux server. I was expecting to fight with building all these manually, but luckily things were a lot easier.
There’s tons of apps already compiled and packaged for the box. You need to download a script that installs a package management system, ipkg on your main Volume (so it’s unaffected when you update firmware) and sets up an /opt mount point. Then you can simply
ipkg install package. Apart from
git, I also installed
iptraf to monitor bandwith usage (And some other handy utils like
I found the performance good, but if you fear the 64MB 266MHz PPC being too shabby for things like a rails server, they make an 500MHz/128MB variant as well, the CS407 and an 800MHz DS407. But for what it’s been designed for, the hardware is perfectly adequate.
Update: Not everything is pink. I’ve had some serious issues with the Seagate ST31000333AS drives and RAID5. Synology seems to be blaming the Seagate firmware issues, but Seagate seems to suggest I shouldn’t upgrade the firmware from CC1F. I’ve downgraded to RAID1, and things seem to be working fine for a week. Kick me next time I’m enthusiastic about something I have for 2 days :)