Installing A Cluster
Network configuration
Head nodes works as NAT for slave nodes
eth0 connects to outside world eth1 is internal
Internal network is 10.0.200.0/255.0.0.0
OS installation
Normal server Linux install with the following packages:
- ssh server
- tftpd-hpa
- dhcp3-server
- nfs-kernel-server
- debootstrap
- libpmi
- mpich2
- slurm-llnl
Grab pxelinux from the web
Setting up a chroot for the node root
The chroot is a directory on the head nodes that hosts the root filesystem that the slave nodes will use. A chroot file system is installed with debootstrap and can be chrooted into so it acts like a standard install.
mkdir -p /nodes/lucid debootstrap lucid /nodes/lucid/ http://backup.iac.isu.edu:9999/ubuntu/ cp /etc/apt/sources.list /nodes/lucid/etc/apt/ cp /etc/resolv.conf /nodes/lucid/resolv.conf chroot /nodes/lucid/ apt-get update locale-gen en_US.UTF-8 dpkg-reconfigure tzdata
More information about chroots, especially helpful locale setup.
In the chroot we want to install the following packages:
- slurm-llnl
- munge
- nfs-common
- openssh-client
- openssh-server
NFS
On the head node, add the following to /etc/exports
/nodes/lucid 10.0.200.0/24(ro,async,no_root_squash,no_subtree_check) /home 10.0.200.0/24(rw,async,root_squash,no_subtree_check)
see man 5 exports for more information. There are also more nfs settings in
/etc/default/nfs-common /etc/default/nfs-kernel-server
Netbooting
Setting up dhcp
Edit /etc/dhcp3/dhcpd.conf as follows:
dhcpd.conf - note comma between dns servers
Edit /etc/default/dhcp3-server
INTERFACES=eth1
This will avoid dhcp serving on the outside network!
service dhcp3-server start
Setting up tftp
Edit /etc/default/tftpd-hpa
RUN_DAEMON="yes" #had problems with inetd in the past OPTIONS="-l -a 10.0.200.1 -s /var/lib/tftpboot"
Setting up nfs
Testing
Scheduler installation
The Quick Start Administrator Guide is very helpful.
- Install
- slurm-llnl
- slurm-llnl-slurmdbd
- slurm-llnl-doc
- mkdir /var/run/slurm-llnl
Munge
Munge is an authentication framework recommended by slurm. All the configuration it needs is:
root@brems:# /usr/sbin/create-munge-key Generating a pseudo-random key using /dev/urandom completed. root@brems:# /etc/init.d/munge start