24小时热门版块排行榜    

CyRhmU.jpeg
查看: 5585  |  回复: 16
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

walkera

金虫 (初入文坛)

[交流] Linux集群rocks的安装和SGE管理调度MS5.5作业已有10人参与

很多人在讨论集群和MS的安装以及作业调度系统的设置。这里给一个我的设置,供参考。

第一部分  集群的安装
推荐大家使用Rocks进行安装。下载地址
http://www.rocksclusters.org/wordpress/?page_id=400
这是2012年5月9日放出的最新版本(开发代号Mamba,也就是非洲的曼巴蛇)。该集群安装软件基于最新的linux CentOS 6.2,它和RHEL 6.2完全等价,同时也是免费的。
DVD镜像文件大小2.5GB。刻录成DVD就可以了。放入DVD安装盘,启动机器后,在第一个画面键入
build
然后根据提示,进行简单的设置和选择,就可以安装。网上也有很多介绍,可以参阅。
以安装ROCKS 6.0 x86_64为例,安装时至少选择kernel(内核),base(基础)和OS(操作系统,也就是CentOS 6.2) 这三个包(或者称roll,卷)。建议再选上ganglia卷(集群运行状态监控包)和SGE卷(Sun Grid Engine, 也就是SUN公司的任务调度系统,因为SUN已经被甲骨文ORACLE公司收购,现在已经更名为OGE)。
安装过程非常简单,只要按照安装指南(官网有下载的)进行就可以。主节点要求含2个网卡(但是现在这个最新的版本已经不是必须的,可以只有单网卡,个人认为还是双网卡方便),分别链接内网(和计算节点相连)和外网(和你的windows电脑连接),内网的IP地址取默认值(10.1.1.1)就行(随便修改也没有问题),外网地址则和你的windows机器在同一网段,方便登录。
注意到一点就是前端机的机器名必须是合格的全称(类似于互联网上的网址,域名)。
上面是前端机(frontend)的安装,计算节点的安装非常简单,只要在windows机器上使用远程登录方法(推荐使用SSH Client)进入前端机,在根用户下,键入
# insert-ethers
出现一个画面后,再敲一下回车(也就是连续2次回车)。
按后将你需要安装的计算节点,与前端机的内网卡连接到同一个交换机上,这里分2种情况:
1 将计算节点设置成网络启动(PXE,主板自带网卡的机器都支持这个功能),PXE启动机器,然后前端机会自动找到这台机器,然后安装操作系统。
2  如果主板没有内置网卡或者内置的网卡是百兆网卡,则建议使用额外接入的千兆网卡(速度快点总是没错的)。如果是外接的网卡,一般卡上没有ROM块(可以看到绝大多数的网卡电路板上有个很大的插槽,并且绝大多数是空的,我印象中没有看见过不空的),不能做到网络PXE启动,只好设置成cdrom启动(内置或者外置USB光驱都可以),然后将那张rocks DVD放入,光盘启动机器,直接回车也可以,或者不需要敲任何键只是干等也行,机器很快会被前端机发现,然后自动安装操作系统。
    更详细的方法,请参考官网的指南(这个指南几乎是手把手地指导如何安装集群)。
安装完成后,可以在你与前端机相连的windows机器的浏览器(IE或者firefox等)上,键入
http://IP-address/ganglia/
这里的IP-address就是你安装前端机时给的IP地址(外网地址)。这时候就可以看到你的集群所有节点的运行情况(必须选择ganglia安装卷才有这样的功能哦,非常好的一个功能)。
这时候,集群就已经建立好了。

第二部分 MS的安装
1 上面的rocks 6.0安装完成后,有些安装MS时需要的库文件默认没有安装,因此先将几个库文件安装。(这些库文件的安装在前端机上是必须的,但是在计算节点上,如果不安装,我暂时也没有发现问题)
其中libstdc++.so.6复制到/usr/lib/下,libgcc….rpm(只需要i686版本,而x86-64版本的库文件在前面的系统安装过程中已经默认安装)和compat-libstdc++….rpm(i686和x86_64版本均安装)。

# cp libstdc++.so.6 /usr/lib/
# rpm -ivh libgcc-4.4.6-3.el6.i686.rpm
# rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm
# rpm -ivh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm

