混合云代理模式最佳实践

混合云代理模式集群的管理节点为已有集群的管理节点,计算节点由已有集群计算节点和云上新增计算节点组成。已有集群可以是线下集群,也可以是云上集群。本文介绍混合云代理模式集群(SGE调度器)的部署方案。

背景信息

在HPC生命科学领域,大部分企业均已经部署了线下的IDC数据中心,但可能会存在基础设施陈旧、算力不足的问题。随着业务的快速增长,企业希望在云上搭建新的算力集群,但同时需要利用上原有IDC内的资源。为满足上述场景的需求,阿里云E-HPC提供了混合云的解决方案,可以统一、高效地管控云上和线下的计算资源,并支持灵活运用云上资源的弹性优势,实现自动伸缩。

混合云解决方案分为主控模式和代理模式。

  • 主控模式:管理节点属于云上新增集群。

  • 代理模式:管理节点属于原先已有集群。

    说明

    代理模式下,已有集群可以是线下集群,也可以是云上其他地域的集群。

场景说明

假设已有集群为线下集群,配置为:

  • 管理节点:规格为4 vCPU、8 GiB内存(混合云方案的最小配置),操作系统使用CentOS7.6

  • 调度器:OpenGridScheduler(SGE)

  • 域账号服务:NIS用户管理

操作流程

本实践包含的操作如下:

操作

操作内容

步骤一:配置网络

打通已有集群和新增混合云集群之间的网络并配置安全组规则。

步骤二:创建E-HPC混合云集群

创建代理模式的混合云集群。

步骤三:扩容E-HPC混合云集群

新增集群内默认没有云上计算节点,需要扩容。

步骤四:配置自动伸缩

为混合云集群配置自动伸缩,实现根据业务需求自动增加或减少云上计算节点。

步骤五:提交作业进行测试

分别在已有集群队列和新增混合云集群队列中提交作业进行测试,测试集群能否正常工作。

步骤一:配置网络

  1. 打通已有集群和新增混合云集群之间的网络。

    请根据自身场景选择网络打通方案:

  2. 为已有集群的安全组添加入方向规则。具体操作,请参见添加安全组规则

    需要添加以下入方向规则:

    授权策略

    协议类型

    端口范围

    授权对象

    说明

    允许

    自定义TCP

    6444

    计算节点所属网段

    SGE端口

    允许

    • 自定义TCP

    • 自定义UDP

    834、835、905、111

    计算节点所属网段

    NIS端口

    允许

    自定义TCP

    22

    0.0.0.0/0

    E-HPC默认打开端口

    允许

    全部ICMP(IPv4)

    -1/-1

    0.0.0.0/0

    E-HPC默认打开端口

步骤二:创建E-HPC混合云集群

