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

更新时间:
复制 MD 格式

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

背景信息

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

重要

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

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

  • (推荐)CPFS-NFS

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

  • CPFS-POSIX

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

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

使用限制

挂载方式

使用限制

CPFS-NFS

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

CPFS-POSIX

  • CPFS-POSIX客户端仅支持CentOS 7.2、7.3、7.47.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文件系统。

      [root@manager ~]# df -h
      Filesystem                                                              Size  Used Avail Use% Mounted on
      /dev/vda1                                                                40G  3.9G   34G  11% /
      devtmpfs                                                                1.8G     0  1.8G   0% /dev
      tmpfs                                                                   1.8G     0  1.8G   0% /dev/shm
      tmpfs                                                                   1.8G  520K  1.8G   1% /run
      tmpfs                                                                   1.8G     0  1.8G   0% /sys/fs/cgroup
      cpfs-022241b19f01c84b-02629599ec  xxx.cn-shenzhen.cpfs.aliyuncs.com:/share/                       3.6T  432M  3.6T   1% /ehpcdata
      cpfs-022241b19f01c84b-02629599ec  xxx.cn-shenzhen.cpfs.aliyuncs.com:/share/ehpc-sz-L5Vxxx/opt     3.6T  432M  3.6T   1% /opt
      cpfs-022241b19f01c84b-02629599ec  xxx.cn-shenzhen.cpfs.aliyuncs.com:/share/ehpc-sz-L5Vxxx/home    3.6T  432M  3.6T   1% /home
      tmpfs                                                                  365M     0  365M   0% /run/user/0

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.47.6操作系统。

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

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

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

