雖然都是MOSIX原理下的軟件,但是互相是不能通訊的,因此一個集群系統裡要統一使用一種平台
因為MOSIX有另外的分支openmosix,相對簡單,筆者推薦沒有經驗的初學者使用,下面是openmosix的安裝和基於openmosix的客戶端配置。注意:MOSIX和openmosix
雖然都是MOSIX原理下的軟件,但是互相是不能通訊的,因此一個集群系統裡要統一使用一種平台。openmosix是使用rpm為
安裝包的,事實上只是把編譯好的內核直接掛接到系統裡,並沒有經過你自己的編譯,對於初學者而言要方便許多。以下操作
是在剛安裝完RedHat Linux 7.2的系統上完成的,除openmosix的軟件包外,不需要其他任何的軟件包,缺省目錄在/usr/src/下。
可根據情況安裝SMP版本,openmosix-kernel-2.4.18-openmosix2.i386.rpm版本適合於所有X86體系的處理器, openmosix-kernel-2.4.18-openmosix2.i686.rpm版本適合本例,openmosix-kernel- 2.4.18-openmosix2.src.rpm是包含kernel-2.4.18
和openmosix內核補丁的源代碼。當安裝完成後啟動時就可以看到openmosix的啟動項。
cd /usr/src/
rpm -Uvh openmosix-kernel-2.4.18-openmosix2.i686.rpm
rpm -Uvh openmosix-kernel-2.4.18-openmosix2.src.rpm
rpm -Uvh openmosix-tools-0.2.2-1.i386.rpm
5、下面是利LTSP配置客戶端系統,首先需要安裝必要的軟件包。並將文件安裝放到到適當的路徑下。
rpm -Uvh dhcp-3.0.1rc9-1.i386.rpm
rpm -Uvh dhcpcd-1.3.22pl1-7.i386.rpm
rpm -Uvh mknbi-1.2-6.noarch.rpm
rpm -Uvh ltsp_core-3.0-11.i386.rpm
rpm -Uvh ltsp_kernel-3.0-3.i386.rpm
rpm -Uvh ltsp_floppyd-3.0.0-2.i386.rpm
tar xvfz ltsp_initrd_kit-3.0.1-i386.tgz
mv ltsp_initrd_kit /usr/src/
6、因為使用的是openmosix,你需要單獨展開的linux-2.4.18.tar.gz文件和openmosix的補丁文件,需要將 openmosix的補丁加入,你在安裝openmosix-kernel-2.4.18-openmosix2.src.rpm時,源文件會存在於 /usr/src/redhat/SOURCES/目錄下,同時
還有內核補丁文件。
cd /usr/src/redhat/SOURCES/
tar xvfz linux-2.4.18.tar.gz
mv /usr/src/redhat/SOURCES/linux /usr/src/linux-2.4.18-om2
7、將內核補丁文件展開並加入內核源文件,並作編譯前准備,將舊的內核編譯中間結果清理干淨:
cp /usr/src/redhat/SOURCE/openMosix-2.4.18-2.gz /usr/src/linux-2.4.18-om2/
gunzip /usr/src/linux-2.4.18-om2/openMosix-2.4.18-2.gz
cd /usr/src/linux-2.4.18-om2
patch -Np1 < openMosix-2.4.18-2
make mrproper
8、修改Makefile文件的EXTRAVERSION部分,加入-om2標記:
vi Makefile
EXTRAVERSION = -om2
9、將LTSP的內核編譯配置文件備份並放到內核編譯目錄下:
cp /opt/ltsp/kernel-configs/config.2.4.9-ltsp-5 /usr/src/config.backup/
cp /opt/ltsp/kernel-configs/config.2.4.9-ltsp-5 /usr/src/linux-2.4.18-om2/.config
10、啟動內核編譯配置菜單,注意選擇openmosix選項中的進程遷移(process migration support),直接文件系統訪問 ( Direct File-System Access),openmosix文件系統(OpenMosix File-System),注意不要選擇內核調試(Kernel Debugger)。
其他的配置根據具體需要,沒有SCSI硬盤可以去掉SCSI選項,不需要聲卡,也可以去掉。
make menUConfig
11、編譯內核一般分為編譯庫(make dep),編譯啟動映象(make bzImage),編譯模塊(make modules) 和安裝模塊
(make modules_install)。系統可以連續完成幾步操作:
make dep && make bzImage && make modules && make modules_install
12、如果系統沒有提示錯誤並中止,將會顯示新的內核映象的大小,模塊編譯完成並安裝等信息。編譯完成的內核將作為客戶端的內核系統,因此需要將模塊復制到LTSP的目錄下:
cp -R /lib/modules/2.4.18-om2 /opt/ltsp/i386/lib/modules/
13、完成後將創建符合無盤啟動的系統,使用LTSP的初始化工具就可以完成,進入/usr/src/ltsp_initrd_kit目錄,修改buildk文件的最後部分,用#注釋掉原有prepare_kernel部分,並添加適合本例的命令。
cd /usr/src/ltsp_initrd_kit/
vi buildk
# prepare_kernel /usr/src/linux-2.4.9-ltsp 2.4.9-ltsp-5
# prepare_kernel /usr/src/linux-2.4.9-ltsp-lpp 2.4.9-ltsp-lpp-5 lpp
prepare_kernel /usr/src/linux-2.4.18-om2 2.4.18-om2
14、修改完後運行buildk將會在/tFTPboot/lts/下創建新的內核啟動文件。
./buildk
15、建議創建內核啟動文件連接,這樣不必頻繁修改配置文件的內容,下次只要改變文件名就可以更換內核了。
cd /tftpboot/ltsp/
ln -s vmlinuz-2.4.18-om2 vmlinuz-openmosix
16、修改/etc/dhcpd.conf文件,使動態地址分配支持新的啟動內核。修改內核啟動文件的名稱和路徑,如果該文件不存在,可以參考後面的配置文件。
cd /etc/
vi dhcpd.conf
filename "/lts/vmlinuz-openmosix";
17、隨後你可以添加自動分配主機名,這樣每台客戶機啟動時自動生成主機名,注意主機名要和你的hosts文件對應。本例中自動
生成的主機名將是node001到node253,數字部分是根據IP地址補齊三位數得到的。
vi dhcpd.conf
filename "/lts/vmlinuz-openmosix";
option host-name = concat("node" , binary-to-ascii( 10, 8, "", substring(reverse( 1, leased-address), 0, 1)));
18、檢查重要的服務進程是否啟動,並使新配置文件生效。
chkconfig tftp on
chkconfig dhcpd on
service dhcpd restart
service xinetd restart
19、創建mosix.map文件,並保持服務器和客戶端的一致。
cd /etc/
vi mosix.map
1 192.168.0.254 1
2 192.168.0.1 253
cp /etc/mosix.map /opt/ltsp/i386/etc/
20、復制openmosix的工具到客戶端的目錄中。
cp /sbin/setpe /opt/ltsp/i386/sbin/
cp /bin/mosrun /opt/ltsp/i386/bin/
cp /bin/mosmon /opt/ltsp/i386/bin/
cp /bin/mosctl /opt/ltsp/i386/bin/
cp /bin/migrate /opt/ltsp/i386/bin/
21、因為/opt/ltsp/i386目錄最後是客戶端的根文件系統,需要的工具都可以復制到相應的目錄中。因為
/opt/ltsp/i386/etc/hosts文件是連接,因此需要先刪除後復制新文件。
cp /bin/touch /opt/ltsp/i386/bin
rm -f /opt/ltsp/i386/etc/hosts
cp /etc/hosts /opt/ltsp/i386/etc/
cp /etc/rc.d/init.d/openmosix /opt/ltsp/i386/etc/rc.openmosix
22、創建客戶端的/mfs目錄:
mkdir /opt/ltsp/i386/mfs
23、修改客戶端文件系統配置文件,加入mfs的配置:
cd /opt/ltsp/i386/etc
vi fstab
none /mfs mfs dfsa = 1 0 0
24、修改客戶端啟動進程腳本,加入啟動openmosix的配置,禁止客戶端提交集群計算的設置,和裝載/mfs文件系統的配置。
vi /opt/ltsp/i386/etc/rc.local
# OpenMosix startup section
# we don't want any terminal processes to migrate
echo 1 > /proc/mosix/admin/lstay
# start mosix
/etc/rc.openmosix start
# mount mfs filesystem. doesn't work when done earlier
mount /mfs
# End OpenMosix Startup Section
25、配置完成後准備軟盤制作以太啟網啟動盤。訪問www.Rom-O-matic.net網站,選擇網卡類型生成以太網啟
動芯片的映象,保存到Linux上,使用cat生成啟動軟盤。本例中使用3C905B。放入一張空白三?既砼獺?/td>
cat eb-5[1].0.7-3c905b-tpo100.lzdsk > /dev/fd0
26、修改LTSP客戶端啟動配置文件/opt/ltsp/i386/etc/lts.conf,禁止啟動X Windows,修改參數X_USBMOUSE_BUTTONS = 3,
即啟動文本界面。
27、確認/etc/eXPorts文件包含共享客戶端根文件系統和交換區內容:
more /etc/exports
/opt/ltsp/i386 192.168.0.0/255.255.255.0(ro,no_root_squash)
/var/opt/ltsp/swapfiles 192.168.0.0/255.255.255.0(rw,no_root_squash)
28、將以太啟動軟盤放入客戶端,開機並確認正常啟動,正常獲得動態地址,加載內核成功,初始化腳本正常運行,主機名自動生成,openmosix正常初始化,沒有任何錯誤提示。
29、回到服務器,通過檢查/mfs文件系統來檢查mfs文件系統。
30、啟動mosmon監控程序來檢查通訊是否有效,這是剛加入3個節點時,啟動setiathome計算的狀態。將下載的應用展開在/dw目錄下,注意命令的格式。
mosrun -j1-3 /mfs/1/dw/setiathome -nolock
31、制作啟動盤,陸續加入節點,MOSIX集群就創建完了。
典型的配置文件
/etc/mosix.map
1 192.168.0.254 1
2 192.168.0.1 253
/etc/dhcpd.conf
default-lease-time 21600;
max-lease-time 21600;
ddns-update-style none;
allow booting;
allow bootp;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.254;
option domain-name-servers 192.168.0.254;
option domain-name "mosix";
option root-path "192.168.0.254:/opt/ltsp/i386";
shared-network NODES {
subnet 192.168.0.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.0.100 192.168.0.253;
use-host-decl-names on;
option log-servers 192.168.0.254;
if substring (option vendor-class-identifier, 0, 9) = "PXEClient"
{
filename "/lts/pxe/pxelinux.bin";
}
else
{
filename "/lts/vmlinuz-2.4.18-mosix";
option host-name = concat("node" , binary-to-ascii( 10, 8, "", substring(reverse( 1, leased- address), 0, 1)));
}
}
}
group {
use-host-decl-names on;
option log-servers 192.168.0.254;
host node001 {
hardware ethernet 00:E0:06:E8:00:84;
fixed-address 192.168.0.1;
filename "/lts/boot/bootp/vmlinuz.eepro100.bootp";
}
host node002 {
hardware ethernet 000:09:30:6A:1C;
fixed-address 192.168.0.2;
filename "/lts/boot/bootp/vmlinuz.tulip.bootp";}
host node003 {
hardware ethernet 000:09:30:28:B2;
fixed-address 192.168.0.3;
# kernels are specified in /tftpboot/lts/boot/pxe/pxelinux.cfg/
filename "/lts/boot/pxe/pxelinux.bin
}
}
/etc/exports
/opt/ltsp/i386 192.168.0.0/255.255.255.0(ro,no_root_squash)
/var/opt/ltsp/swapfiles 192.168.0.0/255.255.255.0(rw,no_root_squash)
/etc/hosts 和 /opt/ltsp/i386/etc/hosts
192.168.0.254 mosix
192.168.0.1 node001
192.168.0.2 node002
192.168.0.3 node003
192.168.0.4 node004
省略一部分
192.168.0.253 node253
127.0.0.1 localhost.localdomain localhost
/opt/ltsp/i386/etc/fstab
none /mfs mfs dfsa=1 0 0
/opt/ltsp/i386/etc/lts.conf
[Default]
SERVER = 192.168.0.254
XSERVER = off
X_MOUSE_PROTOCOL = "IMPS/2"
X_MOUSE_DEVICE = "/dev/psaux"
X_MOUSE_RESOLUTION = 400
X_MOUSE_BUTTONS = 3
X_USBMOUSE_PROTOCOL= "PS/2"
X_USBMOUSE_DEVICE = "/dev/input/mice"
X_USBMOUSE_RESOLUTION = 400
X_USBMOUSE_BUTTONS = 3
USE_XFS = N
LOCAL_APPS = N
RUNLEVEL = 3
SOUND = Y
VOLUME = 75
}
}
group {
use-host-decl-names on;
option log-servers 192.168.0.254;
host node001 {
hardware ethernet 00:E0:06:E8:00:84;
fixed-address 192.168.0.1;
filename "/lts/boot/bootp/vmlinuz.eepro100.bootp";
}
host node002 {
hardware ethernet 000:09:30:6A:1C;
fixed-address 192.168.0.2;
filename "/lts/boot/bootp/vmlinuz.tulip.bootp";}
host node003 {
hardware ethernet 000:09:30:28:B2;
fixed-address 192.168.0.3;
# kernels are specified in /tftpboot/lts/boot/pxe/pxelinux.cfg/
filename "/lts/boot/pxe/pxelinux.bin
}
}
/etc/exports
/opt/ltsp/i386 192.168.0.0/255.255.255.0(ro,no_root_squash)
/var/opt/ltsp/swapfiles 192.168.0.0/255.255.255.0(rw,no_root_squash)
/etc/hosts 和 /opt/ltsp/i386/etc/hosts
192.168.0.254 mosix
192.168.0.1 node001
192.168.0.2 node002
192.168.0.3 node003
192.168.0.4 node004
省略一部分
192.168.0.253 node253
127.0.0.1 localhost.localdomain localhost
/opt/ltsp/i386/etc/fstab
none /mfs mfs dfsa=1 0 0
/opt/ltsp/i386/etc/lts.conf
[Default]
SERVER = 192.168.0.254
XSERVER = off
X_MOUSE_PROTOCOL = "IMPS/2"
X_MOUSE_DEVICE = "/dev/psaux"
X_MOUSE_RESOLUTION = 400
X_MOUSE_BUTTONS = 3
X_USBMOUSE_PROTOCOL= "PS/2"
X_USBMOUSE_DEVICE = "/dev/input/mice"
X_USBMOUSE_RESOLUTION = 400
X_USBMOUSE_BUTTONS = 3
USE_XFS = N
LOCAL_APPS = N
RUNLEVEL = 3
SOUND = Y
VOLUME = 75