本节仅说明本最佳实践场景下创建混合云集群需要注意的配置项。更多配置项说明,请参见创建混合云集群

  1. 登录弹性高性能计算控制台

  2. 在集群页面的右上角,单击创建混合云集群

  3. 硬件配置页,完成节点、存储、网络等配置,然后单击下一步

    配置

    说明

    示例值

    可用区

    选择集群所属可用区。

    华东2 可用区L

    使用代理模式

    打开代理模式,表示该混合云集群由已有集群(云上或线下)的管理节点代为管理。

    打开

    VPC、交换机

    选择集群所属的VPC和交换机。请请确保交换机下的IP地址空间足够(可用IP数大于集群节点的数量)。

    • vpc-uf62yvldgikwaf2******

    • vsw-uf60uwjzu2um4ip******

    安全组

    关闭新建安全组,选择步骤一创建的安全组。

    sg-test

    文件存储位置

    选择集群节点要挂载的文件存储。支持挂载云上存储、本地存储或者不挂载。

    使用云上文件存储

    文件系统ID

    文件存储位置选择使用云上文件存储时,需选择NAS文件系统。

    3ba2b4a***(容量型 NFS)

    挂载点

    文件存储位置选择使用云上文件存储时,需选择NAS文件系统的挂载点。

    3ba2b4a***-ni**.cn-shanghai.nas.aliyuncs.com

  4. 软件配置页,完成镜像、调度节点、账号节点等配置,然后单击下一步

    配置

    说明

    示例值

    镜像类型

    镜像类型支持公共镜像、自定义镜像、计算巢部署物等。

    说明

    可以选择的镜像类型由选择的地域可用区、所登录账号本身是否有相关镜像资源决定,以界面显示为准。

    公共镜像

    镜像

    镜像提供节点所需的信息,包含了操作系统、预装软件,以及部署的业务或应用数据。

    CentOS_7.6_64

    调度器

    作业调度软件,请选择sge。

    sge

    调度节点IP

    代理管理本集群的已有集群的管理节点IP。

    10.0.XX.XX

    调度节点主机名

    代理管理本集群的已有集群的管理节点主机名。

    manager

    账号系统

    代理管理本集群的已有集群的账号系统。

    nis

    本地集群域名

    代理管理本集群的已有集群的域名。

    ehpc-hz-Gpxqdh****

    账号节点IP

    代理管理本集群的已有集群的管理节点IP。

    10.0.XX.XX

    账号节点主机名

    代理管理本集群的已有集群的管理节点主机名。

    manager

  5. 基础配置页,输入集群名称并配置登录密码。

    重要

    此处的登录密码必须与已有集群(线下或云上其他地域集群)的root密码保持一致。

  6. 在右侧确认配置信息,选中服务条款,然后单击确认

    创建后,请确保新创建的混合云集群已成功加入到已有集群,

  7. (可选)将已有集群的指定目录挂载到新创建的混合云集群。

    命令参考示例如下:

    mkdir -p /home-remote
    mount -t nfs -o vers=3,nolock,proto=tcp,noresvport 000ae4****-vmp**.cn-hangzhou.nas.aliyuncs.com:/ehpc-hz-GpQt5X****/home /home-remote

    挂载目录可以方便文件拷贝,您也可以将新创建的混合云集群的指定目录挂载到已有集群。

    如果想要更换混合云集群home目录,需要将原home下的credit目录拷贝至当前目录,并确认权限为755。命令参考如下:

    CLUSTER_ID=`cat /root/ehpc.conf |grep -i clusterid |awk -F '=' '{print $2}'`
    cp /ehpcdata/${CLUSTER_ID}/home/master_nis_ready  /home  (NIS)
    cp -rf /ehpcdata/${CLUSTER_ID}/home/ehpc_service  /home  (LDAP)

步骤三:扩容E-HPC混合云集群

新增的混合云集群中默认没有计算节点,因此需要扩容计算节点。

  1. 节点与队列页面,单击新建队列

    为混合云集群节点创建新的队列,以便区分节点所属集群。具体操作,请参见创建队列

  2. 集群页面,选择目标集群,单击扩容

  3. 新建节点页签下,配置节点信息,然后单击立即购买

    需要注意的参数如下:

    配置项

    说明

    示例值

    可用区

    选择节点所属可用区,建议选择混合云集群所属的可用区。

    华东2 可用区L

    交换机

    选择节点所属的交换机,建议选择混合云集群所属的交换机,确保已有集群已放开该交换机网段的访问。

    vsw-uf60uwjzu2um4ip******

    队列

    节点要加入的队列,请选择新创建的队列,以便区分。

    new

    主机名前缀

    节点的主机名前缀,必须与已有集群节点的主机名有所区分。

    new-compute

步骤四:配置自动伸缩

E-HPC集群支持配置自动伸缩策略,实现根据实时负载自动增加或减少混合云集群的计算节点。具体操作,请参见配置自动伸缩策略

混合云最佳实践4
重要

如果使用了集群的用户管理功能,请在用户页面单击同步集群用户,检查用户是否更新成功。

步骤五:提交作业进行测试

分别提交作业至混合云集群计算节点所在队列,以及原先已有集群计算节点所在队列进行测试。测试脚本qsub.sge的内容示例如下:

#!/bin/bash

#$ -cwd              #当前路径执行
#$ -N test1          #作业名称
#$ -q hybridcloudq   #指定云上队列
#$ -pe smp 2         #指定cpu核数
#$ -l vf=1g          #指定内存
#$ -o /home/xiaofan  #指定输出日志
#$ -e /home/xiaofan  #指定错误日志

sleep 10
ping -c 10 localhost
echo "demo complete."