Next Previous Contents

4. Set up and configuration

4.1 Disk configuration

This section describes disk partitioning strategies.

farm/cluster machines:

hda1 - swap  (2 * RAM)
hda2 - /     (remaining disk space)
hdb1 - /maxa (total disk)

desktops (without windows):

hda1 - swap  (2 * RAM)
hda2 - /     (4 GB)
hda3 - /home (remaining disk space)
hdb1 - /maxa (total disk)
hdd1 - /maxb (total disk)

desktops (with windows):

hda1 - /win  (total disk)
hdb1 - swap  (2 * RAM)
hdb2 - /     (4 GB)
hdb3 - /home (remaining disk space)
hdd1 - /maxa (total disk)

laptops (single disk):

hda1 - /win  (half the total disk size)
hda2 - swap  (2 * RAM)
hda3 - /     (4 GB)
hda4 - /home (remaining disk space)

4.2 Package configuration

Install a minimal set of packages for the farm. Users are allowed to configure desktops as they wish.

4.3 Operating system installation

Cloning

I believe in having a completely distributed system. This means each machine contains a copy of the operating system. Installing the OS on each machine manually is cumbersome. To optimise this process, what I do is first set up and install one machine exactly the way I want to. I then create a tar and gzipped file of the entire system and place it on a CD-ROM which I then clone on each machine in my cluster.

The commands I use to create the tar file are as follows:

tar -czvlps --same-owner --atime-preserve -f /maxa/slash.tgz /

I use have a script called go that takes a hostname and IP address as its arguments and untars the slash.tgz file on the CD-ROM and replaces the hostname and IP address in the appropriate locations. A version of the go script and the input files for it can be accessed at: http://www.ram.org/computing/linux/linux/cluster/. This script will have to be edited based on your cluster design.

To make this work, I also use Tom's Root Boot package http://www.toms.net/rb/ to boot the machine and clone the system. The go script can be placed on a CD-ROM or on the floppy containing Tom's Root Boot package (you need to delete a few programs from this package since the floppy disk is stretched to capacity).

More conveniently, you could burn a bootable CD-ROM containing Tom's Root Boot package, including the go script, and the tgz file containing the system you wish to clone. You can also edit Tom's Root Boot's init scripts so that it directly executes the go script (you will still have to set IP addresses if you don't use DHCP).

Thus you can develop a system where all you have to do is insert a CDROM, turn on the machine, have a cup of coffee (or a can of coke) and come back to see a full clone. You then repeat this process for as many machines as you have. This procedure has worked extremely well for me and if you have someone else actually doing the work (of inserting and removing CD-ROMs) then it's ideal.

Rob Fantini has contributed modifications of the scripts above that he used for cloning a Mandrake 8.2 system accessible at http://www.ram.org/computing/linux/cluster/fantini_contribution.tgz.

DHCP vs. hard-coded IP addresses

If you have DHCP set up, then you don't need to reset the IP address and that part of it can be removed from the go script.

DHCP has the advantage that you don't muck around with IP addresses at all provided the DHCP server is configured appropriately. It has the disadvantage that it relies on a centralised server (and like I said, I tend to distribute things as much as possible). Also, linking hardware ethernet addresses to IP addresses can make it inconvenient if you wish to replace machines or change hostnames routinely.

4.4 Known hardware issues

The hardware in general has worked really well for us. Specific issues are listed below:

The AMD dual 1.2 GHz machines run really hot. Two of them in a room increase the temperature significantly. Thus while they might be okay as desktops, the cooling and power consumption when using them as part of a large cluster is a consideration. The AMD Palmino configuration described previously seems to work really well.


Next Previous Contents