创建以CPFS为共享存储的E-HPC集群

以CPFS为共享存储的E-HPC集群适合动画渲染、生命科学、气象预报、能源勘探等需要超高吞吐的应用场景。本文介绍如何创建以CPFS为共享存储的高性能计算集群,为您提供一个高IOPS、高吞吐、低时延的计算集群。

背景信息

CPFS(Cloud Paralleled File System)是一种高性能并行文件存储系统,专为AI训练和E-HPC等高性能计算场景打造,最大支持数十GB/s吞吐能力。CPFS的数据存储在集群中的多个数据节点,并可由多个客户端同时访问,从而能够为大型E-HPC提供高IOPS、高吞吐、低时延的数据存储服务。更多信息,请参见什么是文件存储CPFS

重要

CPFS支持按量付费和资源包两种付费方式,具体请参见计费概述

CPFS支持CPFS-NFS和CPFS-POSIX两种挂载方式。

  • (推荐)CPFS-NFS

    CPFS支持NFSv3协议访问,利用NFS协议,可以获得更加优秀的操作系统兼容性和计算端弹性,并仍能享受CPFS强大的吞吐能力。更多信息,请参见快速入门(CPFS-NFS)(推荐)

  • CPFS-POSIX

    CPFS支持POSIX协议访问。POSIX客户端可同时连接多个存储节点,对上层应用提供标准POSIX和MPI-IO接口,可以提供更优的性能和应用接口兼容性。更多信息,请参见快速入门(CPFS-POSIX)

更多关于两种方式的差异请参见挂载访问概述

使用限制

挂载方式

使用限制

CPFS-NFS

CPFS-NFS客户端仅支持CentOS 7.X、CentOS 8.X、Ubuntu、Alibaba Cloud Linux 2和Alibaba Cloud Linux 3操作系统。

CPFS-POSIX

  • CPFS-POSIX客户端仅支持CentOS 7.2、7.3、7.4和7.6操作系统。

  • 通过该方式挂载的CPFS只能供一个E-HPC集群使用。

  • 通过该方式挂载CPFS的集群由于架构限制无法使用自动伸缩功能。

  • 通过该方式挂载CPFS的集群在扩容集群时,只能选择创建集群时的自定义镜像对集群进行扩容,否则会出现集群异常。

操作步骤

请根据业务需求选择合适的方式挂载CPFS文件系统。

CPFS-NFS

步骤一:准备资源

开通CPFS服务,创建CPFS文件系统、协议服务和导出目录。

  1. 创建文件系统

  2. 创建协议服务

  3. 创建导出目录

步骤二:创建集群并挂载CPFS

  1. 创建挂载CPFS文件系统的E-HPC集群。

    关于如何创建E-HPC集群。请参见使用向导创建集群

    创建时,需要注意的参数如下:

    • 共享存储

      • 文件系统类型:选择CPFS-NFS

      • 文件系统ID挂载点:选择创建好的CPFS文件系统和挂载点。

    • 镜像

      • 镜像类型:选择公共镜像。

      • 镜像:选择CPFS-NFS客户端支持的操作系统镜像。

  2. 等待集群创建完成后登录集群,确认集群是否已挂载CPFS文件系统。

    1. 登录E-HPC集群。具体操作,请参见登录集群

    2. 执行df -h检查集群是否已挂载CPFS文件系统。

      返回如下信息时,说明集群已挂载CPFS文件系统。

      CPFS-NFS.png

CPFS-POSIX

步骤一:准备资源

  1. 开通CPFS服务,创建CPFS文件系统,并添加挂载点。

    1. 创建文件系统

    2. 添加POSIX客户端挂载点

  2. 创建一台ECS实例。具体操作,请参见自定义购买实例

    该ECS实例用于制作已部署CPFS-POSIX客户端环境的自定义镜像,以便后续可以使用自定义镜像来创建集群节点,实现自动挂载CPFS。

    说明

    自定义镜像制作完成后,您可以释放该ECS实例。

    创建ECS实例时,需要注意的配置参数如下:

    • 实例规格:选择至少包含2 vCPU、4 GiB内存的实例规格,确保CPFS-POSIX客户端能够正常运行。

    • 镜像:选择CPFS-POSIX客户端支持的CentOS 7.2、7.3、7.4或7.6操作系统。

    • 网络:必须与CPFS文件系统的专有网络和交换机保持一致。

    • 公网IP:分配公网IPv4地址。

    • 安全组:必须与CPFS文件系统的安全组保持一致。

