|
Building A Diskless Folding @ Home Farm
Project: Folding @ Home
Date Written: November 25, 2002
Written By: Jason Rabel
Getting Started:
When setting up my farm, I came across having to make a decision to either have each client machine make a RAMdisk big enough to hold the F@H files and fold from there, or to each use their own NFS mounted directory and work over the network. Changing the size of the RAMdisk from the kernel's default meant having to compile a custom kernel, which I really didn't want to do, also if a system lost power, all the work in progress would be lost. Running over the network really isn't as bad as it sounds. The F@H client only writes data when it finishes a frame, and it is a very small amount of data at that. Also if a client looses power or locks up, the data is safely stored on the server and it can resume where it left off. Also having all the files in one central place makes it much easier to maintain and monitor. Since the farm is also on its own physical network, it shouldn't interfere with your local network at all except when it is having to send / receive WUs.
My setup that I will be going through in this article revolves around Red Hat 8.0. LTSP actually supports 6 different Linux Distros, so if you feel more
comfortable with a different one, you can use it just as easily. The
configuration files used in this setup are pretty common across all distros.
Also, to save space I'm only going to list the first couple client machines in
configurations, adding more clients should be as simple as copy & paste then
incrementing the numbers.
If you plan on building you farm out of what you have just laying around,
then I would pick the most powerful machine to be the Farm Server (it can still do
F@H so don't worry), or if you are planning on purchasing identical hardware
for your farm you can use one of those machines just as easily, all you need is a
decent sized hard drive (5-10GB should be more than enough), an extra NIC (to
connect your two networks), and I would spring
the money for a little extra RAM (256MB should be plenty).
The first thing I did was to do a pretty bare install of Red Hat on the Farm
Server. The install process is pretty basic, if you need help getting it
installed there are plenty of
guides on the net to show you how. The only difference I did from the standard install is that I manually configured my NICs (usually they default to DHCP). I configured both NICs with static IPs, the
first NIC was an IP within my current home network, and the second NIC was for
the farm network and had the IP 192.168.2.100. Refer to the picture in the introduction for how my IPs are setup.
Next I made sure I had the following services installed:
- bind
- dhcp
- nfs-utils
- tftp-server
- portmap
To check and see if they are installed, you can issue the following commands,
and they should return the version that is installed:
[jason@PE1400SC root]$ rpm -q bind
bind-9.2.1-9
[jason@PE1400SC root]$ rpm -q dhcp
dhcp-3.0pl1-9
[jason@PE1400SC root]$ rpm -q nfs-utils
nfs-utils-1.0.1-2
[jason@PE1400SC root]$ rpm -q tftp-server
tftp-server-0.29-3
[jason@PE1400SC root]$ rpm -q portmap
portmap-4.0-46 |
If you are missing one or more packages, you can use the Red Hat up2date
program, or you can find and install them from Rpmfind.net. Be sure to pick the proper files for your distro.
Once you have verified that you have the necessary services installed (but not started), you can
go ahead and install the LTSP RPM files. I have a mixture of NICs that I use in my farm,
including some Intel NICs, and onboard NICs which boot via PXE (slightly different than the
regular DHCP process), I installed those files too, which the GZip includes a
README on where to put the files and the extra configuration necessary.
The
Download Page @ SourceForge has all of the following files, and much more
should you need them. *Note - There might be slightly newer releases depending
on when you read this article, so the version numbers might not match up 100%.
Download the files to a directory on the Farm Server then install them via the
regular RPM install process. Also, I don't know if you can just do a *.rpm to
install them, I didn't try that, instead I installed the files in that order (there are only 3 of them so it's not that big of a deal),
and uncompressed the extra PXE file. One of the files says "local
apps" in it, but you aren't going to be running anything locally really,
there are files that it has for DNS resolution that the clients will need, I had
that hardest time with the clients resolving DNS names until I found a random post while searching
the net which said to try and install that RPM, and sure enough things started
working after that. You can fully configure the local apps part if you want to be able to telnet to the clients and such, but for this folding project it really isn't needed.
- ltsp_core-3.0.7-0.i386.rpm
- ltsp_kernel-3.0.5-0.i386.rpm
- ltsp_local_apps-3.0.0-0.i386.rpm
- pxestuff-3.0.5-i386.tgz (*Note - Only needed if you are going to use NICs
that boot via PXE)
[root@PE1400SC root]# rpm -ivh ltsp_core-3.0.7-0.i386.rpm
[root@PE1400SC root]# rpm -ivh ltsp_kernel-3.0.5-0.i386.rpm
[root@PE1400SC root]# rpm -ivh ltsp_local_apps-3.0.0-0.i386.rpm
[root@PE1400SC root]# tar zxvf pxestuff-3.0.5-i386.tgz |
Now you need to run the initialization program, you really don't need to
change any settings that it asks.
[root@PE1400SC root]# cd /opt/ltsp/templates
[root@PE1400SC root]# ./ltsp_initialize |
|