朋友给的openmosix不敢独享

发表于:2007-07-04来源:作者:点击数: 标签:
虽然都是MOSIX原理下的软件,但是互相是不能通讯的,因此一个集群系统里要统一使用一种平台 因为MOSIX有另外的分支openmosix,相对简单,笔者推荐没有经验的初学者使用,下面是openmosix的安装和基于openmosix的客户端配置。注意:MOSIX和openmosix 虽然都是

虽然都是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 Aclearcase/" target="_blank" >ccess),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  00javascript:window.open(this.src);" style="CURSOR: pointer" onload="return imgzoom(this,550)">0: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

原文转自:http://www.ltesting.net