It only took about three minutes to figure out that constantly swapping CDs was definitely not the high point of the patrons' experiences. Especially because a lot of them were scared enough just to be using a computer, much less having to monkey with the CD drive. My first long Temple Ready run was excruciating, and I can only imagine what was going through that good sister's mind. Like "How will I ever remember this?".
I called Salt Lake to find out if we were even allowed to network our computers together (after all, the FHC in the Oakland Temple Visitor's Center did it!) and was rewarded a few days later with a draft document describing how to do it. Based on what information I haven't gotten on subsequent calls I was EXCEEDINGLY lucky to talk to the person I did. Those folks seems to have a personal vendetta against us networkers, almost as though we were members of a whole different Church. I guess different people have different ideas of making the kingdom go forward.
I was absolutely determined, regardless of how long it took me, to make my network run under Linux. I had enough spare parts to build a server machine and I wanted to keep Bill Gates out of the Lord's work as much as I could.
Here's how it works:
I chose the distribution of Linux that I am the most familiar with, Red Hat. From when I started this project to when I went live with it Red Hat had gone through more than one release, and we are at the most recent, 6.1.
There is wisdom in this choice; succeeding releases have been much better at recognizing older equipment such as network cards and display cards, and rather than cobbling up my own drivers I found everything I needed on this release.
One other big advantage to Red Hat 6.1 is that it supports software RAID in a very user-friendly way. I have taken advantage of this and will explain how further on.
Red Hat Linux comes with two packages that are important to me, Samba and Apache. Apache I will talk about later.
Samba is the network server part of Linux, and like the rest of Linux it is totally free. Yet it provides the same functionality (and, depending on your sources, better performance) than Microsoft Windows NT and Novell NetWare. It provides both disk and printer services.
Linux is the IBM PC-compatible version of a popular operating system called Unix. In some ways Linux is (or looks like) PC DOS and it's descendants, Windows and OS/2. In other important ways it is very different.
One important difference is the disk directory. In Linux there is no concept of drive letter (the ubiquitous C:). Rather than addressing a disk partition by a letter the partition is "mounted" as a subdirectory of a giant tree that represents all available disk space.
For example, there is always a "root" directory, which is represented as "/" (notice we use a slash, not a backslash). All of the Family Search material looks like it is in the directory "/pool". When it gets trans+lated via Samba into Windows it looks like it's on the H:, I:, J:, K:, L:, M: and N: "drives".
It is obvious that there is no need for the server, while it is sitting there in the FHC, to need a mouse, a keyboard, a floppy drive, a cdrom drive or a display, so in my plan I was not going to provide them. It turns out that Linux does indeed want a keyboard and at least a display adaptor, so that's what it has for now. When I get some more spare (ha!) cash I will put an A-B switch on it so I can share the keyboard, mouse and the actual display with another machine.
As for the cdrom drive, I just plugged one in long enough to install Linux and to copy all the CDs over. I didn't really even need to use it to copy CDs. Once hooked into the network I could have used the cdrom drives of all the other machines, concurrently, to load the CDs. My BIOS is new enough that it supports bootable CDs (the official version of Red Hat is bootable) so I never really needed a floppy drive.
I started out with a Maxtor 10GB drive ($135 at Costco) and soon after added a Maxtor 20GB ($190 at Costco). The operating system, including swap space, takes about 1.5GB. I figured that I should be able to get most of the popular stuff from Family Search on the 28.5GB and then add more disk space as my budget allowed.
Well, I was wrong. As many of you have already figured out, the Ancestral File, IGI and Temple Ready programs are rigged such that it's pretty much all or nothing. You either get it all on hard drive or you get it all on CDs.
28.5GB is still slim, and I told my FHC co-directors that I soon as I could afford one more 20GB drive we would be set. They looked into their FHC budget situation and figured out that they hadn't spent any of their 1999 budget of $175 and would just lose it if they didn't. So now we have 48.5GB, which I hope is enough for all the Family Search stuff and also the newer census stuff that's come available.
To avoid the hassle of getting all the needed CDs on any one disk without crossing over disk boundaries, I have used Linux's software RAID code. With RAID (Redundant Array of Inexpensive Drives) I can make all my data space look like one giant drive of 48.5GB. This was so simple to do I almost hesitate to give instructions. But I will, later.
I think 10 Mbps is probably more than adequate for any family history center. The 'purist' in me demands 100 Mbps, but the four donated machines had 10 Mbps NICs in them already, so I forwent my purism.
Linux does TCP/IP like a duck treads water, and Samba (the networking software) does IPX (which is what Windows 95 is looking for) without even having to set parameters. Actually, no. I did set one parameter, the name of the workgroup. Windows defaults to "Workgroup", so to "Workgroup" so that it would be consistent with Windows 95.
The draft document that Salt Lake sent to me suggests creating a separate subdirectory for each application (/ad = Addendum, /igi = IGI, etc.) and a different drive letter for each subdirectory (h: = /ad, j: = /igi, etc.).
I created the subdirectories in my pool space (/pool, which is where /dev/md0 is mounted) before copying the CDs into their respective directories.
In the Samba control file (/etc/smb.conf) I added a resource for each logical drive I needed (/pool/af = [af], /pool/igi = [igi], etc.). I will talk more about Samba parameters later.
Red Hat 6.1 provides three modes of installation (Workstation, Server and Custom) and two desktop environments (Gnome and KDE). Just by their names one would expect that Server would be the best choice of installation mode, but from what I gleaned from the installation materials this didn't give me the flexibility I felt I needed in distributing my disk space. So I used the Custom option.
The choise of a desktop environment is purely a religious decision. I personally like the Gnome look-and-feel better, but KDE has a strong following. KDE seems to have tried harder to make itself look like Windows, which I find offensive.
Device | Amount | Mount Point | Type | Comment |
---|---|---|---|---|
hda | 16MB | /boot | Linux Native | Small partition that must be below cylinder 1024 |
hda | 128MB | Linux Swap | Swap Space | |
hda | 1536MB | / | Linux Native | Root (all the rest of the installation) |
hda | the rest | Linux RAID | Pool Space | |
hdb | all | Linux RAID | Pool Space | |
hdc | all | Linux RAID | Pool Space |
Once the three RAID partitions are created you can push the button marked "Make RAID device". The ensuing dialog will let you choose all of your Linux RAID partitions. Create a RAID 0 device as /dev/md0. I mount this device as /pool.
That, folks, is all it takes. The installation system does everything else that's needed, including creating the RAID configuration file and starting the RAID process.
If I were inclined to not install some of the packages I would probably pick all the ones that have to do development, rebuilding the kernel, etc.
I would not leave out any packages that have to do with the Internet because I have a special plan in mind that I will talk about later.
On the other had, Linux has some GUI tools that make maintenance very easy.
The installation program should be able to pick out what type of display adapter you have and tell you what it is.
I just choose "generic multisync" as my display type and everything seems to run great.
The installation probe into your hardware may come up with the correct display adapter but it may not know how to use all its capabilities. So if you want to use the GUI tools (I particularily like the GUI version of Linuxconf), go through the display adaptor configuration once more after the installation is complete. This is done by logging on to root and running a program. called Xconfigurator.
One of the things I have to set after the installation is the screen resolution. The installation program sets it at 640x480 and I prefer 1024x168.
Here are a set of settings that work. Note that I am only giving the information that is needed for this solution:
Share | Comment | Directory |
---|---|---|
pool | RAID drive | /pool |
af | Ancestral File | /pool/af |
igi | International Genealogical Index | /pool/igi |
ad | International Genealogical Index Addendum | /pool/ad |
lc | Family History Library Catalog | /pool/lc |
mi | Military Index | /pool/mi |
scr | Scottish Church Records | /pool/scr |
ss | Social Security Death Index | /pool/ss |
IP number | name & aliases |
---|---|
127.0.0.1 | localhost localhost.localdomain |
192.168.0.101 | server server.fhc.net |
And, to boot, my root password is....password. Oh well.
I have started, and will be working on for a while I'm afraid, an online training course that will be available from all of the computers in the Family History Center.
Not only will there be a tutorial for everything a person needs to know in the Family History Center, but there will also be "How do I ..." sections.