rocks cluster是一个开源的集群管理系统,本文的内容主要参考自rocks cluster的官方文档,详细内容可参考http://www.rocksclusters.org

官网给的网络拓扑图

wKioL1gkBh_A7oqxAACcqkd_1bc141.png

rocks管理节点安装

1、添加管理主节点(Frontend Node)

①、下载镜像地址ftp://ftp.rocksclusters.org/pub/rocks/rocks-6.2/linux/area51+base+bio+fingerprint+ganglia+hpc+htcondor+java+kernel+kvm+os+perfSONAR+perl+python+sge+web-server+zfs-linux-6.2.x86_64.disk1.iso

②、 使用镜像安装
安装选项输入build然后回车

wKioL1gi1VaS7m0EAAoaXzUQI-s004.png

③、选择CD/DVD-based Roll,

wKioL1gi1kiT3nzaAANX5rrAk9w364.png

④、选择要安装的功能,然后点击Submit

wKiom1gi1oCgOSYVAARqXEeDlsE666.png

⑤、点击Next进入下一步

wKioL1gi1tDTzi5oAAMDNJ8gu-4353.png

⑥、在点击Next进入下一步

wKioL1gi1xfh7dFuAAQKkPEexXE629.png

⑦、配置网卡eth1为外网地址,然后点击Next下一步

wKioL1gi13ijeebZAAMrBe1-0Pw988.png

⑧、配置网卡eth0(私网ip),点击下一步

wKioL1gi19uAI_p4AALH4_MEFAM815.png

⑨、配置网关为外网网关,DNS为外网DNS,然后点击Next下一步

wKiom1gi2FTDGsnUAAJEtZjz5ps168.png

⑩、配置系统root的密码,然后Next下一步

wKioL1gi2L2B1XCfAAHXuIefz5U070.png

⑾、设置时区及NTP时间源地址

wKioL1gi2R6gcokNAAJBSLGjqhE361.png

⑿、划定分区大小,此处选择的自动分配分区大小,然后点击Next下一步

wKiom1gi2YWC0Bu3AAJs-s2tgVw111.png

⒀、然后就开始自动安装,安装完成后会自动重启

wKiom1gi2kaBCN3wAAGor8ikwI8797.png

⒁、至此,管理主节点安装完成

wKiom1gi3BWCtMhZAAHPeYuxvFQ798.png


2、配置管理主节点

使用root用户登录,密码为安装过程设置的密码。

wKiom1gi3RWB3cQ5AAHWjBZ7wYk648.png

输入密码后会出现以下提示,直接忽略,进入系统后可以打开终端进行操作。

wKiom1gi3XLicuqMAAJ9F1lRvsU366.png

安装计算节点前的准备工作

将计算节点网卡接入私网当中

进入BIOS设置,保证网卡的PXE是可用的

配置计算节点的名字等属性

rocks add appliance n membership=”n” node=compute 
rocks set appliance attr n attr=sge value=true
rocks set appliance attr n attr=bio value=true
rocks set appliance attr n attr=managed value=true

以上命令在管理主节点执行

这些命令增加了一个叫做“n”的appliance,并设置了它的属性,支持sge, bio, managed。

在下图中增加了一个叫n的选项。

第一条命令是创建一个新的appliance,在这个appliance下的节点的名字格式为n-x-y, 如n-0-3

后面的几条是为这个appliance添加属性,使得它的节点支持sge, bio等。

可以用命令rocks list appliance来查看所有的appliance。

也可以用命令rocks list appliance attr查看appliance的属性值。


添加计算节点

在管理主节点上以root身份登录,打开终端执行以下命令

# insert-ethers
会让你选择计算节点属性,选择n,然后OK。(n配置是在上面添加的)

wKiom1gi4Mbx6CjiAAGHNooIuNA829.png

出现以下界面表示等待计算节点启动安装。

wKioL1gi4XTxBzd8AAE8O1EQngI393.png

打开计算节点电源,进入网络安装

wKiom1gi4gKh_bmqAABwI_PCPII876.png

