Scyld and fstab for Diskless slaves

Erik Arjan Hendriks hendriks-beowulf at scyld.com
Tue Dec 19 08:44:28 PST 2000


On Tue, Dec 19, 2000 at 09:35:36AM -0500, Chip Coldwell wrote:
> I know how to compile a kernel to NFS mount a root filesystem, and I
> have set up diskless clusters using this method; I'm very curious how
> the ramdisk root filesystem works.  Does the node tftp down a
> compressed filesystem image and load it into the ramdisk analogously
> to the root floppies of yore, except coming over tftp instead of from
> a floppy?  Does this require custom kernel modifications, or is it a
> functionality available in stock kernels?

The floppy is really just a generic netboot.  It contains its own
kernel and ramdisk.  It downloads another kernel and another ramdisk.
The download works via TCP because TFTP is flaky under load.  TCP will
fall down too at some point but it will do so later than TFTP and it
was easy to implement for a first cut.

The ramdisk you get from the front end isn't the one you end up
running on.  That one contains enough stuff to get the network off the
ground and start the BProc slave daemon.  Then scripts on the front
end then setup a /dev/ramX device in the same way they would setup a
normal hard disk partition.  This is why it's possible to have
collisions in the fstab with /dev/ramX devices.  Most of the stuff in
the ramdisk downloaded with the kernel is eventually discarded leaving
a megabyte or so of stuff to run BProc and whatever the size of your
ram disk root is.

The tricky part here is that root file system that your processes see
is actually a chroot()'ed environment.  That way nobody has to worry
about switching root file systems (which is tricky if not impossible),
NFS root or anything like that.  (See the last two steps in the
/usr/lib/beoboot/bin/node_up.)

- Erik
-- 
Erik Arjan Hendriks          Printed On 100 Percent Recycled Electrons
erik at hendriks.cx                   Contents may settle during shipment




More information about the Beowulf mailing list