Beowulf Installation Guide 2011 (Ubuntu Server 11.04)

Base System
Preparing the base system involves three steps:
 * Installing Ubuntu server 11.04
 * Installing
 * Creating a virtual machine for our server

The base system should be minimal, using a total of ~10GB of space. After initial installation, update the system through aptitude:

Next, install X and Fluxbox for convenience (for managing/debugging the VM later):

Finally install the virtualization tools:

We may now install the server as a virtual machine. (Note: add steps for creating a VM). Once the installation begins, press F4 to select a "Minimal Installation" (JeOS). This causes an absolute minimum number of packages to be installed, allowing us more control over our server.

(Note: partitioning information)

Network Interfaces
Assume that  is the outward-facing (internet) interface, and   is the cluster-facing interface. Open the file  and change it to the following (substituting desired addresses for eth1 -- this example uses network  )

auto lo   iface lo inet loopback

auto eth0 iface eth0 inet dhcp

auto eth1 iface eth1 inet static address 10.0.0.254 netmask 255.255.255.0 broadcast 10.0.0.255 network 10.0.0.0

To apply these changes, enter the command:

IP Masquerading
First, open  and uncomment the line: net.ipv4.ip_forward=1 Next, reload  with the following command: Finally, add the following line to : iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE

DHCP Server
Setup of the DHCP server has changed slightly in Ubuntu 11.04. As a prerequisite, collect the MAC addresses of all nodes that will be on the subnet of the server.

We now need to edit three files:

The first file informs the DHCP server what interface it is listening on. This should be the cluster-facing interface, usually. Therefore  should look like:

INTERFACES=eth1

Next, the main configuration file of the server  must be modified. After editing, it should look like:

ddns-update-style interim; ignore client-updates;
 * 1) See: $ man dhcpd.conf
 * 2) For more information on this file.

subnet 10.0.0.0 netmask 255.255.255.0 {   option subnet-mask 255.255.255.0; default-lease-time 21600; max-lease-time 43200;
 * 1) Create a network 10.0.0.XXX

group {       # Refuse an IP to any hosts that we don't have explicitly listed. deny unknown-clients; # Our server (10.0.0.254) is the router for this subnet. option routers 10.0.0.254; # Specify the St. Olaf DNS servers. # Eventually, we want our own DNS server instead... option domain-name-servers 130.71.128.14, 130.71.128.13, 130.71.128.12; # CST (Time Zone) option time-offset -16000; use-host-decl-names on;

# Define a host within the subnet and assign it a static IP address. host node01 {           hardware ethernet 00:11:22:33:44:55; fixed-address 10.0.0.1 }   } }

Finally, we need to update  to reflect the hosts we added to the   configuration. This allows us to associate IP addresses with hostnames.

127.0.0.1   localhost localhost.localdomain 10.0.0.254  mist.public.stolaf.edu mist admin 10.0.0.1    node01
 * 1) Example from the Mist hosts file.
 * 1) Corresponds to node01 in dhcpd.conf

NIS (Server)
NIS (Network Information Service) is a service to share information across a local network. We use it to share the,  , and   files, among other things. This allows users of the admin node to use the nodes without having to recreate the user individually on each node. The first step is to install the correct packages:

The installation will prompt you for the NIS domain name. This should be helios.public.stolaf.edu, mist.public.stolaf.edu, or whatever the domain name of the server is. After this, NIS will attempt to bind (it thinks that it is a client) and will hang for about a minute. After it fails, we need to modify some files:

NISSERVER=true NISCLIENT=false
 * 1) Note: It seems like NISSERVER should be 'master', but that does not work.

host 10.0.0.1 host 10.0.0.2 ...
 * 1) Note: Every node should be entered here individually for secure use of NIS.
 * 2) host 0.0.0.0

Here is a script to generate the host lines:

How to use (begin = beginning of host range, end = end of host range):

Now we need to initialize the database:

This command will prompt for a list of master hosts, and will automatically enter the NIS domain name. This is the only one that we need, so press CTRL+D to finish. Now that the database is set, we can run the command:

to complete the setup. Finally, execute