We considered the nodes as diskless
and we used etherboot to boot them.
Once we have built the server for any number of diskless nodes only the server
needs to be maintained and upgraded when new releases of the operating
system and new applications are available. In addition, the administration of users,
system backup etc. become easier. Finally, adding a new diskless node to the
cluster is a matter of a few minutes.
First we installed RedHat Linux on our server.
The following steps are necessary
in order to add one diskless node to the
1. First we write on a floppy a
small bootstrap code The same floppy can
be used for all the nodes on the cluster. This code boots a very basic
kernel which will be executed at start when the node accesses its floppy.
When exececuted by the CPU of a node, it locates the ethernet card
and uses it to send messages which intend to reach a BOOTP server in the
immediate network neighborhood. If there is a BOOTP server and in the
server's /etc/bootptab file there is an entry for the specific MAC address
of the client's ethernet card with a corresponding approved IP address,
the BOOTP server will communicate to the client node this IP address
and will become this server's client. This means that the client node can
perform tftp (trivial file transfer protocol) functions on the server.
2. The same code on the floppy will
allow the diskless node to
use tftp to get a file with a linux precomplied kernel from the
/tftpboot/ directory. This file's name is given to the client
by the BOOTP daemon which finds it in the /etc/bootptab file.
It then loads this kernel on the node.
3. We created directories for each
node under the /tftpboot main directory
these directories have the same structure as the server's namely
we also create a directory /usr
but it is a link to another directory which we create
The reason for separating the /usr
directory is that it is very large
and it contain write-only files. The directory /tftpboot/nodename/proc is empty.
4. We then copy all the servers
files from the corresponding directories to the
above directories. We then modify the files in the /tftpboot/nodename/etc
directory. We adit the fstab file to nfs-mount the /tftpboot/nodename as /.
in addition we need to nfs-mount the /tftpboot/usr directory as /usr
and the /home server's directory as the /home client's directory.
We then need to edit the files /tftpboot/nodename/etc/sysconfig/network
and to give the write networking information for the client.
5. Next we need to edit in the server's
/etc directory the file exports
and hosts and to give permission to the client to nsf-mount the
For the client to be able to nfs-mount
the kernel which was put in the /tftpboot directory for the
client to get and run should be compliled with the nfs option.
6. We partition the
local disk of each node and we mount it as /local.
On the /local we create directories for each user. This disk can be
used for fast storage instead of using nfs to write on the /home
directory which is slower.
7. We install the PBS (portable batch system) .
8. We installed the MPI (message