For some reason I got this momentum going in December, and rather than let it flag I keep driving it forward through the various projects facing me. I have an endless list of the stupid things, and I'm not sure about what drives me to carry out one project over another. I cleaned my entire basement because my desk was messy - where's the logic in that?
But whatever causes these projects to pop up in my queue - a few years ago I spent a week steaming wallpaper off the basement walls without any idea why that project had suddenly become the most urgent - I'm now elbows deep in my latest: replacing my Linux fileserver. I'll try to keep the geek quotient to a minimum, but you have been warned.
The idea behind having a file server is to have a central household repository of information. For example, I want to put all our digital pictures on it with some mechanism to make them easy to browse: digital photo albums with which we can torture guests who overstay their welcomes. Also, I'd like to serve audio and video files from it: pull up any song or video that we own from anywhere in the house. Finally, I'd like to be able to back up all of our home computers onto it.
The idea behind having it be Linux is primarily because I need to keep my Linux skills sharp. That's half the reason I do half the things I do around the house, computerwise: just to keep my hand in. You let these skills go for too long, they fade, and you find yourself replaced on your job by some kid whose first computer was a Pentium 2 processor and doesn't remember any presidents except Clinton and Bush Jr. So rather than setting up an all-Windows household (which bears its own risks), I deliberately make my life difficult so that I can learn from it.
Anyway, my current Linux fileserver used to be my Linux firewall, but I replaced that at the start of this project. Right now the Linux box receives and sends mail, serves the web pages you're reading, and stores my unix archives from many years. However it's rather old and about 50% likely to have already been rootkitted (translation: taken over by hacker software), and everything on it is in need of upgrade. So I bought a new one to build from scratch, leveraging lessons learned in the interim. This makes the upgrade easier, since I can switch between the new and old fileservers at will.
I'm setting up the new server with RAID 1 (translation: mirrored drives [translation: it has two hard drives in it that both contain all the information on the computer, and it reads and writes from both of them simultaneously]). The idea behind this is that if one drive blows up, you don't lose anything. And since I want to store EVERYTHING on this computer, that kind of reliability is important.
Actually, it's kind of amazing: I build a 3.4 GHz Intel SATA RAID computer with dual 200 G hard drives and a Megabyte of RAM for under $1000 dollars. (Translation: I got a big fast computer, cheap)
So okay, I'm setting up this computer, and I run into some problems.
First is this thing called SATA RAID. Don't worry about what it means, it's not important. The important part about it is that I tried to get it to work with Linux, and it wouldn't. In trying to figure out the way to make it work, I discovered that it's junk. Apparently even if it worked with Linux, the SATA RAID doesn't work as well as the RAID that's built right into Linux itself, so despite having purchased this computer specifically with SATA RAID, I'm not going to be using it.
So I start trying to set up the built-in Linux RAID, and immediately suffer a lethal case of deja vu. See, I've done this before, more than once. Unfortunately, each time I've done it the period between installations has been so long that I forget everything I learned the last time. Its been four years since the last time, and I indeed had to re-learn the whole process again.
There are lots of tricks to it, most of which would defy non-geekly translation here. One is "partitioning", which is kind of like internal walls built into the Titanic that were supposed to contain water entering the ship through the hull. It works about as well as the ones in the Titanic did, too. Well, setting up those partitions is part of the RAID process, and as the RAID process is itself rather tricky, partitioning RAID is doubly tricky.
The other problem is this: with mirrored drives, you have to tell the computer "Read and write everything from both drives at once." This is exactly as if you put two blank books in front of someone, and expected them to read and write out of both books at the same time. The catch is, that the instructions to read and write in this manner have to be written in the books.
Now, if you have no other way of telling the reader that they need to read and write from both books at the same time, what is that reader going to do? That's right: pick one of the books, and open it first.
So there's no way to COMPLETELY mirror the drives, because you have to put the instruction "Use Both Books At Once" into just one of the books. (Just accept for a moment that you can't put that instruction in both books - you have to specify which book to open first).
So ONE book is "more equal" than the other. The problem? If that book - if that hard drive - is the one that blows up, well, you don't lose any information... but your computer doesn't start. Well, I'm picky - not only do I want to not lose any information, BUT I also want my computer to keep working, completely, if EITHER hard drive blows up.
So it took me forever to come up with something that would boot. First I tried to use the SATA RAID (as mentioned), then when that didn't work I tried to set up Linux' built-in RAID. I thought I did everything correctly, and I had, but then I figured out that I hadn't turned off the computer's setting to use its built-in SATA RAID. When I did that the computer booted. But by the time I'd figured that out, I'd tested so many different configurations trying to fix the wrong problem, that I had the system in a configuration I didn't really like.
So I started over, reconfigured the system again, tried a couple things that didn't work, and finally got the system up and running at 2:00 a.m.
Unfortunately one of the last setup steps is to configure your monitor. The installer said "860X600" which is pretty small, and showed a picture of a montor with only a small box in the center illuminated. I grabbed the control lever and pushed it all the way to "11", which then showed a monitor fully illuminted. I clicked "GO".
My monitor went black, and a little floating window said "Frequency over range."
Great! Now I couldn't see my screen! How could I fix it?
Ah, but this is a Linux box! i can log in remotely!
I logged into the box from another computer, and realized I was facing a problem that has plagued my entire computing career.
I have no idea how the Linux graphical interface (called "X", conveniently) works.
You'd think I'd've figured it out by now. It's decades old but it's still around, which in computer terms is like finding a trilobyte in a suit working the window at the post office. So with all this time to decypher it's workings, I never have. "X" continues to befuddle and elude me, and never more so than tonight. Addled with fatigue, I poked and prodded at several likely configuration files, and managed to lock up my computer.
Great. Reboot, try again. And again.
And now I reboot... and the computer won't reboot. It tells me that the hard drive partition -- the instruction in the book that says "Read and Write Both Drives"? -- has crashed. Unrecoverably. Kaput. My primary fear regarding this kind of disk setup, and I hit it after only ten minutes of operation.
So here I am, reinstalling the operating system... AGAIN. It's 3:00 a.m., and if this thing boots when I'm finished I'm going TO BED.
But I'm LEARNING. That's the important part. I'm keeping my skills sharp! No upstart 22 year old who doesn't know George Bush's father was also president is going to steal MY job away from me.
Unless, of course, he knows how to fix broken "X" configurations without destroying his root partition...
Posted by Albatross at January 16, 2005 3:03 AM