(Progress and Summary)
First thing!!!!! This is not meant as a how-to. It is purely a summary of what I have done and what I am working on. It has a few things in it that you won’t find in any how-to I have read and has a few things that might make it easier to setup a cluster if you read this.
1. We (Jason Grace and I) went over to Snell Hall and snagged all the old Dell Optiplex 466/L’s that were over there. We then added the five from the CS department to them and totaled out with around 30 machines.
2. We then went through the machines and found the ones that contained four things: a CPU, memory, network card, and a floppy drive.
3. After sorting them we found we had about 17 that we thought would work.
4. I then found two hard drives that worked one being 2 gigabytes and the other being 500 megabytes.
5. I installed those in one of the machines and upped its memory to 40 megabytes. This machine was to become our central server.
6. I installed Linux RedHat 7.0 on the central server and mounted the 500 megabyte drive as the /home directory.
7. Now install a DHCP server on this machine, but for right now you don’t have to worry too much about setting it up.
8. Next, I downloaded and installed a set of files from the Linux Terminal Server Project, which created the directory structure as well as added the kernel for the remote booting of the machines. I recommend using this as it a lot simpler than setting up the directories yourself and it is mostly busy work anyway. Run the script that comes with it and it creates several files and setups for you. I would advise you to go back and look through these, as they are not all that secure. It also creates a “dhcpd.conf.example” file that is a good start for the setup of the DHCP server.
9. Now I worked on getting the central machine to run two network cards in it. One of the cards is a SMC Ultra, which will be used for the internal network to the other Thin Clients and the other is a NE2000 card that will be used to connect the cluster to the outside network. This made possible by putting and append statement into the “lilo.conf” file, which tells it to initialize the second card.
10. Once you have the second card working go back and edit the dhcpd start script in /etc/rc.d/init.d/dhcpd so that when it runs it has an “eth1” after the command (assuming that your internal network in on the second network card). This will bind it to the second card so that the machine will not answer any external DHCP requests.
11. To test the DHCP server I made a Thin Client Boot Disk and booted one of the other machines with it. I connected them using a crossover cable. The boot up procedure on the Thin Client disk outputs the MAC address of the network card to the screen. I took this and edited the “dhcpd.conf” file to give the computer an entry. Once that was entered in the Thin Client computer received and IP and attempted to download the kernel via tftp. As I had not enabled the server it couldn’t get it and just repeated the attempt over and over.
12. Now I had a little trouble. Most of the How-To’s and such are setup for inetd. Well the newer more secure xinetd doesn’t follow the exact setup that inetd does. Instead it looks in a directory called xinetd.d. Inside there are files for the servers you are wanting to run. Each of those has a setting inside it about if it is running. It took me a bit to realize that tftp’s entry is defaulted to no. After I changed that and “kill –HUP xinetd” then it started working.
13. I have now added a new custom kernel to the thin client directory. This is so that they will boot with it and be better optimized for the processors that are in them.