Writing

Feed Software, technology, sysadmin war stories, and more.

Sunday, May 29, 2011

CD Towers on a shoestring budget

There was a point where I was a lone sysadmin for a big academic network. I used to keep tabs on it at all hours, and I would sniff around, looking for oddities. One night, I found something new answering on port 23 and it lead to a whole new software project: the CD Towers.

It started with a port scan. I was looking for new things which had appeared on the entire organization network, in case someone had plugged in an access point, misconfigured a printer, or whatever. Maybe I was just bored. All I know is, I found something which hadn't been there before.

MESA 2.0.20 (xyz-cdt1.academic.domain.name) (ttyp0)
 
login:

MESA? 2.0.20? It might have claimed to be those things, but that looked like a Linux telnetd to me, possibly Slackware-flavored. The version number was about right for the time (1998). I figured this must have been something new and interesting, and started poking around. What I really wanted to know is if someone had just filed off the name "Linux" and put in "MESA".

Linux 2.0.20 was vulnerable to a network attack called "teardrop". I hit this so-called MESA box with it. It died. Obviously, it was Linux. Some kind of watchdog rebooted it not too long after that, and it came back online, but now I knew something new was in fact on my network (and I hadn't heard about it ahead of time).

A couple of days later, I found out what it was all about: one of the middle schools had one of these systems installed as a test to see if it was worth pursuing in other schools. It was turning out to be a big help for the teachers, since they no longer needed to wrangle physical media and could just point kids at the network path and it would Just Work. Discs would no longer be lost or destroyed, and getting the class going was faster too.

There was just one problem. These things (Procom CD-FORCE, as I later discovered) cost in the neighborhood of $3000 each, and they didn't have that kind of money. There was also some kind of limitation keeping them from using FCC E-Rate money (that "Universal Service Fund" thing you might have noticed on your phone bills) for funding them.

Given that this was just a Linux box with some custom glue on it, I said, hey, let me take a whack at it. It's probably just some magic to pull the image off a CD and store it on a (relatively large for the day) disk, mount it over loopback, and configure Samba to share it out, right? How hard could that be? They agreed to let me try, and I took home an old classroom machine as my test bed.

A couple of days later, I had a program in place which would do all of the ugly work, right down to opening and closing the tray so it would be obvious when the user was expected to do something. It was a simple little hack using dialog on Slackware and some custom code to copy CDs and mount their images. Everything else was already there: a DHCP client, Samba itself, and so on.

Even though the demo machine was based on slow hardware, it showed the concept, and they loved it. I got the go-ahead to design a full solution including a hardware spec and create an installer for it. Not too long after that, the first systems started arriving from our local "screwdriver shop" hardware vendor, and I got to work.

I wound up creating an installer script which would sniff out the hardware on the machine and figure out how many disks it had and how big they were. It then had to partition and format them and set up the fstab and md (software RAID) stuff properly. Then it had to install Slackware on top, and finally add my custom UI gunk on top of that. This all had to happen with no help from me, and no input from the users, since it was going to be installed by people who were not comfortable with anything other than Windows.

These days, it's no big deal to have a bootable CD or something like that. Back in 1998, it was not nearly as trivial, so my solution was a single boot floppy which had enough Linux on it to mount root over NFS and run the previously-described installer script. That script would then take it the rest of the way, and at the end, it would say "eject this floppy and reboot me", and that would be it. It was a CD Tower.

They wound up using this installer disk to build 20 machines in total, each one only costing the $1000 or so for the actual hardware. The software was "free" since I was already working for them. That's a savings of $2000 per machine, or about $40,000 total -- not too bad for a few weeks of gluing things together.

In later years, more features were added, like being able to turn around and push a CD image back out to a writable disc. This meant writing code which would auto-detect a CD-R drive and would then enable another option in the menu system. It was used a few times when the original media had been lost and they needed a new master copy.

I wonder if those systems are still out there, serving up Kid Pix and other educational software to the kids of that school district.