IRIDIA cluster server daemons
This page contains information on installing and setting up: DHCP, diskless, ...
It is assumed that the servers are running a minimal installation as described in the previous section IRIDIA cluster installing an OS on the servers.
A DHCP daemon should be installed on majorana so that IPs are given to the cluster nodes depending on their MAC address. When installing DCHP notice that the package dhcp3 could give some trouble with the /dev/rtc (real-time clock). However, the package named just dhcp seems to work.
We are not going to go through configuring DHCP here, but you can download a working version of the dhcpd.conf file and add any additional nodes.
Notice that the IPs on the cluster LAN should be assigned according to the following rules:
192.168.100.1: polyphemus (p01) 192.168.100.2 - 99: p02-p99 (diskless nodes) 192.168.100.100: majorana (r01) 192.168.100.101 - 254 r02-r155
Finding the MAC address of a node
The MAC address is a sequence of 12 hexadecimal digits, normally coupled and each couple separeted by a ``: or a space. If you do not have it, you can get it in this way:
On the server, type the following:
tail -f /var/log/daemon.log
Switch on the client and let it boot from the network (it will fail)
Look at the server's screen: it will appear a line like
DHCPDISCOVER from 00:13:16:69:71:fa via eth1
the numbers between from and via are the MAC address.
Install the package called diskless. This package contains tools and binaries for creating a Debian image for the diskless clients.
Create a new image:
For more information on creating see http://wiki.debian.net/index.cgi?DiskLess
Compiling a new kernel for the diskless nodes
On majorana, download the source code of the kernel which you installed. It should end up in /usr/src. Now use the config file of the kernel you installed on majorana (see IRIDIA cluster installing an OS on the servers) found in /root/.config to compile a kernel for the diskless nodes.
cd /usr/source/[kernel-dir] make menuconfig exit copy /root/.config . make menuconfig
At least four options should be changed, don't use modules, compile everything into the kernel:
- Initial ramdisk (initrd) should be disabled in device driver -> block devices)
- Mount NFS as root:
- Enable File systems -> Network File Systems -> NFS file system support
- Enable File systems -> Network File Systems -> Root file system on NFS
- Assign IP address at boot time:
- Enable Device drivers -> Networking Support -> Networking Options -> IP: kernel level autoconfiguration -> IP: DHCP support
- Compile GigaBit network driver into the kernel:
- Set: Device Drivers->Networking support->Ethernet (1000Mbit)-><*> Intel(R) PRO/1000 Gigabit
Furthermore, the kernel needs a slight change in the source code, so that the kernel requests an address via DHCP after during load:
In net/ipv4/ipconfig.c change:
int ic_enable __initdata = 0; to: int ic_enable __initdata = 1;
You are know ready to make a .deb package containing the kernel image:
make-kpkg --append-to-version -dc kernel_image kernel_headers
Now you are ready to install the new kernel in the diskless image. The following sequence of commands should do the trick:
cd /usr/src mv *deb /var/lib/diskless/defaut/root/root chroot /var/lib/diskless/default/root/ cd root dpkg -i *deb exit
Whola! The new kernel should be installed in the diskless image.