# How the "gentoo cluster" tutorials' setup works

## feynman

First, my complements to the writers of the following tutorials:

(1)http://www.gentoo.org/doc/en/diskless-howto.xml

(2)http://www.gentoo.org/doc/en/hpc-howto.xml

(3)http://www.neuralbs.com/index.php/Installing_Gentoo_as_a_Beowulf_Head_node

(4)http://www.neuralbs.com/index.php/Gentoo_Diskless_Client

So far, I have found them to be consistent and up to date (2007--could be more up to date, but they seem to work nonetheless.) I will use the above numbers to label the links from which you can find code snippets.

I am having trouble following some of the nuts and bolts of the process/setup. Here are the steps that I do not understand:

(1) 

```
mknod /diskless/192.168.1.21/dev/console c 5 1
```

So mknod makes "character devices"--which I have read are things where you can only write data, not read it (I think.) So is this setting up the console interface?

(1) (in dhcpd.conf)

```

option space PXE;

option PXE.mtftp-ip               code 1 = ip-address;

option PXE.mtftp-cport            code 2 = unsigned integer 16;

option PXE.mtftp-sport            code 3 = unsigned integer 16;

option PXE.mtftp-tmout            code 4 = unsigned integer 8;

option PXE.mtftp-delay            code 5 = unsigned integer 8;

option PXE.discovery-control      code 6 = unsigned integer 8;

option PXE.discovery-mcast-addr   code 7 = ip-address;

```

I have never head of "vendor specific options" and what I found online does not say much about the specifics of this particular configuration. What is going on here? I did not see this step mentioned in (3) or (4). Is it necessary?

Stuff with dnsmasq--found in some links but not others. What is that doing? What files would I have to edit for an equivalent configuration without using dnsmasq?

(4) That whole thing with stateless.sh

What is that? I googled stateless linux, and found some overviews on some stuff redhat implemented a while back. 

(4) Unionfs:

I think this plays into the "what is that stateless.sh thing about." I read that unionfs is this "distributed filesystem" (or maybe it was "shared.") In any case, what is this doing that the whole nfs setup did not take care of?

(1) for client's /etc/conf.d/net file

```
config_eth0=( "noop" )
```

I take it this should be changed to config_eth0="noop" since I remember reading something about those parentheses becoming obsolete after some openrc update a while back. What does noop mean and why is it needed? I recall reading something about noop meaning "the interface is there, but not being used for anything." I remember that in some dhcp configuration tutorial. What difference does that option make during operation?

(1)/etc/init.d/nfs:

```

# Number of servers to be started up by default

RPCNFSDCOUNT=8

# Options to pass to rpc.mountd

RPCMOUNTDOPTS=""

```

Why would I have to specify the number of nodes started up by default? The node sends a request for a DHCP address and stuff to use for booting, the server responds with a DHCP address and stuff to boot with. The node asks for stuff, the server provides the stuff. By "default" the number of nodes to start is zero. What is the meaning of this file?

(4) (node's fstab)

proc                    /proc           proc            defaults        0 0

shm                     /dev/shm        tmpfs           nodev,nosuid,noexec     0 0

What do these two options do? I have a basic understanding of the /proc directory as a kind of list of PIDs corresponding to different processes. The wiki article on tmpfs described it as some sort of temporary filesystem loaded into ram during boot. I recall reading about something like this as necessary in booting modern kernels because they are too large to be handled in the 512bytes of space allocated to a standard boot file. But what is /dev/shm? I have never heard of shm. Also, what is the meaning of these "dump/pass" options and other opts (nodev, nouid, etc)? Is there a consolidated list of these options and what they do?

I know this is a lot of questions, but if there are ANY you might be able to answer, please reply.

Thanks

----------

## machspeed

Hey feynman

In recent months I've been over the diskless howto a few times myself. I'll have a go at answering some of your questions.

Firstly, the mknod command adds a console interface into dev. I've found that this step is unnecessary as udev takes care of /dev.

Next, the vendor specific options for dhcpd.conf. I have not had to use these options, my diskless nodes boot fine so I believe it unnecessary.

Not sure about some other points after this. I have not needed to go near dnsmasq or unionfs.

I am using NFS however and you only need to worry about changing the RPCNFSDCOUNT if you have more than 8 diskless clients. You ponder

the relevance of this against DHCP, this is not DHCP, this is NFSD. From what I understand, you need 1 NFSD service per client. So a count of 8

will allow up to 8 clients.

The fstab options just mount the procs and shm on the from the local machine. This is the same as when we 'mount -t proc none proc/' before

chrooting to build Gentoo. I don't know any more about shm however.

----------

