Wednesday, August 10, 2011

Rocks clusters安装经验总结

Rocks clusters安装经验总结

2009-08-12 23:03:09| 分类: 技术 |字号 订阅
经过几天的苦苦摸索,终于搞定了Rocks clusters的安装和初步配置。现将安装过程中遇到的问题及解决经验做一总结,以便给自己以后重新安装时做一参考,或者能帮助也想安装Rocks cluster的网友顺利一些,能节省一些花在摸索问题解决办法上的解决时间。

很早一段时间以前就下载了oscar集群安装软件,虽然很仔细的阅读了安装指南,但在安装的过程中还是遇到了很多问题,而不能顺利的成功安装,也花时间在网上找了很多零碎的文档,最后还是没能安装成功。在网上找文档时,得知了Rocks clusters也是一个非常流行的集群软件,还是免费开放的,并能实现自动安装,免去了修改很多配置文件的烦恼(在以前搭建PVM集群时就需要修改挺多配置文件,想起就有点头大),于是到其官方网站http://www.rocksclusters.org下载了当时最新版本5.1的Rocks安装程序(现在最新版本是5.2),我用来搭建集群的机器都是32位的i386类型的,于是下载了适用于i386的5张安装光盘,1张DVD光盘和4张CD光盘,DVD光盘上的东西(包括kernerl、base、os-1、os-2)都是必装的,其他几张CD上的(os-3到os-6)是选装的。在安装指南提到,Frontend节点机必须要有2块网卡才行,其中一个网卡接其他集群节点机,另一个网卡接外网。但我安装集群的目的是自己来做并行计算用,不打算与外网连通,所以就想当然的认为Frontend节点机有一个网卡就可以了,但正是因为这个想当然,使我在后面的安装过程中遇到了很多问题,浪费了很多时间去摸索,当意识到必须有两块网卡才可以之后,原来的很多问题也都自动消失了。所以,Frontend节点机必须有两块网卡才能安装Rocks成功,切记切记!

其实在我意识到Frontend节点机必须要有两块网卡之前,我也已经顺利安装了Frontend节点机和一台compute节点机,当时这样安装的Rocks系统是存在挺多问题的,比如qmaster等服务无法启动、也无法采用VM虚拟机的方式来作为计算节点。这些也是很长一点时间以后在重新来接着安装Rocks集群时才知道的。

安装Rocks cluster的步骤如下:

1、首先需要安装Frontend节点机,相当于一个集群的服务节点机:

(1)在CMOS中将光驱设为开机启动第一设备,将包含kernel包的Rocks集群的 DVD安装盘或只包含kernel包的CD光盘放入光驱,开机启动。

(2)当出现一个Rocks安装boot:界面时,会提示输入build加回车来开始安装Frontend节点(如果在boot:提示符后直接回车的话是开始安装compute或vm container等节点机,在后面安装compute或vm container节点机时会用到)。

(3)设置Frontend节点机中连接外网的网卡eth1的IP地址等网络配置。如果连接外网的网卡是采用DHCP的方式来获取IP的话,就可以跳过这步,系统会给eth1网卡自动分配IP并设置网络。如果采用固定IP的话,就需要手动设置IP地址及掩码、DNS等。

(4)接下来会提示选择安装文件的来源(CD/DVD或官方网址),我选择的是CD/DVD方式,然后开始选择需要安装的文件包(rocks中称为roll),这时需要将DVD光盘重新放入或kenerl、base等、os-1,is-2这4张CD光盘依次放入,把需要安装的roll都打勾选择安装,这些roll都是必须要选的,如果没有选择全,在安装的过程中就会出现错误,只能重新启动安装。当然这时候也可以选择os-3至os-4这几张光盘里的roll来安装。等选择完需要安装的roll以后,就可以点next来继续安装了。

(5)这时需要选择对硬盘的分区方式(自动或手动),选择“自动”就会以默认的分区格式来对整块硬盘进行分区,选择“手动”就会进入分区工具界面,具体的分区要求可参照rocks安装说明上的推荐。我选择的是“手动”,因为“自动”方式会默认rocks安装占用整块硬盘,而我的硬盘上还装有WindowsXP系统,所以采用“手动”方式使得Rocks安装只占用其中一部分硬盘,这样Frontend节点机中也可以有双系统了。分区格式化硬盘以后就开始进入下面的安装过程了。

(6)提示依次放入包含前面选择安装的roll的各张光盘,会自动将各种光盘上的内容都拷贝到硬盘上,然后出现安装进度条开始安装过程。等一段时间安装完成后,Frontend节点机的安装就算大功告成了!!!

2. 然后是其他节点机(compute或vm container等)的安装

(1)以root登录Frontend节点机,在命令行运行insert-ethers,这时会弹出一个界面让选择是安装compute节点还是vm container节点或其他类型的节点。选择了要安装的节点机类型后,点击OK后,就会进入等待节点机安装请求的界面。这时就可以启动要安装的节点机开始安装过程了。

(2)安装时可以用光盘启动的方式或PXE网络启动的方式启动节点机,PXE网络启动方式需要在CMOS里设置,由于我的机器主板不支持PXE启动方式,所以我选择的是光盘启动,将包含kernel包的DVD或CD光盘放入要安装的节点机的光驱,引导启动节点机。

