Sun Grid Engine(现在叫做 Oracle Gird Engine)是一套开源的分布式资源管理软件,用来统一管理和利用所有(愿意被管理的)电脑上的资源,使得这些电脑(集群)使用起来就像一台电脑一样,好处是可以随意扩展总的计算资源(买更多的电脑加入集群),并且管理上就像使用一台电脑一样方便。使用者只需要把需要计算的工作准备好,提交到 Sun Grid Engine (SGE),SGE 就会根据已经订好的管理策略以及使用者的需求在集群里找到合适的电脑来完成计算工作。SGE 主要用在高性能计算、网格计算等领域。
我们云计算项目里面有个想法就是能在我们的云计算平台上快速创建多个高配置虚拟机并自动接入到 SGE 集群,能迅速满足整个实验室高峰时期的计算需求。目前我们的 SGE 集群包含 2 台 IBM 超级计算机,n 台 PC 服务器和多个刀片服务器,以后为了临时满足高峰时期的计算要求会从云里申请多个虚拟机并自动配置到 SGE 集群里。
安装 Sun Grid Engine 需要 Java 的支持(最好是 SUN 的 Java 版本),所以所有结点都需要安装 Java 包。Ubuntu 从 11.10 版本不在提供 SUN 的官方 Java 版本,需要另外的源:
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:ferramroberto/java
$ sudo apt-get update
$ sudo apt-get install sun-java6-jre
首先在所有结点上修改 /etc/hosts,grid00 是主控结点,grid01 和 grid02 是执行结点(我们一般把主控结点叫做 master 或者 head,执行结点叫做 client):
$sudo vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.2.10 grid00.linuxidc.com grid00
192.168.2.11 grid01.linuxidc.com grid01
192.168.2.12 grid02.linuxidc.com grid02
在主控结点(grid00)上安装 gridengine-master 以及一些管理工具 qhost/qconf/qstat 等(包含在 gridengine-client 中):
$ sudo apt-get install gridengine-client gridengine-common gridengine-master
如果不习惯命令行界面,可以在主控结点上装个 qmon 图形管理工具,界面如下:
$ sudo apt-get install xserver-xorg gridengine-qmon
在所有执行结点(grid01 和 grid02)上安装 gridengine-exec:
$ sudo apt-get install gridengine-exec
在主控结点上执行以下操作把所有的执行结点加到集群里:
$ sudo -i
# qconf -ah grid01
# qconf -ah grid02
在所有执行结点执行以下操作,通过 act_qmaster 这个文件识别主控结点,然后启动服务:
$ sudo echo "grid00.linuxidc.com" > /var/lib/gridengine/default/common/act_qmaster
$ sudo /etc/init.d/gridengine-exec start
最后在主控结点上查看一下是否成功:
# qhost
HOSTNAME ARCH NCPU LOAD MEMTOT MEMUSE SWAPTO SWAPUS
-------------------------------------------------------------------------------
global - - - - - - -
grid00.linuxidc.com - - - - - - -
grid01.linuxidc.com lx26-amd64 24 24.00 63.0G 1.7G 3.7G 0.0
grid02.linuxidc.com lx26-amd64 8 0.01 55.2G 642.2M 1.0G 0.0