分类: LINUX
2008-11-06 19:46:59
在进行高密度计算的系统中,对计算机的计算能力要求非常高,当然可以采用高性能的计算机来进行处理。但是基于成本考虑,使用高性能计算机需要花费大量的资金;而且,大多数情况下,单个的高性能计算机依然不能满足我们的需求。基于成本和性能方面的原因,我们可以使用MOSIX在Linux系统上,使用普通的PC机创建一个高性能和廉价的集群系统,用来进行高密度的运算处理。
本文将以两个节点为例,说明MOSIX集群的配置方法和使用与管理方法。
两台内核版本为 2.4 的Linux系统(称为两个节点),并且已经连接到局域网中。建议局域网带宽为100M以上。两个节点的ip地址分别为192.168.100.7和192.168.100.8。
下载MOSIX内核补丁源代码:
可以到下载最新的内核补丁原代码,本文写作时的最新版本是:MOSIX 1.13.2 kernel patch for Linux 2.4.31(MOSKRN-1.13.2.tar.bz2),下载地址: 。因此,Linux内核也要使用2.4.31的内核。
下载Linux内核原代码:
下载地址:
下载与内核补丁相对应的配置工具包:
mv linux-2.4.31.tar.bz2 /usr/src
mv MOSKRN-1.13.2.tar.bz2 /usr/src
mv MOSIX-1.13.2.tar.bz2 /usr/src
cd /usr/src
tar -jxvf MOSKRN-1.13.2.tar.bz2
tar -jxvf linux-2.4.31.tar.bz2
ln -s linux-2.4.31 linux
cd linux
patch -p0 < ../MOSKRN-1.13.2/patches.2.4.31
make menuconfig
首先配置您的内核以保证硬件能够正常工作,并加入您所需要的其它功能。完成后,继续转至新的“MOSIX”配置节,它应该是列出的第一个配置目录。接下来配置MOSIX支持的功能:
[*] MOSIX process migration support
这个选项正确启用了 MOSIX。它是必需的。
[ ] Support clusters with a complex network topology
如果群集上的节点不在一个简单的 LAN 上,或者如果节点中正在使用的网卡的性能特征差别很大,则启用这个选项。如果您在群集中始终使用相似或相同性能的 NIC,并且所有机器都处于相等“距离”(从网络角度看),则应该禁用这个选项以改进性能。
[ ] MOSIX Kernel Debugger
MOSIX调试的支持,正式系统上建议不要此项功能。
[*] Stricter security on MOSIX ports
对MOSIX通讯端口的安全约束,必须选择。
(1) Level of process-identity disclosure (0-3)
[ ] Create the kernel with a "-mosix" extension
[*] Poll/Select exceptions on pipes
配置内核的其它选项和功能。
make bzImage
make modules
make modules_install
cp arch/i386/boot/bzImage /boot/
cp System.map /boot/System.map-2.4.31
rm -rf /boot/System.map
ln -s /boot/System.map-2.4.31 /boot/System.map
启用新内核
cd /usr/share/man
tar -xvf /usr/src/MOSIX-1.13.2/manuals.tar
cd /usr/src/MOSIX-1.13.2
mkdir tools
cd tools
tar -xvf ../user.tar
make
make install
首先,需要创建名为“/etc/mosix.map”的文件,它将描述新群集中的所有节点。当编辑完这个文件时,应该将它逐字复制到每个节点。在整个群集中,所有 /etc/mosix.map 文件都应该相同。
mosix.map 文件的格式很简单。每一行应该包含一个节点号、节点的 IP 地址或主机名以及一个“span”(通常为 1)。例如,在本案例中使用两台主机做一个2节点群集,这个 mosix.map 文件定义如下:
1 192.168.100.7 1
2 192.168.100.8 1
将下面的命令放入/etc/rc.local文件的末尾,使系统启动时自动启动mosix服务:
/sbin/setpe -W -f /etc/mosix.map
touch /var/lock/subsys/mosix
在节点2上同样方法安装Mosix,/etc/mosix.map的内容与节点1完全相同,在节点2上也启动mosix服务。
由于您刚重新引导了所有机器,此时节点上可能没有太多事情发生。因此,让我们执行一些 MOSIX 测试以便查看进程迁移的活动。要完成该操作,我们将在本地系统上创建几个 CPU 密集型的进程,然后观察 MOSIX 将这些进程迁移到运行效率最高的节点。当保持“mon”程序运行时,至少打开两个新的 shell,然后在每个 shell 中运行下列命令:
awk 'BEGIN {for(i=0;i<10000;i++)for(j=0;j<10000;j++);}'