I've been on a bit of a green kick around here for the past few months. A computer lab is notoriously power hungry, with servers running at 100 percent utilization for days on end, generating traffic or running test harnesses. There are certain areas where I can make some reductions, however, such as collapsing a half-dozen less-utilized boxes onto a single VMware ESX server. There are some other ways, too.
One of the mainstays of my lab is an aging AMD Athlon 1800-based server, all 1.2GHz and 512MB RAM of it. See, it's also running a 3Ware 9500 RAID controller and 1.5TB of storage for anything and everything. It still runs Fedora Core 3 (I haven't had to rebuild it for years) and shares files via NFS, SMB, ccxstream, UPnP, FTP, HTTP, you name it. All server builds via PXE come from this box, and it's the primary storage location for all ISO images, application packages, various other fluff and flutter, and of course, the dumping ground for all test-generated data. Suffice it to say, it's a very necessary system. It's also huge. Housed in a full-tower case with a 500-watt power supply, it's a relative behemoth for what it is -- a file server.
A man, a plan, a NAS
My plan was to shrink that box while maintaining its services. I found my solution in the Cube Station 407 from Synology. This is a really hip little box. About the size of a gallon of paint, the CS407 houses four 3.0Gbps SATA drives, provides a gigabit NIC and a USB port on the back, and sports a nice array of status lights on the front. It's perhaps slightly underpowered, driven by a 500MHz ARM CPU and 128MB of RAM, but given that it's running embedded Linux, that's enough for most tasks. A single large fan at the rear of the case draws air from vents in the front across the disks, and pushes it out the rear of the unit. I've had no problems with heat so far, even with four large disks spinning constantly.
Setting up the CS407 is simple. Toss in some drives (I used 750GB Western Digital disks), plug it in, power it on, and run the included setup CD, which runs on both Mac and PC. The installer finds the uninitialized CS407, creates a small OS partition across a RAID, formats the drives, and installs the OS. After that, all management is handled by a Web interface that is quite functional if not terribly pretty. The CS407 officially supports SMB, HTTP, FTP, AFP (Apple Filing Protocol), and UPnP file sharing, but anyone who knows a little about Linux can enable NFS because the whole system is open. You can easily get a root prompt on the CS407 by installing an OS patch, which is of huge benefit.
But there's more -- lots more. The Synology CS407 can mount an external USB drive and back up the main volume to it on a scheduled basis. This feature uses rsync, so the box also serves as an rsync client and server. It will even spin down the disk when not in use. There are network backup functions that will perform scheduled rsync backups to a network share somewhere, and a recovery feature to restore that data. The SMB file sharing is Samba, and will bind to an Active Directory domain or use local authentication.
Synology includes a BitTorrent client in the standard build, and PC and Mac companion software that runs on your main system to ship BitTorrent links to the system to let it download the files directly. You can even send the CS407 URLs and it will wget files directly to the main volume. The sister to the CS407, the CS407e, can use USB speakers to play music directly from the main volume, and you can plug an iPod into it as well. It runs a DAAPd (Digital Audio Access Protocol daemon) service to stream to iTunes, and can stream content to Sony PlayStation 3 and Xbox 360 game consoles. The Web server on the system is Apache, and it includes PHP.There's even a MySQL installation standard, so the CS407 can run small Web applications. Given the CPU and RAM resources, it's unwise to overload the system, but the functionality is there. There's even a PPPoE client, support for USB printers, and a USB-connected UPS.
Because root access is available and the system is built on embedded Linux, there are other possibilities as well. Synology runs an open-source community site that has packages compiled by users specifically for these systems. I didn't find ccxstream there, so I built it myself, and can stream media files across the network with ease.
I successfully migrated all of my data and services (save one or two) to the CS407 without issue, although it did take a good while to rsync more than a terabyte of data to the system. I'm missing an NTP (Network Time Protocol) server and a DNS server that the old system ran, but those features should be able to be added much the same way I brought over ccxstream, once I have time. In talking to the Synology folks, they seemed very keen on adding these features to the base build as well, so perhaps I won't have to do it myself. If I do, I'll post the packages to their site for everyone else to use.