Umm, are you gonna eat that??

Posted on December 19th, 2008

This past weekend I decided I was going to finally take on a little homebrew project that I’d been kicking around in my head for quite a while, but just never had the physical resources to get done. I was going to take an otherwise worthless computer with hardware dating back before the turn of the century, and use it as a NAS.

Now, like anyone here at SevenL can tell you, I’m rather good at MacGyver’ing random bits of stuff together and making it actually work in some sort of inexplicably stable fashion.

So, aside from my work here at SevenL, like many geeks, I’m “that computer guy”. Y’know, that guy that your sister’s boyfriend’s cousin’s friend knows that is “good with computers”? So usually I’m able to make a quick couple bucks doing simple tasks like reinstalling an OS, defunking a desktop that’s riddled with malware, replacing hard drives, etc. However not only do I make some money…I usually end up “adopting” old hardware as a result, and sometimes it actually still works and is quite serviceable.

On that note, I managed to cobble together an old Pentium 3 system that had a 733MHz processor, half a gig of RAM and a total amount of 120GB storage space. Many would see a machine like this and wonder why I’m even bothering…but thanks to the miracles of Open Source software, we can repurpose this machine in more ways than I could possibly describe. However in the interests of this blog post, I am going to try.

So what then, can we do with the example hardware specs I gave? Well, in my case, I am building a NAS using NetBSD, software RAID and Webmin for a nice little web-based management utility. However the possibilities are endless.

Here in our offices even, we have repurposed old servers to serve as routers, NAS devices, network monitoring devices and even a MythTV-style media server so that all of us in the Sysadmin bullpen can have some tunes to listen to while we work. We also have had older hardware serving us as a mail server, an office NAS, and several other handy little tasks.

One thing you can do is turn an old machine (and by old I mean you could even use an old Pentium II for this.) into a router that would probably put that little box under your desk to shame with the functionality you can cram into it.

The crux of all these applications of course, is Linux and/or BSD. Open source Operating Systems are what make things like this possible. And BECAUSE it’s open source, people have been able, over the years, to adapt these OSes to very specific, single-application tasks, like routing, NAS, security testing, email serving, and so forth.

For instance, if you were going to take an old machine like I described and build a router out of it, you would use either m0n0wall, smoothwall, ClarkConnect, IPCop or Vyatta (to name a few) as your choices of Operating System. These distributions are all written with the specific purpose of performing the same tasks using the same featureset as an enterprise-class router, Vyatta even bills itself as “The Open Source Alternative to Cisco”, and can even make use of BGP, the core routing protocol of the Internet itself. Now, if you wanted to be REALLY geeky, you could do what we did for our new BGP Backbone here at SevenL, and just build a couple of Gentoo and OpenBSD boxes and install some routing software like Quagga on them, but not everyone enjoys doing THAT much tinkering (not even me, sometimes. ;) ).

The beauty with these specialized Operating Systems is that they are usually quite intuitive. All of them work pretty much the same way any OS does in terms of installation, Pop the CD in, reboot, follow the menu-driven installer. And all of them, of course, have a nice Web GUI for you to use to administer your new router once you’ve installed the OS. And being that it IS Linux, it will run on pretty much anything, and work with just about any network hardware ever created.

So what if you don’t want to build a router? what if you don’t have a bunch of old LAN cards sitting about that you don’t know what to do with? What if instead you happen to have some old hard drives hanging around? Well then, put ‘em to use! Build a NAS.

Building a NAS is dead simple. If you’re even a novice Linux user you can do this, because a NAS, really, is just a standard linux install with some file sharing utilities tacked on. You don’t even need a fancy Linux or BSD distro to handle it all (Though if you want a great “out of the box” solution, FreeNAS is dead-easy to install and administer).

Right now, I’m building a NAS box myself. I WAS going to use NetBSD as the OS, but that has proven to be troublesome, as NetBSD is still one of the few Open Source Operating Systems that has not caught onto that whole trendy “user-friendliness” thing yet. So instead, I have decided to use my new favourite Linux distro, Arch Linux. Arch is great because it combines minimalism with amazing package management and a great user community, even if you don’t start with a GUI environment post-install…it’s as easy as pacman -Sy gnome or pacman -Sy kde4, the only Package management I have seen to date that can best pacman, is Debian/Ubuntu’s APT.

But I digress. I think the point I’m really trying to get at here, amongst this meandering, slightly scatterbrained palaver of a blog post, is that old hardware shouldn’t just be immediately thrown away, because with a little work, it can be repurposed and put to work once again as if it had just come out of the box. To wit, many a server monkey such as myself have put old servers out to pasture as Switches, Routers, NASes, or other assorted network devices. If only to save the company a few hundred bucks on a brand spanking new proprietary solution. On that note, I will end this post by saying two things:

1. Expect to see some tutorials from me on setting up some of this stuff in the very near future.
2. And as always….