I have been planning to write about my favorite computers of all time and this weekend it became time to write about number three, raven05, which died last week after an incredible 10 years of continuous service.
Back in 2005, when the word "cloud" only meant water vapor in the sky, I came up with the idea of having my own personal computing platform always available to me from anywhere on the internet. I already used a normal web host, but I wanted a server that I controlled completely and that could handle most of my day to day activities.
Since this computer would be on all the time I was concerned about the cost of its power use. Also it was designed to operate where I lived or worked so having it be cool and quiet was a priority. Having already become frustrated with noisy computer equipment, I decided to try to make this computer completely silent. I discovered that some mini-itx motherboards were designed to be passively cooled which means no fan which means no fan noise. Excited at the prospect of a very quiet computer, I built raven05.
Perhaps "assembled" would be a better word since this computer never had a case. It sat on a piece of cardboard on a shelf looking very much like it does here. This computer became my primary computer for ten years.
The mother board is labeled "VIA EPIA-M rev.b" and is a VIA Eden ESP8000 Nehemiah 130nm which means it was released in Feburary 2004. I purchased mine in 2005. It is a silent fanless design and I bought a very small power supply which used a laptop transformer, also silent. The CPU itself is rated at an incredibly low 6 Watts. The total draw of the full system (board, power supply, drives, etc) under normal conditions was about 15W.
This VIA CPU was pretty weak even in 2005 to accommodate the passive cooling. To put in perspective just how weak this machine was, here’s a $34 cell phone with almost as many Bogomips(1024 vs 1200 for raven05). The latest regular desktop computer I built has 6000 Bogomips on each of 16 cores (of course raven05 was a single core).
But I did not consider this machine weak. I used it for:
my email (separate clients for work and personal)
my calendar (plus reminders in crontab)
my technical notes (and everything like that, e.g. projects, recipes, legal documents, etc.)
my programming (cvsroot, Mercurial server)
always running an irc chat client
staging my website
running its own Apache web server for situations where I needed complete control
crawling 1000 blogs for targeted text mining (this ran nightly for 6 years with not a single interruption)
In short, this was my computer.
Because it was such a critical machine, I took extra care with the data. After using the motherboard for about a year, I decided I would invest in learning how to use two disks simultaneously in a RAID1 mirror set up. This means that anything that is written to disk one is simultaneously written to disk two. If either disk fails, the other should allow operation to continue uninterrupted. What’s critical here is that this is not a motherboard hardware RAID feature but rather Linux software raid. Why this is so important can be seen in how this machine finally died.
Here is a close up of the motherboard, power supply, and one of the drives. I always write the date and warranty term on hard drives when I buy them which here shows this drive was purchased in August 2006 and had a 3 year warranty. But the close up shows that the failure was not the drive pair. Both drives are still 100% functional. What failed is the power supply. I was updating the OS and since this machine has always used Gentoo, this entails compiling every bit of code from source. This can take a full day on this machine. In particular, GCC has become extremely bloated and the requirements to compile it have recently become too much for this machine to handle. While compiling GCC (i.e. compiling the compiler) it froze with an out of memory kernel panic error (yes, it had a whopping 256MB of RAM!) and I had to power cycle it.
Prior to that, it had not been down in over two years of continuous operation. When I tried to power it up, however, the power supply was not up to the job and made pathetic ticking noises. If you look at the photo the arrows point to capacitors on the power supply and the motherboard which have popped their tops. They’re designed with those crosses stamped in them so they pop there and don’t explode more violently. When buying computer hardware for longevity, I believe that high quality capacitors are critical.
Now imagine if my data had used some kind of hardware RAID to mirror those drives. With the drives good but the motherboard dead, I’d have been in a real bind. Of course I make off-site backups too but you get the idea. With Linux software RAID, I was able to mount either of the drives with a USB to IDE adaptor using sysresccd. I can’t really continue to use the drives since it’s not really possible to buy hardware with IDE ports any more.
And so, R.I.P. to raven05, a small heroic computer that reminds us of how much can be done with so little if done well.
This weekend I built the new raven15. I had already put together most of the hardware in anticipation of raven05’s senescence. The new machine was also a mini-itx board and though much more powerful, still fanless and silent. (2000 Bogomips on each of 2 processors.) I had been using it as a Minecraft server to test if it was a suitable replacement. It also runs Gentoo with dual RAID1 mirrored drives. The OS drives are mSATA designed for laptop use. I also ordered another pair of drives just to house the content of raven15. Here’s what it all looks like.
The only moving part in the whole thing is the power supply fan (seen in the lower left image). There are 5 drives in total, 2 mirrored RAID1 sets and a 5th for the Minecraft server and possibly other applications. The reason I can continue to use the other servers is that I set this machine up to use Xen virtual machines. This adds another layer of robustness (and, yes, complexity). Instead of compiling GCC on the raven15 VM, I can use a test VM and if it dies with a kernel-panic, no big deal. I can also more easily boot from the RAID1 drive set from any future situation I find myself in. (In recent years some functionality allowing booting of RAID sets with no initrd image was annoyingly removed from the kernel. And let’s not even discuss UEFI and GRUB2 hassles.)
I had to update the Gentoo images which took a long time. I also had to wait for the new drives to arrive (silent SSD and much faster). Then I had to transfer everything to them and get everything working the way I’m used to it. Also the old raven05 was on a shelf in my work office and raven15 will be in my apartment. This meant struggling with all new SMTP mail server settings (if I write you an email, assume Time-Warner will be reading it now).
When it rains it pours, I also had to deal with a new bug in my mail client related to SSL (I filed a bug). I also installed lighttpd instead of Apache and I learned that while it is a fine web server, weird people with very fancy requirements might need to lower expectations, for example no user_dir cgi-bin directories. But finally I think it’s mostly working. If you are reading this, then a new era in my personal history of cloud computing has begun. Good-bye raven05!