以上文件中,第一个文件libstdc++.so.6可以在已经安装过linux的 /usr/lib中找到,后3个rpm文件在ROCKS 6.0安装光盘找到,然后把它们复制出来就可以了(有点奇怪的是它们为啥不会在安装集群时自动安装呢)。

2 hpmpi的安装,注意,它一定要在前端机和每一个计算节点上安装,否则机器肯定出错。在前端机上的安装,必须在安装MS之前完成。
# rpm -ivh hpmpi-2.03.01.00-20090402r.x86_64.rpm
这个文件在MS的安装包中可以找到。

3 MS5.5的安装
登录前端机,添加一个普通用户(和密码),然后键入命令
# rocks sync users
注意,上面这个命令一定要运行一次。
接下来就可以用这个新加的普通用户登录并进行MS的安装。以下是以普通用户身份安装。
可以参考网上的介绍,使用命令:
$ …/UNIX/Install --type cluster
进行安装,基本可以使用默认的设置,如默认的文件夹,和使用SSH等,临时文件地址选择/tmp.
安装的license文件中的机器名也应该是你上面给出的全称(可以用hostname查看你的前端机的机器名)。
修改~/Accelrys/MaterialsStudio55/share/data/下的machine.LINUX文件加上
compute-0-0:n
compute-0-1:n
compute-0-2:n

这里的compute-0-0就是计算节点名,n是每个节点可以提供的cpu(线程)数(现在一般为4或者8)。
修改../../Gateway/root_default/dsd/conf/下的2个文件gw-info.sbd和gwparams.cfg文件中的cputotal数,注意这个数要不大于machine.LINUX文件中给的CPU线程总数。
   这时候集群已经可以运行MS了。但是如果需要作业调度,则进行SGE设置。

第三部分SGE的设置
注意SGE必须在安装前端机的同时选择安装。如果安装好前端机后,再安装SGE,ROCKS的官方手册上明确指出是不行的。SGE在各个计算节点的配置,已经随着节点的安装就完成了。
SGE可以用于MS5.5的作业调度,默认在安装rocks的时候已经建立一个名为all.q的队列。
设置SGE一定是根用户,或者先以根用户指定一个普通用户为管理员才有资格。首先修改all.q中的shell相关的参数,将其中的第一个sh改成bash (因为rocks默认使用bash,但是SGE默认使用csh),使用命令:
# qconf –mq all.q
然后用上下键找一下,和一般的LINUX文本编辑vi一样操作,按一下小写字母i即可开始编辑了。All.q的配置内容很丰富,可以用上面的命令运行后,编辑修改很多参数,例如可以指定提交的用户,cpu数包括每个计算节点供应的cpu数等。
当然,我们也可以建立另外的队列,用户组和用户,然后进行配置。还是不要自找麻烦吧,就用这个默认的就行了。
然后修改SGE的默认配置文件conf
# qconf –mconf (同上操作)
也将其中的shell从默认的csh改成bash
   如果直接将安装MS的用户的shell改成csh(修改/etc/passwd文件中的相应用户参数),估计就不用修改这里的shell了,但是我没有测试。
至此配置完成,可以使用qstat/qstat -Q/qstat -q/qstat -f等命令查看队列状态。(和torque差不多)

配置MS网关
假设MS安装在默认位置,设置使用SGE管理作业:
       $ cd ~/Accelrys/MaterialsStudio55/etc/Gateway/config/
        ./configure queue -queuepath SGE/dsd_sge –activate
运行成功后,我们发现在../../Gateway/root_default/dsd/conf/下的文件gw-info.sbd中的原来的
queuingsystem=[NONE]
已经自动修改成
Queuingsystem=Sun Grid Engine 6.2u5

在gwparams.cfg文件中,可以设置参数
gw_queuingsystem=SGE
不过如果不设置,好像也没有什么问题。
然后重启网关
$ cd ~/Accelrys/MaterialsStudio55/etc/Gateway
$ ./msgateway_control_18888 restart

Windows下的设置:
     在Sever Console下刷新服务器,确认服务器属性中的queue里有all.q队列。在提交计算任务里的queue选上all.q,就可以运行或者排队等待了.

