This is a pretty specialized, but I thought maybe I'd document it in
case anybody else ever needed to do it. In our smallish beowulf the 20
compute nodes are running Mandriva 2007.0, and they need to get to
2007.1 ASAP because the master node is already there, and there are
backwards compatibility issues with binaries generated on 2007.1 that
need to run on 2007.0. These compute nodes have a floppy (used for
previous initial install on one node) but no CD. On Mandriva 2007.1
there is no floppy boot method for an install, the smallest media the
boot.iso image. Steps 1-4 are all done on the master node. These
normally boot by attempting a PXE load, and if that fails, they boot
from their internal disk. So there was already a dhpcd and
tftp server configured on the master node, and the compute nodes were
set to first try booting MBA. Since all of that was already configured,
it was very easy to add an option to boot the Mandriva 2007.1 installer
- much easier than pulling the node, wiring a CD into it, and then
replacing it.

1. Copy the files to the right place on the master node.
cd /tmp
# obtain the boot.iso, here's one way
wget \
mkdir bootcd
mount -o loop -t iso9660 boot.iso bootcd
cd bootcd/isolinux
cp all.rz /tftpboot/mdv2007_1_all.rdz
cp vmlinuz /tftpboot/mdv2007_1_vmlinuz
cd /tmp
umount bootcd

2. Modify pxelinux so that it knows about these files:

nedit /tftpboot/pxelinux.cfg/default

add these lines

label mdvinstall
KERNEL mdv2007_1_vmlinuz
APPEND initrd=mdv2007_1_all.rdz

and change to this default
DEFAULT mdvinstall

also modify /tftpboot/message.txt to include this new option.

3. modify /etc/dhcpd.conf. This one node was originally
like this (causes it to boot from internal disk):

host monkey01.cluster { hardware ethernet 00:e0:81:22:cc:3d;
fixed-address monkey01.cluster; filename ""; }

change it to this (so it will use pxelinux instead):

host monkey01.cluster { hardware ethernet 00:e0:81:22:cc:3d;

fixed-address monkey01.cluster; filename "/pxelinux.0"; }

Of course, use the appropriate name and MAC for the machine
in question. Then do:

service dhcpd restart

I also restarted xinetd, just for good measure as tftp
runs through that and sometimes after xinetd has been up
for a long time it gets a bit iffy

service xinetd restart

4. Set up routing through the master node so that the compute node
can get to the ftp or http server for its files. I skipped this
part and just unplugged the compute node from the internal network
and plugged it directly into the campus net after step 5. Once the
one node is working it is imaged to the others, so it was easier to
move one plug than to mess about with firewall forwarding rules. On
this cluster normally the compute nodes have no routed access to the
outside world.

5. Plug a monitor, mouse, and keyboard into the compute node,
then reboot it. If everything is set up properly
it will load the Mandriva 2007.1 installer over the network,
and you'll be set to go. In my case, since I skipped step 4,
once the first installer screen came up the network was plugged
into the campus net, and the upgrade carried out.

6. When the installation completes undo the changes to /etc/dhcpd.conf
and restart dhcpd before rebooting the modified node. That way it
will come up in the new OS and not boot the installer again.

I used this method to upgrade from 2007.0 to 2007.1 and it went fine.
The only odd thing, and it had nothing to do with this method, was that
xinetd.d on the cluster wasn't installed quite right, it had most pieces
but not the xinetd binary. A forced reinstall of that one rpm fixed that.


David Mathog