zz from: http://oss.lzu.edu.cn/modules/lifetype/index.php?op=ViewArticle&articleId=427&blogId=6
在PS3+YDL上安装集群
falcon <zhangjinw@gmail.com>
2007-6-5
说明:刚接触集群,这里仅仅是一个操作笔记。里头可能有很多错误,欢迎指正。另外,转载请注名出处,并保留作者信息。
如何在PS3上安装YDL(yellow dog linux)见参考资料,安装好YDL之后,默认安装了防火墙并进行了一定的安全配置,也安装了NFS服务。
为了在linux上搭建一个集群,我们下载了mpich。为方便起见,我们只在一台服务器节点上安装它,其他节点通过NFS服务来使用服务器节点上的 mpich,这样可以避免重复的安装操作。
假设我们有两台机器,一台是ps3-1(主机名,下同),另外一台是ps3-2,我们选择ps3-1作为服务器节点。对应的ip地址分别是 192.168.1.1.和192.168.1.2,并且假设两台机器上有相同的用户user,它们的密码也相同。另外,由于YDL默认配置的防火墙的限 制,我们将无法进行某些操作,所以,在进行下面的操作之前,先关闭掉ps3-1和ps3-2上的防火墙,只要分别在两台机器上执行下面的命令即可(注意: 一定要关闭,否则服务器节点在启动mpdboot等命令的时候将无法连接其他节点)。
> su
> /sbin/iptables -F
*可以直接把iptables服务给停掉:
> /etc/init.d/iptables stop
> /sbin/chkconfig –level 2345 iptables off
或者
> chmod -x /etc/init.d/iptables
一、下载最新的mpich2-1.0.5p4.tar.gz
http://www-unix.mcs.anl.gov/mpi/mpich/index.htm
(注意,它和以前的版本不大一样)
> cd ~
> wget ftp://ftp.mcs.anl.gov/pub/mpi/mpich2-1.0.5p4.tar.gz
> tar zxf mpich2-1.0.5p4.tar.gz
> cd mpich2-1.0.5p4; more README
具体操作之前看一下它的README比较有好处,可以对后面的操作更容易理解。
二、在服务器节点(ps3-1)上安装mpich2和简单测试
> cd ~
> mkdir mpich2
> cd mpich2-1.0.5p4
> ./configure –prefix=/home/user/mpich2
> make; make install
> vi ~/.bash_profile
PATH=$PATH:$HOME/bin:$HOME/mpich2/bin
> cd ~
> vi .mpd.conf //后面的mpich2_on_ps3是一个密码,你可以自定设置
secretword=mpich2_on_ps3
> vi mod.hosts
ps3-2
ps3-1
> . .bash_profile
> mpd &
> mpdtrace
ps3-1
> mpdallexit
三、配置主机名和ip地址的映射
分别在两台机器上,修改/etc/hosts文件,如下:
192.168.1.1 ps3-1 server
192.168.1.2 ps3-2
四、配置ssh服务,免密码登录彼此的机器,这个是mpich2需要的
(也可以通过rsh的,我做的时候只配置了ssh)
1. 在两台机器上分别产生一个公钥,并上传到对方的机器上。
先登录到ps3-1上
> ssh-keygen -t rsa
> scp .ssh/id_rsa.pub user@ps3-2:~/
> ssh user@ps3-2
> cat id_rsa.pub >> .ssh/authorized_keys
> ssh-keygen -t rsa
> scp .ssh/id_rsa.pub user@ps3-1:~/
> ssh user@ps3-1
> cat id_rsa.pub >> .ssh/authorized_keys
//下面一个操作有其他目的,下面有说明
> cat .ssh/id_rsa.pub >> .ssh/authorized_keys
说明:为了做到,只在一台服务器上安装mpich2,在其他机器上直接通过NFS访问它
另外,只允许普通用户登录服务器进行计算,那么我们可以直接把服务器
(也是登录节点)的用户目录作为NFS服务的主目录。
这样两个系统使用了同一份家目录的两个拷贝,如果不做上面的最后一步,那么在
ps3-2上挂载了服务器(ps3-1)上的家目录后,两个机器将无法实现免密码登录了,因为
这个时候的公钥和私钥对没有了。我们在最后再把ps3-1的公钥加.ssh/authorized_keys
里头以后,两边都变成了ps3-1的id_rsa和id_rsa.pub对,这样就可以直接通过user免密码登录了。
2. 在服务器节点(ps3-1)上配置并启动nfs服务
> vi /etc/export
/home/user ps3-1(rw,no_root_squash,sync) ps3-2(rw,no_root_squash,sync)
> su
> /etc/init.d/nfs start
> vi /etc/rc.d/rc.local
/etc/init.d/nfs start
3. 在节点(ps3-2)上启动portmap,挂载服务器节点(ps3-1)上的家目录
> cd /home
> su
> /etc/init.d/portmap start
> vi /etc/rc.d/rc.local
/etc/init.d/portmap start
> mount -t nfs server:/home/user /home/user
> vi /etc/fstab
server:/home/user /home/user nfs rw 0 0
4. 测试节点(ps3-2)上的mpd是不是可以工作拉
> cd ~
> . .bash_profile
> mpd &
> mpdtrace
ps3-2
> mpdallexit
到这里,实际上就差不多了,下面介绍一个简单的实例。
五、通过服务器节点(ps3-1)启动所有节点上的mpd,并测试一个简单的实例
登录到服务器节点(ps3-1)
> cd ~
> mpdboot -n 2 //还可以通过mpd -h <hostname> -p <port> &启动各个节点
> mpdtrace
ps3-1
ps3-2
> cd mpich2-1.0.5p4/examples/
> mpiexec -n 2 ./cpi
Process 0 of 2 is on ps3-1
Process 1 of 2 is on ps3-2
pi is approximately 3.1415926544231318, Error is 0.0000000008333387
wall clock time = 0.004876
我们下载的mpich2-1.0.5p4下有一些examples,可以用来测试测试的。
参考资料
1. 在PS3上安装YDL
http://www.ibm.com/developerworks/power/library/pa-linuxps3-1/index.html
2. Client免输密码登录SSH Server的一种方法
http://oss.lzu.edu.cn/modules/newbb/viewtopic.php?topic_id=868&forum=6
3. mpich的主页
http://www-unix.mcs.anl.gov/mpi/mpich/index.htm
4. mpich的README文件
在下载的mpich的根目录下可以找到,有mpich安装和使用的比较详细的说明