因为SGE是按照均衡负载的原则安排cpu的使用的。假如,集群中有10个节点(每一个节点提供8个线程)可以供MS使用,而提交作业选中20个cpu(线程),则每个节点将分担2个cpu(线程)的计算任务(按照公平原则),如果选中25个CPU,则将是5个节点各承担3个CPU,另外5个节点承担2个CPU,以此类推。如果需要的CPU数小于可用数,则这个作业挂起(称为queued and waiting, 使用命令qstat –f,可以看到该作业的状态是 qw),排队等待前面的任务完成后,腾出足够使用的CPU,才能进入运行状态。因此,这里要求机器是均构的,也就是每个节点的cpu和内存等是一样的(大家跑得一样快),否则所有机器的运行速度都和最慢的那台一样,造成资源浪费。
通过SGE提交用于计算的节点可以和MS的机器配置文件machine.LINUX文件中的机器列表没有任何关系,仅仅要求线程数不大于machine.LINUX中给的总线程数。
在rocks的安装包还有一个condor卷,具有可以配合SGE进行高级配置的功能(类似于PBS中的toruqe + maui),但网上的介绍很少,有待学习。

关于SGE的设置,参考了小木虫上网友veryman关于PBS(torque)设置的帖子,在此表示感谢。

我们使用rocks,可以非常方便地完成集群的建立,同时SGE的设置也跟随建立集群的过程中,直接完成配置,我们做的就是稍微修改几行配置文件(增减了几个字母而已)。而对于计算节点,除了安装hpmpi以外,也可以不需要进行其他设置了。
这里也可以看到,SGE的作业调度设置要远比PBS(torque)的设置简单。更重要的是,有帖子指出,新版本的MS不支持torque了。Accelrys公司官网指出:There is no official support for TORQUE in Materials Studio。从MS的帮助文件中可以看到,MS5.5是支持SGE的(好像只支持PBS pro, LSF和SGE三种),因此使用SGE,就是和MS官方保持一致了。而对于torque的安装,Accelrys公司官方给了一个补丁:https://community.accelrys.com/message/6992#6992。因此,想继续使用torque的网友也没有问题了,参照着设置一下,而且这个设置支持最新的MS5.5和MS6.0。

声明,我是上月才开始鼓捣SGE的,因此很多设置也没搞明白,也在学习中,希望获得更多帮助。SGE的使用和简单说明可以在网上找,甲骨文公司的官网上也有相应的文档可以看。
还有一点,安装MS4.3好像另外需要libstdc++.so.5库文件,我试验了一次,没有成功安装MS4.3。也许是因为我们的LINUX版本太高了,呵呵。centos6.2的内核版本号:2.6.32-220.13.1.e16.x86_64, 2011年12月才出,目前没有更新的版本放出。如有需要,可以到www.centos.org上免费下载几乎所有版本的LINUX,它和RHEL的各种版本是一一对应的,例如centos 6.2等于RHEL 6.2。而MS 6.0版本的RHEL最高支持到6.1版本。

同时在这里感谢虫友shxincui518的帮助。

如果这个帖子对大家有帮助,我将非常高兴。

[ Last edited by walkera on 2012-5-24 at 10:54 ]
回复此楼

» 收录本帖的淘帖专辑推荐

第一原理资料汇编 Materials Modeling PBS作业排队系统

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

walkera

金虫 (初入文坛)

在网上可以找到关于SGE使用的一些资料
可以使用命令qconf配置队列和执行任务主机组
将一组机器设为一个主机组(group)
qconf -ahgroup @q1hosts
然后在里面列出需要加入的主机
qconf -aq q1.q
然后将里面的执行主机队列hosts_list列为@q1hosts,在slots属性中列出每台主机提供的CPU数,在users_list属性中指定可以执行此操作的用户,在xuser_list还可以指定不许使用此队列的用户名
在MS提交作业时选择这个队列,就可以限制个规定作业的提交执行机器
7楼2012-06-29 06:25:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 17 个回答

stefsui

木虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
ROCKS?
不是转贴?厉害,收藏下,过几天实践下
2楼2012-05-24 08:37:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

stefsui

木虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
送鲜花一朵
另外lz应该不是学化学的吧
3楼2012-05-24 08:40:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaozhigang

金虫 (著名写手)

送鲜花一朵
很有价值的,谢谢
willjust
4楼2012-05-24 09:34:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见