Installing and Running on a Linux Server

Installing and Running Family Search on a Linux Server

By Pete Yorke - November 22, 1999

Email [email protected]

Introduction

My wife and I had been called to be workers in the Hayward (Californa) Stake Family History Center because we "knew so much about computers". Not the first calling I had received for that reason! Well, there were other reasons why we were called, too, I'm sure.

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:


The software

Before I talk directly about software, let me say one thing in big, bold letters about the Linux solution I picked. It is absolutely free.

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.


A Word About Linux

A couple thoughts about Linux will make this document easier to read.

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".


The hardware

Linux runs very well on less machine than its Microsoft and Novell counterparts. I already had a Pentium II-MMX 200 MHz box laying around unused, so I pressed it into service. But I could have gotten by with a lot less computer if I had needed to.

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.


The network

My machines are networked together with 10Base-T Cat 5 ethernet. I have a big box of the Cat 5 cable and just terminate whatever length I need. Commercially manufactured patch cables are probably an even better choice because the strands of wire are actually lasered onto the terminators. But they cost more.

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.


Installation

I'm not going to give a blow-by-blow account of the installation process, just the highlights. If people are interested in more detail I will insert that detail into this document.

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.

Disk Partitions

Red Hat uses Disk Druid to partition the hard drives. If you have no need of a RAID array, for instance if you are fitting everything onto one physical drive, then you can ignore devices hdb and hdc in the table and all the references to RAID. Here are the settings I used:

DeviceAmountMount PointTypeComment
hda16MB/bootLinux Native Small partition that must be below cylinder 1024
hda128MBLinux SwapSwap Space
hda1536MB/Linux Native Root (all the rest of the installation)
hdathe restLinux RAIDPool Space
hdballLinux RAIDPool Space
hdcallLinux RAIDPool 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.

Which Packages to Install

I made it easy on myself. I took the choice at the very end of the list that says "Install everything". 1.5GB is plenty of disk space for everything.

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.

Display and Display Adapter

On the one hand nobody in the Family History Center is going to be logging on to your server, so there's not much point in dedicating a lot of time and effort into the display and the display adaptor.

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.


Network Settings - Linux

Linux network settings (like most Linux settings) are kept in disk files mostly in /etc. A very knowledgeable person can just go right to the right file and make what changes need to be made. For the rest of us there is Linuxconf.

Here are a set of settings that work. Note that I am only giving the information that is needed for this solution:

  • Control

    Network Settings - Windows

    The Windows (95) network settings can be found at Start-Settings-Control Panel-Network, Or the "Properties" menu item when right mouse clicking Network Neighborhood. Again, this is what works for me:

    Security

    Okay, I'll admit it. I have built practically no security at all into this system. Everyone logs onto the Windows machines as guest and all the Samba shares are at the share level.

    And, to boot, my root password is....password. Oh well.


    Bindings

    Based on the partitioning scheme for the /pool area, I have created the following drive bindings: Furthermore, when you install Family Search program on W:, using the 'install network' method, be sure and put these drives in.

    For the Future

    Earlier in this document I said I would talk about Apache. Apache is a full-featured web server that comes free with Linux. In other words one of the computers on my network could start their favorite browser and point it to the Linux server and actually get something back.

    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.