My Linux Cluster
My Linux Cluster (In process)’, ‘Well.. First, I had to research the equipment I wanted to buy. So here\’s the current list:
3 – AMD Athlon XP 2200+ 1.80GHz 266FSB Processor = $144.87 total
3 – Power Magic/by Xcase 460 Watt P4 & Athlon Power Supply = $36
3 – MB PCCHIPS VIA KM266PRO M825G V9.2A = $120
3 – VOLCANO 8 A1492 RT CPU Fan = $21.15
4 – DDRAM 256M|DDR333 PC-2700 -Kingston = $160
Ok.. Now for the plan. The main node is going to get 2x256Meg, so that is why I ordered the extra stick. This MB has built in video, sound, and network.. The case design is planned to support 4 MB\’s and may house a KVM (since a 4 port kvm is common) and also may house a gigabit switch. Haven\’t decided that yet. It would be ideal to have the whole system in one box, and only have an ouput for 1 keyboard, monitor, mouse, and RJ45. Depending on the network demand, a gigabit card may be installed in the main node which would require the gigabit switch. Again, we\’ll see how a 100Meg network holds up.
Also, not sure yet, but I\’m hoping the MB is network bootable. Don\’t know for sure as the online manual pretty much sucks.. and the manual that came with the MB\’s is even worse.
I really HATE PCChips and ECS (parent company) because of the sneaky things they do (Like soldering an AMD mobile processor to the motherboard, overclocking it, and calling it an AMD 3000A+! Right.. what a crock!) But, due to budget restraints (the wife) I was forced to use them. There was a really nice Gigabyte MB I wanted in the same price range, but they were discontinued, and I wasn\’t able to find them..
Anyway, I have put together each MB and boot it up to make sure they work. I\’m in the process of building the MB trays right now, and the plan is to have each MB mount to a card that will slide into the box. This allows for easy replacement if needed. I\’m also hoping to design the system to allow for a hot-plug stlye setup. Where the power, Keyboard,Mouse, and network are all run through a Centronics connector mounted on the end of the tray. But, before I worry about that stuff, I just want to get the systems up and running. A pretty case can always be made later.
So, I installed FC1 on an 8 Gig drive on node01. Downloaded the .rpm files for that kernel and installed them without any problems. Man.. could it be any easier? So, I installed the openmosixview rpm and it worked great as well. I downloaded the 2 version of a floppy node I could find, and neither of them worked.. so I ended up installing FC1 on a 2Gig drive on node02 just to see it work.. Again, everything was SUPER easy to setup. Now I have to see why the boot floppy\’s wouldn\’t work and/ or create my own. Also, I think I\’m going to add my current machine into the cluster (AMD XP 2600+) . It also uses the SK98Lin gigabit network driver (which is in the kernel) and the Linux NVIDIA driver for XFree86, which may be a problem. I was not able to get my current kernel to patch, so I downloaded 2.4.24 from kernel.org. It patched without any problems, but getting the damn thing to compile and then boot was the hard part. Anyway, the main thing that hung me up was the RAM disk was not enable in the xconfig. So, after enableing it, I was able to get it to boot. Now, I have to add sound support to get it working, and then remove some of my modules in /etc/modules because they are in the kernel now. I\’ll give more detail later as to how to build the kernel and stuff because now that this machine is on 2.4.24 and my other 2 machines are on 2.4.22, that\’s not going to fly with OpenMOSIX. So, I\’ll have to build them with 2.4.24 as well..
————- Steps again ————
Installed FC1
# vi /etc/wgetrc
Insert Proxy info
# wget http://aleron.dl.sourceforge.net/sourceforge/openmosix/openmosix-kernel-2.4.22-openmosix2.athlon.rpm
# rpm -ivh openmosix-kernel-2.4.22-openmosix2.athlon.rpm
Reboot and select new kernel to make sure it works..
Hmm.. Found new hardware? Remove network card? I selected \’Keep\’.. Configure new? I selected \’Configure\’ and set to use DHCP.. Hmm.. that\’s wierd.
then
# vi /boot/grub/grub.conf
Change
default=1
timeout=10
default=0
timeout=2
Now…. let\’s turn off the extra stuff.. This is going to be on an internal network, so we don\’t need the firewalls
# chkconfig iptables off
# chkconfig pcmcia off
# chkconfig isdn off
# chkconfig rhnsd off
Ok.. currently we\’re using about 520Meg.. so I\’m going to remove some packages to see if I can clean up some space..
# rpm -e yum
# rpm -e isdn4k-utils
# rpm -e redhat-config-securitylevel-tui
# rpm -e iptables
Most of these notes were taken from HERE.
Great write up for doing this. But I\’m just going to put the stuff I did to get mine working and commands that I needed.
Kernel Notes:
Download kernel sources. Extract to :
/usr/src/linux-2.4.24
# make xconfig
# make dep clean bzImage modules
# make install modules_install
Select Network and choose SK98Lin(m)
Select RAMDISK(y)
# make dep
# make install
Boot to new kernel and see if it works.. I choose to change the following as well:
/etc/inittab
id:3 instead of id:5
After it works, change:
/boot/grub/grub.conf
default=0
Extra stuff for the main node:
PXE
DHCP
TFTP
NFS Support (default)
Syslog (default)
Slave kernels:
# make menuconfig
Turn off the following:
Loadable module support.
CD-ROM drive
any type of Hard drive
any type of IDE or SCSI bus
any ability to talk to a parallel port
Make sure the following are on:
RAM Disk support (under Block Devices)
IP: kernel level autoconfiguration with DHCP
Root over NFS
NFS support (v3 and v4)
The specific drivers for the network cards you bought for the slaves
Highmem (> 1 Gigabyte) if you have any slaves with more than 768MB RAM
# make dep
# make
NOTE: DO NOT \’make install\’, it will install a bad kernal on your master node
Ok, to setup the services:
first, I downloaded a pxe rpm from rpmfind.net.
Next, I used the FC1 “Add/Remove” program to install DHCP and TFTP from FC1 Disc 3.
Now, edit the /etc/dhcpd.conf file
# vi /etc/dhcpd.conf
———– Copy/Paste for me ———
# These options are necessary to allow DHCP 3 to load ddns-updates off; ddns-update-style none; # This section defines a network block that DHCP is allowed to control shared-network PRIVATEAUTOCLUSTER { # These options are necessary to get the PXE server to work together # with the DHCP server option vendor-class-identifier "PXEClient"; option vendor-encapsulated-options ff; # Point these to the appropriate nameservers on your network! # I have removed the IP addresses to keep you from bombarding # our networks! option domain-name-servers 63.240.76.4, 204.127.198.4; # option netbios-name-servers 128.t.o.a; # Decoration. server-name "Autocluster Internal DHCP"; # Make them last a long time. default-lease-time 1000000; # This section defines the actual range of IP addresses available # to distribute. On a private network, use any private IP block # you want to. # # On a public network, you MUST have control of the IP address space. # Running an unauthorized DHCP server on a public network will wreak # havoc for everyone on that network if it happens to be a dynamically # configured network. If you have any doubts, keep it private or talk # to the system administrator for the intranet you are on. subnet 10.10.10.0 netmask 255.255.255.0 { # Turn off features that we don\'t need deny client-updates; # --- SET THIS TO IP ADDRESS OF THE NETWORK CARD THAT THE AUTOCLUSTER USES TO ACCESS THE NODES --- option routers 10.10.10.60; # Defines the size of the pool of available addresses range 10.10.10.61 10.10.10.69; } }