wKiom1gi4snxcXbWAAGZ_xeTwTE725.png

安装完成后会自动重启加入计算机群。


Rocks的管理维护

1.添加节点

如果要向cluster添加节点,在主节点上使用

# /opt/rocks/sbin/insert-ethers -hostname="compute-0-3" -rack=3 -rank=0 -cpus=8 -appliance="Compute" -mac="00:50:56:b0:00:10″ -device="eth0" -module="None" -ipaddr="10.255.254.5"-netmask="None" -norestart -batch

上面的命令会把compute-0-3的信息写入到rocks的数据库中,运行完成以后重启mac地址为:00:50:56:b0:00:10的计算节点,选择pxe启动就可以安装指定的计算节点了。

或者

# insert-ethers
然后在子节点设定网络启动。实现自动化安装。

2.添加用户

用一般的添加用户的命令进行操作。

# adduser username # passwd username # rocks sync users

特别最后一行命令用来通知子节点添加的用户信息,否则该用户是无法登陆子节点的。

3.删除节点

# rocks remove host compute-0-0 # rocks sync config
删除子节点并更新数据库,必须更新数据库,否则下次添加节点的时候可能会出现问题。

4.强制子节点重启安装

# rocks set host pxeboot compute-0-0 action=install # rocks set host pxeboot compute-0-0 action=os
第一条命令是子节点网络启动重新安装系统,后一个是子节点网络启动直接进入系统。这个可在集群断电
之后子节点重启直接进入grub的情况下使用。

5.显示集群节点列表

# rocks list host


6、rocks计算节点的类型

在运行insert-ethers命令后会发现,rocks默认的有两种appliance:compute节点和login节点。默认情况下login节点不是sge的submit节点,compute是submit节点,所以安装好节点以后用qhost命令只能看到compute节点而看不到login节点。

可以用下面的命令查看和修改appliance的参数设置:

[root@sz ~]# rocks list appliance attr login
[root@cloudsz1 nodes# rocks set appliance attr login
[root@cloudsz1 nodes# rocks list appliance attr

如有需要也可以使用add appliance添加自定义的节点类型,添加好其他类型的appliance以后需要设置相应的attr值


7、对默认rocks安装的一些调整和修改

1) 关闭计算节点重装

开始我们在一部分计算节点上部署了web应用,出现过几次web节点跑死机以后系统被重装的情况,所有web的内容全部丢掉了。后来发现rocks在默认的情况下计算节点(包括登陆节点)异常重启(比如cpu或者内存耗光以后死机重启)之后会重新安装OS,关闭rocks-grub服务可以禁止计算节点重装。

建议对于类似的应用可以创建用于web的appliances,单纯用于计算的计算节点还是不要关闭rocks-grub,这样计算节点异常重启后重新安装可以保证计算节点保持最新的状态,不会出现莫名其妙的问题。

修改方法:

在/opt/rocks/install/site-profiles/5.4/nodes中copy一份skeleton.xml为extend-compute.xml,然后修改新的文件:

chkconfig –level 2345 rocks-grub off

修改完这个配置文件以后需要重建rocks roll,使用如下的命令:

[root@cloudsz1 nodes]# cd /export/rocks/install
[root@cloudsz1 install]# rocks create distro

然后可以重新安装计算节点:

[root@cloudsz1 install]# rocks list host profile 
compute-0-0                
//这个命令可以查看节点所有的配置信息,如果能够正确打印出来说明计算节点配置没有问题,如果这个命令报错则需要先解决问题,否则在安装这个计算节点的时候节点会卡死。。
[root@cloudsz1 install]# ssh compute-0-0
[root@compute-0-0 ~]# /boot/kickstart/cluster-kickstart-pxe            //重启

rocks-grub服务主要修改了/etc/grub.conf文件,关闭rocks-grub以后节点的/etc/grub.conf文件为:

[root@compute-0-7 ~]# cat /etc/grub.conf 
#boot=/dev/sda 
default=0 
timeout=5 
hiddenmenu 
title Rocks (2.6.18-194.17.4.el5) 
        root (hd0,0) 
        kernel /boot/vmlinuz-2.6.18-194.17.4.el5 ro root=LABEL=/ 
        initrd /boot/initrd-2.6.18-194.17.4.el5.img

重新打开这个服务以后/etc/grub.conf变为:

[root@compute-0-7 ~]# cat /etc/grub.conf          
#boot=/dev/sda 
default=0 
timeout=5 
hiddenmenu 
title Rocks Reinstall 
        root (hd0,0) 
        kernel /boot/kickstart/default/vmlinuz-5.4-x86_64 ro root=LABEL=/ ramdisk_size=150000 kssendmac ks selinux=0 
        initrd /boot/kickstart/default/initrd.img-5.4-x86_64 
title Rocks (2.6.18-194.17.4.el5) 
        root (hd0,0) 
        kernel /boot/vmlinuz-2.6.18-194.17.4.el5 ro root=LABEL=/ 
        initrd /boot/initrd-2.6.18-194.17.4.el5.img

节点的installaction状态有os和install两种,可以设置不同的值,我还不是很清楚这两个参数有什么区别,只是发现insetallaction的值改为os的话在计算节点上执行/boot/kickstart/cluster-kickstart-pxe这个命令执行以后pxe安装将会报错。

[root@front pxelinux.cfg]# rocks set host installaction compute-0-0 action=install
[root@front pxelinux.cfg]# rocks list host
HOST         MEMBERSHIP CPUS RACK RANK RUNACTION INSTALLACTION
front:     Frontend   2    0    0    os        install
compute-0-0: Compute    2    0    0    os        install
compute-0-1: Compute    2    0    1    os        install

[root@front pxelinux.cfg]# rocks set host installaction compute-0-0 action=os
[root@front pxelinux.cfg]# rocks list host 
HOST         MEMBERSHIP CPUS RACK RANK RUNACTION INSTALLACTION
front:     Frontend   2    0    0    os        install
compute-0-0: Compute    2    0    0    os        os
compute-0-1: Compute    2    0    1    os        install

2) 安装软件或其他的配置