步骤二:创建自定义镜像

  1. 登录要制作镜像的ECS实例。具体操作,请参见使用Workbench登录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版本。

        返回示例如下:

        Welcome to Alibaba Cloud Elastic Compute Service !
        [root@iZbp xxx]# uname -r
        3.10.0-514.26.2.el7.x86_64
      2. CentOS官网下载kernel版本对应kernel-develrpm包。

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

        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 

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

    make InstallImages ...
    --------------------------------------------------------------
    mmbuildgpl: Building GPL module completed successfully at Tue May 23 11:08:22 CST 2023.
    --------------------------------------------------------------
  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管理节点。

      客户端管理节点 区域的表格中,可查看各管理节点对应的 ECS实例ID私网IP初始密码,用于登录目标管理节点。

    2. 获取/etc/hosts文件中的相关内容。

      cat /etc/hosts

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

      [root@cpfs-027cc4        -qr-001 ~]# cat /etc/hosts
      192.168.xxx        cpfs-contact-node2          cpfs-contact-node2                    #CPFS_192_168_0_210_MAGIC
      192.168.xxx        cpfs-contact-node1          cpfs-contact-node1                    #CPFS_192_168_0_209_MAGIC
      192.168.xxx        cpfs-027cc4bb79xxx    xxx001-qr-003    cpfs-027cc4bb7xxx    xxx0001-qr-003        #CPFS_192_168_0_xxx_MAGIC
      192.168.xxx        cpfs-027cc4bb79xxx    xxx001-qr-002    cpfs-027cc4bb7xxx    xxx0001-qr-002        #CPFS_192_168_0_xxx_MAGIC
      192.168.xxx        cpfs-027cc4bb79xxx    xxx001-qr-001    cpfs-027cc4bb7xxx    xxx0001-qr-001        #CPFS_192_168_0_xxx_MAGIC
      ::1     localhost       localhost.localdomain   localhost6      localhost6.localdomain6
      127.0.0.xxx        localhost       localhost.localdomain   localhost4      localhost4.localdomain4
      192.168.xxx        cpfs-quorum-image-v2.0.02       cpfs-quorum-image-v2.0.02
      192.168.xxx        cpfs-027cc4bb79   xxx0001-qr-001    cpfs-027cc4bb7902       xxx001-qr-001
      192.168.xxx        cpfs-027cc4bb79   xxx0001-qr-001    cpfs-027cc4bb7902       xxx001-qr-001_MAGICTAG
      192.168.xxx        cpfs-027cc4bb79   xxx0001-qr-002    cpfs-027cc4bb7902       xxx001-qr-002_MAGICTAG
      192.168.xxx        cpfs-027cc4bb79   xxx0001-qr-003    cpfs-027cc4bb7902       xxx001-qr-003_MAGICTAG
  5. 在要制作镜像的ECS实例中执行以下命令,将从CPFS管理节点获取的内容添加到ECS实例的/etc/hosts文件中。

    vim /etc/hosts

    内容示例如下:

    192.168.xxx.xxx    cpfs-contact-node2        cpfs-contact-node2              #CPFS_192_168         MAGIC
    192.168.xxx.xxx    cpfs-contact-node1        cpfs-contact-node1              #CPFS_192_168         MAGIC
    192.168.xxx.xxx    cpfs-027cc4bl   001-qr-003        cpfs-027cc4bb7    3001-qr-003          #CPFS_192_168    MAGIC
    192.168.xxx.xxx    cpfs-027cc4bl   001-qr-002        cpfs-027cc4bb7    3001-qr-002          #CPFS_192_168    MAGIC
    192.168.xxx.xxx    cpfs-027cc4bl   001-qr-001        cpfs-027cc4bb7    3001-qr-001          #CPFS_192_168    MAGIC
    ::1    localhost    localhost.localdomain    localhost6    localhost6.localdomain6
    127.0.0.x    localhost    localhost.localdomain    localhost4    localhost4.localdomain4
  6. CPFS管理节点,获取CPFS-POSIX客户端节点的免密钥登录文件。

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

      vim /etc/ssh/ssh_config

      StrictHostKeyChecking设置为no,示例如下:

      #   Host *
      #     ForwardAgent no
      #     ForwardX11 no
      #     PasswordAuthentication yes
      #     HostbasedAuthentication no
      #     GSSAPIAuthentication no
      #     GSSAPIDelegateCredentials no
      #     GSSAPIKeyExchange no
      #     GSSAPITrustDNS no
      #     BatchMode no
      #     CheckHostIP yes
      #     AddressFamily any
      #     ConnectTimeout 0
            StrictHostKeyChecking no
      #     IdentityFile ~/.ssh/id_rsa
      #     IdentityFile ~/.ssh/id_dsa
      #     IdentityFile ~/.ssh/id_ecdsa
    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实例的IPHostName。

      vim /etc/hosts

      示例如下:

      192.168.xxx         cpfs-contact-node2          cpfs-contact-node2         #CPFS_192_168_xxx_MAGIC
      192.168.xxx         cpfs-contact-node1          cpfs-contact-node1         #CPFS_192_168_xxx_MAGIC
      192.168.xxx    cpfs-027cc4bb79xx    3001-qr-003    cpfs-027cc4bb79xx    001-qr-003    #CPFS_192_168_xxx_MAGIC
      192.168.xxx    cpfs-027cc4bb79xx    3001-qr-002    cpfs-027cc4bb79xx    001-qr-002    #CPFS_192_168_xxx_MAGIC
      192.168.xxx    cpfs-027cc4bb79xx    3001-qr-001    cpfs-027cc4bb79xx    001-qr-001    #CPFS_192_168_xxx_MAGIC
      ::1         localhost       localhost.localdomain   localhost6      localhost6.localdomain6
      127.0.0.1    localhost       localhost.localdomain   localhost4      localhost4.localdomain4
      192.168.xxx    cpfs-quorum-image-v2.0.02    cpfs-quorum-image-v2.0.02
      192.168.xxx    cpfs-027cc4bb79xx    01-qr-001    cpfs-027cc4bb7902x    001-qr-001
      192.168.xxx    cpfs-027cc4bb79xx    01-qr-001    cpfs-027cc4bb7902x    001-qr-001_MAGICTAG
      192.168.xxx    cpfs-027cc4bb79xx    01-qr-002    cpfs-027cc4bb7902x    001-qr-002_MAGICTAG
      192.168.xxx    cpfs-027cc4bb79xx    01-qr-003    cpfs-027cc4bb7902x    001-qr-003_MAGICTAG
      # 以下为新增的 ECS 实例主机名映射
      192.168.xxx    iZwz97jbxifkjxxx
    2. CPFS管理节点执行以下命令,挂载CPFS文件系统。

      以下命令中的192.168.XX.XXECS实例的私网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实例环境可以用于制作自定义镜像。

      [root@iZwz97jb*       ~]# df -h
      Filesystem            Size  Used Avail Use% Mounted on
      /dev/vda1              40G  3.4G   35G   9% /
      devtmpfs              1.8G     0  1.8G   0% /dev
      tmpfs                 1.8G     0  1.8G   0% /dev/shm
      tmpfs                 1.8G  416K  1.8G   1% /run
      tmpfs                 1.8G     0  1.8G   0% /sys/fs/cgroup
      027cc4bb790276dd-000001  3.6T  496M  3.6T   1% /cpfs/027cc4lxxx...xxxjd-000001
      tmpfs                 365M     0  365M   0% /run/user/0
  8. 卸载CPFS文件系统,以便后续制作自定义镜像。

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

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

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

    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文件系统。

      [root@manager ~]# df -h
      Filesystem            Size  Used Avail Use% Mounted on
      /dev/vda1              40G  4.9G   33G  13% /
      devtmpfs              1.8G     0  1.8G   0% /dev
      tmpfs                 1.8G     0  1.8G   0% /dev/shm
      tmpfs                 1.8G  500K  1.8G   1% /run
      tmpfs                 1.8G     0  1.8G   0% /sys/fs/cgroup
      327cc4bb790276dd-000001  3.6T  620M  3.6T   1% /opt
      tmpfs                 365M     0  365M   0% /run/user/0