Configuring a home data centerPosted: September 28, 2014
I had this old school thought. I need a 48u rack in the garage. I’ll put a gigabit swatch at the top, and load it up with all these gigabit fast machines, and just party like a data center fool.
Then I went to Fry’s electronics to replace a failed hard disk in a very old Atom based machine. One terabyte, for $59… Because these are tiny little 5400 RPM laptop drives.
This made me rethink my rack madness. First thought, what is storage all about these days? First of all, there’s the cloud, with all its infinite amounts of storage at somewhat reasonable prices (if you’re a business). But, what about the average home user. What do you really store? Well, there’s the Gobs and gobs of images that will never likely leave your phone. Then there’s your aging DVD and CD collection, if you haven’t already gone full over to the streaming side of media consumption. scanned documents? (all 1Gb of them). What else is there? Not much that I can think of really. 1 or 2 terabytes is plenty, and a NAS box that you never think about is probably the best way to go for most of that.
But, I want to do more with the bits and pieces of compute that I have laying around. Alright, so long time back, I purchased two ASUS EeeBox EB1006-B machines. Probably got them off Woot at a decent price. Back then I wasn’t sure what I’d do with them, but I knew cheap was good. I took one and eventually put it in my workshop, just to browse the internet on occasion. The other sat in the box, until just recently.
These little boxen come with 1Gb of RAM, and a 160Gb hard disk. The processor is an Atom N270, with who knows what kinds of graphics capabilities. I upgraded the RAM to 2Gb, because $35. I added the 1 Tb drive, because $59. Now what?
The OS. Well, they originally came with Windows XP, and it didn’t make sense to stick with that particular choice. Nor did it make sense to upgrade to Windows 8.1, because that’s just not a match made in heaven. So, I turned to… Linux. I don’t really know what I’m going to use each box for, but I know that I can pretty much dedicate a single box to each feature I might want. So, the first box I decided will be a proxy server for my home (outbound). I have been playing with proxy servers at work for the past couple of years, so I thought it was high time that I actually use one at home for kicks.
Box1 – After some gnashing of teeth and wringing of hands, I settled on installing Arch Linux on the first box. Why Arch? Because I wanted a fairly minimal install. I’ve installed Ubuntu on various machines in the past, and that’s a good enough environment. Works great with just about any hardware I have. But, for this proxy server, all I need is network and disk drive, and CPU cycles, and that’s about it. I figure an Atom is a good enough processor for the types of proxying that are typical of home usage, so I don’t need some honking beefy server CPU here. The 2Gb of RAM is plenty to hold the OS and most stuff that’s likely to be cached. But, in case I want to cache large chunks of the internet, there’s the 1Tb drive sitting there doing mostly nothing most of the time.
I installed Arch, then I installed; alsa-utils (for audio, which I’m not using)
git – just in case I want to pull down and compile other interesting stuff
openssh – so I can manage the box without having an attached monitor
sudo – so I can sudo
nodejs – just in case I want to run some simple web server
squid – because that’s the actual proxy server that I need on the box
Realistically, I don’t need anything more than SSH and Squid, and if I reimage the machine, which is just a USB stick away, I’ll configure it with just those two packages.
After installing all the stuff, and configuring Squid (primarily cache location, and a couple of acls), I booted up. I started by pointing FireFox from my desktop machine at the proxy. That seemed to work. Then I pointed the MacBook, and that works. Then it was the iPad, which also seems to work. To check and see if things are actually working as expected, I took a look at the Squid access log files, and sure enough, there were the expected entries for the web traffic. Well, big woot! Now I can go through the rest of the devices in the house and start pointing them at the proxy.
Now that the proxy machine is up and running, I can think about doing enforced, automatic proxy settings and the like, just like with big secure companies. Then I want to play with fun ways to visualize the web accesses. It would be really cool if I could integrate with Microsoft’s cloud app discovery service. That would make it extra useful in terms of ready made visualizations.
The machine is nice and silent, just sitting there under a desk with it’s blue power indicator light, silenty proxying the internet. I just put the other machine right next to it. This one I think I’ll go with TinyCore Linux. It’s even more stripped down than Arch Linux. Almost nothing more than the kernel, shell and package manager. But, when you’re going single purpose per device, that’s often enough. For this machine, I’m thinking of making it a git server. It’s a toss up though because my Synology box has git services as well, and for storage related stuff, the NAS is better equipped for dealing with redundancy, failures, and the like. So, if not git server, then perhaps it will become the dhcp server for my network, relieving the router box of that particular duty. Something like a pogoplug might be even more reasonable. Very small compute required to serve this particular purpose. If not, then it might just become a generalized compute node, perhaps server as a Docker thing, or as a TINN experimental server.
Besides these couple older boxes, I have a couple of Odroid XUs, some even more ancient x86 machines, and a beefy server from a bygone era (just put a new modern graphics card in it). Each one of these devices can serve a single purpose. This begs the question for me. Do I need beefy multi-purpose machines in my home data center? I think the answer is, I need a few beefy special purpose machines for certain purposes (storage, compute, graphics), and I need some more general purpose machines to do much lighter weight stuff (browsing, emailing, editing documents).
So, thus far, the home data center has gained a proxy server, recovered from a long decommissioned device. I’m sure more specialized servers will come online over time, and I probably won’t be purchasing that 48u rack.