所有需要在计算节点上安装或者执行的软件和命令都可以写在/export/rocks/install/site-profiles/5.4/nodes中xxx.xml中,login和compute是rocks内置的appliance,配置文件的命令为extend-compute.xml和extend-login.xml,其他新增加的appliacne的配置文件名为appliance_name.xml:

需要安装的软件可以在下面的部分配置,所有需要安装的软件都需要打包成rpm,放在/export/rocks/install/contrib/5.4/x86_64/RPMS目录下,软件包只写名字和版本号,其余部分不需要写。

perl-devel
libxml2.i386
libxml2.x86_64

其他需要执行的命令可以写在:

                      
       
//需要执行的命令
ln -s /usr/java/latest/bin/java /usr/local/bin/java

//可以在配置文件中追加其他的内容

PATH=/opt/tianjing/bin:$PATH
export PATH

配置文件修改完成以后需要重建roll,参考前面提到的方法。

8. DNS管理:

    rocks在头节点开启了dns服务,使用bind,

     [root@compute-0-0 ~]# cat /etc/resolv.conf

   计算节点默认设置头节点为dns服务器。

     search local front.local
     nameserver 10.200.6.70

   有时dns服务在计算节点上可能出现问题,导致sge等程序无法解析主机名,所以我们一般会把头节点的/etc/hosts文件同步到所有计算节点,这样即使dns服务不正常也可以保证域名解析的正确。

9. 存储管理:

   rocks使用nfs共享存储,并通过autofs进行管理,包括用户的home目录(为了保证在各个节点上用户的配置信息是一致的,用户的home在所有节点上共享)和其他共享存储,rocks自带的autofs包版本不够高,有些bug,最好升级到最新的版本。

10. 文件同步:

    可以使用411put命令同步需要在所有节点上同步的文件,用法为:

     411put /etc/passwd /etc/hosts

11. 内置的其他软件

     rocks内置了sge作业调度系统以及tentakel管理软件。