Booting up the CD

From Bootable Cluster CD

Well, now that you've followed Burning the BCCD to CD and have your very own version of the BCCD, how do you boot the thing up? Below is a brief tutorial to help you get started.

0. Understanding the motivation of the BCCD

The zeroth step that you need to understand is one of pedagogy. The BCCD image was put together for supporting high-performance computing education. Therefore you may find some configuration steps not automated for educational sake. If you would like a quicker, more configuration-specific way to boot up the BCCD, check out the new BCCD Bootup Modes.

1. The splash screen

Below is the initial BCCD splash screen, which is the first thing you should see booting from the CD. Pressing F1 displays the current screen. Pressing F2 displays a brief message about copying. Pressing F3 gives you different advanced bootup modes. For the sake of simplicity we won't discuss any of them in this tutorial, but instead you can learn about them in BCCD Bootup Modes.

 The bootup display for the BCCD

You should notice that there are different framebuffer modes. Type the number of the framebuffer mode you would like the BCCD to boot up with (number 1-5), and then press enter. These correspond to different screen resolutions. The BCCD should then begin to boot.

Note: If you don't press anything at the boot up screen for a certain amount of time, the BCCD will automatically begin booting with a framebuffer of 4. Similarly, if you want to use the default of 4 (1024 x 768), just hit enter and that will load by default.

2. Entering a password for the default user

At this point, a lot should be scrolling past on the screen. The BCCD takes care of a lot of complex configurations without you needing to, so you don't need to worry about most of it. As long as you see the logo in the upper left hand corner, you should be good. If there's an error at some point, you'll know it from the output. Otherwise, just sit tight and wait for when it needs your input again.

When it gets to it, the system will wait for the user to set the password for the default user bccd. You will be prompted for the same password twice before the system continues. This password can be anything - even empty. Of course, if it's empty, don't expect to be able to SSH into it! (This actually makes a blank password more secure than any other password in some respects.)

 Entering the same password twice

3. Setting up the network

Before you are able to log into the system, you will be prompted to configure the network. Configuring the network should be relatively straight forward if you know some aspects of your environment in advance, such as:

  • The brand of network card(s) in the system, and the name of the Linux drivers for those cards.
  • If the DHCP service is available to systems on your network.
  • A static IP address, netmask, route, gateway, the IP address for a DNS server, and broadcast address for the local host and network.

However, if you don't know some (or all of these) - don't worry. The BCCD should take care of all of it for you. The process is very straight forward, thanks to the trivial-net-setup script written by Seth Schoen. You should see a screen very similar to the one below. Select the OK button.

 Welcome to the trivial-net-setup program

The trivial-net-setup script will do a thorough scan of your system and detect available network cards. Once again, select the OK button.

 Displaying the network cards found

Once a network card is detected, it's time to chose a corresponding network driver. If you know which driver you need, go ahead and select it from the list. Otherwise select auto from the list to have the setup script attempt to load drivers until a successful match is found.

 Selecting a network driver from the list

Once a satisfactory driver is found, you will see an informational screen like the one below. It will tell you what driver has been selected. (If you want to speed up the process next time you load the BCCD, remember this driver and you'll be able to select it next time.) Select OK to continue.

 Displaying which driver was selected

Now we will begin configuring the actual network. Select OK to continue.

 Select ok to configure the network card

Now we have a choice to configure the network statically or using DHCP. DHCP is the preferred approach to setting up your network. If a DHCP server is not available to you and you're on your own private network, consider configuring one of the BCCD systems as you DHCP and DNS server (again check out the BCCD Bootup Modes to see how to do this). Otherwise, to configure the network statically on your own, select NO here. You will then have to answer a few questions about your own IP, your DNS server's IP, and the IP of your network gateway.

 Prompting to automatically configure the network card

If all goes well, you should see the below message telling you that your network was configured correctly. Select OK to continue.

 Success at automatically configuring the network card

Note: If you instead got a message about the nameserver not resolving to ip numbers, read Configuring Reverse-DNS on a Static Networking on Customization Tips and Tricks for help on configuring reverse-dns.

4. Log in

After setting up the network, you are ready to log into the system. At this point you may either log into the system as the user root with the password given on the login screen or the user bccd with the password you specified earlier. (If you used a blank password for BCCD, then just hit enter at the prompt.) Logging in as the user bccd is recommended in most cases. Only log in as root to reconfigure the configuration settings.

 Logging into the system

5. Start the public-key broadcasting process

MPICH, LAM, and PVM all require certain abilities of the environment. One of these demands is the ability to execute certain commands on remote machines without requiring the user to input his or her password. These commands relate to the creation of processes, the administration of cluster-supporting daemons, etc. The BCCD extends the ability to execute commands on remote hosts via ssh keypairs. When the system boots up, ssh key pairs are generated for the host computer and for the default user, bccd. The pkbcast process broadcasts the public keys of the bccd user. If a remote user accepts these keys in an appropriate way, the local bccd user can leverage the corresponding private key (which is not disclosed) to execute commands and gain access to the remote machine. Using the pkbcast approach, hosts booted with the BCCD on the same network can be located and brought together into a single computational environment.

When you log on as the user bccd, the following screen will automatically appear asking if you would like to broadcast your public ssh keys over the network. This starts the pkbcast program in the background. Select Yes.

 Starting the heartbeat process

Starting up the pkbcast program does not give you access to any remote machines. The purpose of the pkbcast program for remote users to selectively give you access to their resources.

Starting the pkbcast program is one part of a two-part process. The other part, already mentioned, is to place the public keys for trusted users (the users the you trust) where ssh looks for them. This is now automated by a script. First (optionally), make sure that all the public keys you've received are authentic. pkbcast stores the public ssh keys that it reads in from network broadcasts in the directory /tmp, under the directory name corresponding to the user (bccd), and in a directory name corresponding to the dns name of the host that broadcast it. To see the keys that have been collected, cd into the directory:

cd /tmp/bccd/<specific_hostname>/

Inside of this directory, you should see public keys with a .pub extension. Review each of these keys and verify their authenticity.

Next, to automatically accept all public keys, type:

bccd-allowall

Note: If for some reason you would like to deny all public keys, type:

bccd-denyall

6. Generating a hosts file

The approach described above for accepting hosts keys can also be used to generate a hosts file for MPICH, PVM and LAM multi-environments. When the hosts accepted by the bccd-allowall command (which are listed in /tmp/bccd/) correspond to hosts that you would want to use in your distributed environment, you can issue:

bccd-snarfhosts

This will generate a listing of all hosts on the network that are running the BCCD in a file called machines. To review this file, simply return to your home directory and view the new file named machines.

7. Starting the X graphical environment

To start the X graphical windowing environment, issue startx at the prompt as shown below and then press enter.

 Starting up X

When X starts up, you should see a graphical environment similar to the following:

 The X environment

Congratulations! You've successfully booted up the BCCD. Where to go now? Check out some of the wiki pages below:

  • Compiling and Running: Compiling and running your MPI programs
  • Debugging Tools: Using the debugging tools on the BCCD, such as
    • upshot
    • mpilog, mpitrace, mpianim
    • xmpi
    • xpvm
    • gdb, electric fence, and ddd
  • About openMosix: Using the openMosix paradigm on the BCCD is easy! See how here.
  • Using PVFS2: A short walk-through of using the BCCD to support or access PVFS2 filesystems
Personal tools