混合云主控模式集群的管理节点为云上新增集群的管理节点,计算节点由线下已有计算节点和云上新增计算节点组成。本文以E-HPC云上集群将线下已有计算节点纳入管理的场景为例,介绍混合云主控模式集群(SGE调度器)的部署方案。
本文的部署方案仅支持使用SGE调度器,并且需要提交工单申请开通白名单才能使用。
背景信息
在HPC生命科学领域,大部分企业均已经部署了线下的IDC数据中心,但可能会存在基础设施陈旧、算力不足的问题。随着业务的快速增长,企业希望在云上搭建新的算力集群,但同时需要利用上原有IDC内的资源。为满足上述场景的需求,阿里云E-HPC提供了混合云的解决方案,可以统一、高效地管控云上和线下的计算资源,并支持灵活运用云上资源的弹性优势,实现自动伸缩。
混合云解决方案分为主控模式和代理模式。
主控模式:管理节点属于云上新增集群。
代理模式:管理节点属于原先已有集群。
说明代理模式下,已有集群可以是线下集群,也可以是云上其他地域的集群。
场景说明
假设已有线下集群的计算节点的配置为:
操作系统:CentOS 7.6
重要对于线下计算节点,目前暂支持操作系统为CentOS 7系列的节点。
规格:2 vCPU、4 GiB内存
操作流程
本实践包含以下操作:
操作 | 操作内容 |
准备云上的E-HPC集群,并配置网络。 | |
获取云上集群配置信息,用于线下计算节点配置使用。 | |
在线下计算节点部署调度器客户端、用户管理客户端,并挂载云上存储。 | |
在云上集群中创建用于管理线下计算节点的队列,并将线下计算节点加入到云上集群的队列中。 | |
配置集群进行自动伸缩,自动增加或减少云上计算节点。 | |
在云上集群中提交作业至队列,测试节点能否正常工作。 | |
对于不再需要使用的线下计算节点,可以从云上集群中移除,同时需要在节点中停止相关服务。 |
步骤一:创建云上E-HPC集群
创建一个E-HPC集群。
具体操作,请参见使用向导创建集群。配置时,需要注意的参数如下:
部署方式选择精简,默认包括1个管控节点和1个计算节点(可不选),其中管控节点的规格建议选择4 vCPU,8 GiB及以上。
调度器使用SGE,即选择opengridscheduler。
域账号服务选择nis。
打通云上集群和线下IDC的网络。
支持通过VPN网关或者物理专线打通云上和线下网络。
VPN网关的相关配置请参见IPsec-VPN入门概述或SSL-VPN入门概述。
物理专线的相关配置请参见专线连接介绍。
配置安全组。
由于线下计算节点需要加入到云上集群进行统一管理,因此需要为集群所属的安全组配置入方向规则,允许线下计算节点访问云上集群。
您可以在E-HPC集群详情页单击安全组ID,快速跳转到集群所属的安全组页面,添加入方向访问规则,其中源IP为线下计算节点的IP地址网段。示例如下:
本文采用的环境示例如下:
类型 | 说明 |
管控节点 | 1台ECS,规格为ecs.c7a.xlarge。 |
计算节点 | 1台ECS,规格为ecs.c7a.xlarge;2台本地服务器。操作系统为CentOS 7.6。 |
网络 | 使用SSL-VPN打通云上集群和线下IDC的网络。 |
步骤二:获取云上集群配置信息
创建E-HPC集群后,需获取集群管控信息,提供给线下计算节点配置使用。
登录E-HPC集群。具体操作,请参见登录集群。
下载用于获取集群配置信息的脚本。
wget https://public-ehpc-package.oss-cn-hangzhou.aliyuncs.com/scheduler/offpremise_config_fetch.sh
执行脚本获取配置信息。
source offpremise_config_fetch.sh
脚本输出的OFFPREMISE_PARAMS文件即为配置信息。执行
cat
命令获取配置信息。
步骤三:部署线下计算节点
您需要在线下计算节点上部署调度器客户端、用户管理客户端,并挂载云上存储。
操作前,请确保节点所在网络与云上集群网络互通。例如如果采用SSL-VPN,线下计算节点需要安装SSL客户端。
单节点操作
登录某一计算节点执行以下操作:
下载部署服务脚本。
wget https://public-ehpc-package.oss-cn-hangzhou.aliyuncs.com/scheduler/deploy_nis_sge_client.sh
执行脚本部署服务。
sh deploy_nis_sge_client.sh <集群配置信息>
请根据实际获取的集群配置信息替换
<集群配置信息>
,示例如下:sh deploy_nis_sge_client.sh ehpc-hz-e5WF****** manager 10.18.XX.XX 000a******-vm***.cn-hangzhou.nas.aliyuncs.com:/ehpc-hz-e5WF****** manager 10.18.XX.XX
多节点操作
登录本地的配置节点或者某一计算节点执行以下操作,需确保该节点与其他线下计算节点的网络连通。
下载部署服务脚本。
wget https://public-ehpc-package.oss-cn-hangzhou.aliyuncs.com/scheduler/batch_install_clients.sh
创建hosts文件。
hosts文件中每一行对应一台计算节点,格式为
[host_name] [host_ip]
,示例如下:执行脚本部署服务。
sh batch_install_clients.sh <集群配置信息> ./hosts
请根据实际获取的集群配置信息替换
<集群配置信息>
,示例如下:sh batch_install_clients.sh ehpc-hz-e5WF****** manager 10.18.XX.XX 000a******-vm***.cn-hangzhou.nas.aliyuncs.com:/ehpc-hz-e5WF****** manager 10.18.XX.XX ./hosts
步骤四:将线下计算节点加入到云上集群
线下计算节点暂不支持移动队列,您需要先创建用于管理线下计算节点的队列,然后再扩容集群,将线下计算节点加入到集群的指定队列。
创建队列。具体操作,请参见管理队列。
将线下计算节点加入到集群中。
在弹性高性能计算控制台的集群页面,找到目标集群,单击右上角的扩容。
在弹出面板选择线下节点页签。
选择新创建的队列,根据需要逐个录入或者批量导入线下计算节点信息,单击确定。
要录入的节点信息如下:
主机名:与实际节点主机名保持一致。
节点IP:与实际节点IP保持一致。
CPU:通过
lscpu
命令查看的节点CPU数。内存:节点总内存大小。
重要请确保填写的主机名和节点IP与实际节点一致,否则无法加入集群。
对于基于SSL-VPN连接的节点,节点IP地址需使用VPN虚拟网卡tun0的IP地址,您可以通过
ifconfig
命令查看。
在节点与队列页面,找到目标集群,筛选节点类型和队列,查看线下计算节点。
刷新页面更新节点状态,等待1~2分钟,当线下计算节点的状态为运行中时,表示添加成功。
步骤五:配置自动伸缩
E-HPC集群支持配置自动伸缩策略,实现根据实时负载自动增加或减少云上的计算节点。具体操作,请参见配置自动伸缩策略。
线下计算节点及所属队列不支持自动伸缩。
步骤六:提交作业进行测试
提交作业至云上计算节点所在队列进行测试。
qsub sample1.sh
测试脚本sample1.sh的内容示例如下,请根据实际替换队列(
-q
)和路径(-o
、-e
)。#!/bin/bash #$ -cwd #$ -l vf=1G #$ -q workq #$ -N sge-demo1 #$ -o /home/test/ #$ -e /home/test/ echo "demo start, sleep 10s and ping localhost" sleep 10 ping -c 10 localhost echo "demo complete"
提交作业至线下计算节点所在队列进行测试。
qsub sample2.sh
测试脚本sample2.sh的内容示例如下,请根据实际替换队列(
-q
)和路径(-o
、-e
)。#!/bin/bash #$ -cwd #$ -l vf=1G #$ -q local #$ -N sge-demo2 #$ -o /home/test/ #$ -e /home/test/ echo "demo start, sleep 10s and ping localhost" sleep 10 ping -c 10 localhost echo "demo complete"
(可选)从云上集群中移除线下计算节点
从集群中移除线下计算节点。
具体操作,请参见删除节点。
在线下计算节点中停止相关服务。
单节点操作
登录某一计算节点执行以下操作:
下载停止服务脚本。
wget https://public-ehpc-package.oss-cn-hangzhou.aliyuncs.com/scheduler/nis_sge_client_stop.sh
执行脚本停止服务。
sh nis_sge_client_stop.sh <集群配置信息>
请根据实际获取的集群配置信息替换
<集群配置信息>
,示例如下:sh nis_sge_client_stop.sh ehpc-hz-e5WF****** manager 10.18.XX.XX 000a******-vm***.cn-hangzhou.nas.aliyuncs.com:/ehpc-hz-e5WF****** manager 10.18.XX.XX
多节点操作
登录本地的配置节点或者某一计算节点执行以下操作,需确保该节点与其他线下计算节点的网络连通。
下载停止服务脚本。
wget https://public-ehpc-package.oss-cn-hangzhou.aliyuncs.com/scheduler/batch_stop_clients.sh
创建host文件。
hosts文件中每一行对应一台计算节点,格式为
[host_name] [host_ip]
,示例如下:执行脚本停止服务。
sh batch_stop_clients.sh <集群配置信息> ./hosts
请根据实际获取的集群配置信息替换
<集群配置信息>
,示例如下:sh batch_stop_clients.sh ehpc-hz-e5WF****** manager 10.18.XXX.XX 000a******-vm***.cn-hangzhou.nas.aliyuncs.com:/ehpc-hz-e5WF****** manager 10.18.XX.XX ./hosts