(3)这时会进入和安装Fontend节点机时同样的boot:提示符界面,现在不需要敲入build,而是直接回车就可以了,接下来就会自动进行整个安装过程,包括向Frontend节点机请求IP地址、从Frontend节点机拷贝kickstart安装文件及各种roll文件等。可以在Frontend节点机上运行"rocks-console compute-0-0(正在安装的节点机名) “来监控安装过程。

(4)节点机安装完就会自动重启,重启完成后可以在Frontend节点机运行rocks list host命令来列出Rocks cluster中已经安装好的节点机,如果能看到刚才安装的节点机就说明已经正确安装。

(5)重复以上的步骤可以安装其他的节点机。

在安装过程中我发现了Rocks cluster提供了通过VM虚拟机来构建集群的方法,这样我就可以只用两台机器来模拟包含多个节点机的集群了,从而方便在这个虚拟集群上来开发调试并行程序,等并行程序开发好以后再转移到包含多个物理节点机的集群上来测试并行计算的性能和速度。

Rocks cluster通xen技术来实现虚拟机,首先需要采用前面介绍的步骤来安装Frontend节点机,要保证在安装过程中选择安装了xen包,其他过程和前面都相同。然后再以和安装compute节点机类似的步骤安装vm container节点机,安装完以后可以用rocks list host 命令来查看是否安装成功,一般vm container节点机的主机名称会自动命名为"vm-container-0-0"这种形式。

虚拟集群的方法根据Frontend节点机是否虚拟机可分为两种,一种是在Frontend节点机也是作为虚拟机来安装,一种是Frontend节点机和前面的相同,都是一般的物理节点机。这两种方法在xen roll安装指南中都有详细介绍,我选用的是后一种方法。需要提一下的是,我安装的是最新的版本5.2,但在一开始安装虚拟集群时遇到了一些问题,不能成功安装compute虚拟机节点,后来在网上Rocks讨论区里查了一些文档才发现5.2版本在这方面存在bug,并且开发者已经写好了修正的fix包,名称为service-pack 5.2.1,官方网站上已经可以下载,在安装Frontend节点机时,这个包也要一起安装上才行。

我采用的后一种方式的Rocks虚拟集群的具体安装步骤是:

(1)在安装完Frontend节点机和vm container节点机后,在Frontend节点机上运行:

rocks add host vm vm-container-0-0 membership="Compute"

来在节点机vm-contianer-0-0上安装一个VM虚拟机作为compute类型的节点机,新安装的虚拟机的主机名一般会自动命名为“compute-0-0-0"这种形式,当然这个命令还可以加入其它一些选项,比如虚拟机的名称、分配内存大小等等,具体可参见xen roll安装指南。

(2)然后在Frontend节点机上运行:

rocks start host vm compute-0-0-0 install=yes

来启动刚才安装的虚拟机compute-0-0-0,并开始compute节点机的安装过程。install=yes一定要加上,否则无法开始安装过程,在xen roll安装指南中没有写这个选项,可能是开发者忽略了这一点。

(3)没有出现错误信息的话,接下来就已经开始了compute节点机的安装,这时可以在Frontend节点机上运行:

rocks-console compute-0-0-0

来监控compute节点机的安装过程,安装完以后会自动重启compute-0-0-0节点机。

(4)重复上面的方法,可以安装多个虚拟节点机。

(5)等所有虚拟节点机安装并启动以后,可以在Frontend节点机上运行:

virt-manager

来监控和管理各个虚拟机的运行情况。

至此,安装就大功告成了,至于其他的Rocks集群的其他管理命令和工具可以参照其官方网站的用户手册:

http://www.rocksclusters.org/wordpress/?page_id=4



另外,还有几个在管理Rocks集群时需要注意的地方:

1、在每次运行完rocks的一些命令修改了数据库配置信息后,比如删除compute节点机,都要再运行:

rocks sync config

来将更新后的数据库信息写入到节点机的系统配置文件中,否则在运行其他管理命令时会遇到一些莫名的错误。

2、在已有Frontend节点机上安装service-pack或添加其他新的roll的方法:

(1) wget http://www.rocksclusters.org/ftp-site/pub/rocks/rocks-5.2/linux/service-pack-5.2.2-1.i386.disk1.iso

其中wget后面的部分为在线安装时的roll文件。

<>
< init # finish-install-sp.sh tmp sh bash | service-pack roll run rocks distro create install export cd version="5.2.2" enable disable service-pack*iso add>
rocks run host '/boot/kickstart/cluster-kickstart'

2、如果集群中的节点机需要重新安装,可以在这个节点机上运行:


/boot/kickstart/cluster-kickstart


来重装系统。或者可以在Frontend节点机上运行:


rocks run host '/boot/kickstart/cluster-kickstart'


来重新安装所有的compute节点机。


3、如果想重装集群中所有的compute节点机,并在重装完以后让这些节点机继续执行由于重装而中断的计算任务,可以通过SGE控制来实现,运行:


/opt/gridengine/examples/jobs/sge-reinstall.sh


4、安装完Frontend节点机以后,centos不能正确显示中文字体,这时可以运行:


yum install fonts-chinese


来在线安装中文字体,当然这时机器必须是与互联网连通的,安装完以后将系统语言修改为中文就可以了。