步骤二:创建自定义镜像

  1. 登录要制作镜像的ECS实例。具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 在要制作镜像的ECS实例中。安装客户端和依赖包。

    1. 下载并解压RPM(Red Hat Package Manager)包。

      mkdir /tmp/rpms
      cd /tmp/rpms
      wget https://gpfs-rpms.oss-cn-beijing.aliyuncs.com/CPFS2.2-CentOS.tar.gz
      tar xvfz CPFS2.2-CentOS.tar.gz
    2. 安装CPFS-POSIX客户端的依赖软件。

      yum install -y cpp gcc gcc-c++ binutils ksh elfutils elfutils-devel rpm-build
    3. 如果ECS实例为CentOS 7.2、7.3、7.4操作系统,需安装对应系统版本的kernel-devel。

      1. 执行uname -r查看kernel版本。

        返回示例如下:

        查看kernel版本
      2. CentOS官网下载kernel版本对应kernel-devel的rpm包。

        命令示例如下,实际操作时请按版本替换命令。

        wget https://buildlogs.centos.org/c7.1611.u/kernel/20170704132018/3.10.0-514.26.2.el7.x86_64/kernel-devel-3.10.0-514.26.2.el7.x86_64.rpm
      3. 安装kernel-devel。

        yum install kernel-devel-3.10.0-514.26.2.el7.x86_64.rpm -y
    4. 执行以下命令,安装CPFS-POSIX客户端。

      cd /tmp/rpms/CentOS/CentOS7
      yum install -y gpfs.adv-*.x86_64.rpm gpfs.base-*.x86_64.rpm gpfs.docs-*.noarch.rpm gpfs.gpl-*.noarch.rpm gpfs.gskit-*.x86_64.rpm gpfs.gss.pmsensors-*.x86_64.rpm gpfs.license.dm-*.x86_64.rpm gpfs.msg.en_US-*.noarch.rpm
  3. 执行以下命令,构建系统。

    /usr/lpp/mmfs/bin/mmbuildgpl 

    当返回如下信息时,说明系统已构建。若无返回信息,请再次执行该命令。

    CPFS-创建自定义镜像..png
  4. 登录CPFS管理节点,获取/etc/hosts文件中的相关内容。

    1. 登录CPFS管理节点。

      NAS控制台文件系统列表页面,单击目标CPFS文件系统ID进入CPFS文件系统详情页面,然后单击POSIX挂载使用,即可查看CPFS-POSIX客户端管理节点。默认情况下,第一台ECS实例的名称格式为<CPFS文件系统ID>-000001-qr-001,例如cpfs-027cc4bb7902****-000001-qr-001,该实例即为CPFS管理节点。

      CPFS-挂载点..png
    2. 获取/etc/hosts文件中的相关内容。

      cat /etc/hosts

      返回示例如下,拷贝前5行内容即可。

      CPFS-hosts..png
  5. 在要制作镜像的ECS实例中执行以下命令,将从CPFS管理节点获取的内容添加到ECS实例的/etc/hosts文件中。

    vim /etc/hosts

    内容示例如下:

    CPFS-host2..png
  6. 在CPFS管理节点,获取CPFS-POSIX客户端节点的免密钥登录文件。

    1. 修改CPFS管理节点的/etc/ssh/ssh_config文件中的配置。

      vim /etc/ssh/ssh_config

      StrictHostKeyChecking设置为no,示例如下:

      CPFS-公钥..png
    2. 执行以下命令,将公钥信息拷贝至要制作镜像的ECS实例。

      命令中192.168.XX.XX为要制作镜像的ECS实例的私网IP,请按实际替换。

      ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.XX.XX
  7. 检查要制作镜像的ECS实例的环境是否可以正常挂载CPFS。

    1. 登录CPFS管理节点,在/etc/hosts中加入ECS实例的IP和HostName。

      vim /etc/hosts

      示例如下:

      CPFS-host3..png
    2. 在CPFS管理节点执行以下命令,挂载CPFS文件系统。

      以下命令中的192.168.XX.XX为ECS实例的私网IP,请按实际替换。

      mmaddnode -N 192.168.XX.XX
      mmchlicense client --accept -N  192.168.XX.XX
      mmchnode -N 192.168.XX.XX --perfmon
      mmstartup -N 192.168.XX.XX
      mmmount all -N 192.168.XX.XX
    3. 登录ECS实例,执行df -h检查ECS实例是否已挂载CPFS文件系统。

      返回如下信息时,说明ECS实例已挂载CPFS,表示该ECS实例环境可以用于制作自定义镜像。

      CPFS-挂载成功..png
  8. 卸载CPFS文件系统,以便后续制作自定义镜像。

    1. 登录CPFS管理节点,执行以下命令卸载CPFS文件系统。

      以下命令中的192.168.XX.XX为ECS实例的私网IP,请按实际替换。

      mmshutdown -N 192.168.XX.XX
      mmdelnode -N 192.168.XX.XX
    2. 在CPFS管理节点,删除在/etc/hosts中添加的ECS实例的IP和HostName。

    3. 登录ECS实例,执行df -h确认ECS实例已卸载CPFS文件系统。

  9. 使用ECS实例创建自定义镜像。具体操作,请参见使用实例创建自定义镜像

步骤三:创建集群并挂载CPFS

  1. 创建挂载CPFS文件系统的E-HPC集群。

    关于如何创建E-HPC集群。请参见使用向导创建集群

    创建时,需要注意的参数如下:

    • 共享存储

      • 文件系统类型:选择CPFS-POSIX

      • 文件系统ID挂载点:选择创建好的CPFS文件系统和挂载点。

    • 镜像

      • 镜像类型:选择自定义镜像。

      • 镜像:选择上一步创建的自定义镜像。

  2. 等待集群创建完成后登录集群,确认集群是否已挂载CPFS文件系统。

    1. 登录E-HPC集群。具体操作,请参见登录集群

    2. 执行df -h检查集群是否已挂载CPFS文件系统。

      返回如下信息时,说明集群已挂载CPFS文件系统。

      CPFS-集群挂载成功..png