can be tied to the specific MAC addresses of the cluster members, allowing a fine-grained control and flexibility over who gets which configuration. For example, all cluster members can either run the same software and OS or the cluster can be split to work on different tasks in parallel. This flexibility also allows to integrate different hardware into the cluster.
After the boot loader had been verified to work, I configured a dedicated, efficient minimalistic kernel by leaving out all unneeded hardware options (disks, graphics, etc) and I decided to compile the device drivers and options directly into the kernel, rather then modularize them. That further simplified the setup and the kernel image was still of manageable ~900KB size. I used the 2.4 Linux kernel sources from my SuSe 9.0 installation and also played shortly with 2.6.
Next step was building a small root filesystem image to fit in a compressed ramdisk. Busybox is a embedded Linux solution and the perfect tool providing a mini-root with the most important binaries in one set. It was so small, I could even add all my wanted programs and still size the ramdisk for 64MB, were I am only at 20% usage. 64MB still sounds big for loading it over the network, but the beauty in Linux is that the ramdisk can be compressed with gzip and is decompressed on the fly at load time. 64MB ramdisk at 20% usage compressed to a tiny image of only 4.4MB. Adding more standard Linux programs to the mini-root however was not without its challenges. I.e. I wanted to have the "man" command available and ended up adding quite a number of libraries and programs responsible for various aspects of the modern
|

Colorized display of a normal PXE client boot process, click picture to see full output (1024x768, 48KB). Click <HERE> to see the second stage kernel boot, DHCP and NFS mount
"man" command such as flexible screen formatting (groff and troff packages) or manpage compression (zlib). The other option would have been mounting the rest of the OS via NFS and keep the ramdisk even smaller. I decided to keep the OS in ramdisk to make the clients more independend ... <page 3>
|