以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文件系统。
CPFS-NFS
步骤一:准备资源
开通CPFS服务,创建CPFS文件系统、协议服务和导出目录。
步骤二:创建集群并挂载CPFS
-
创建挂载CPFS文件系统的E-HPC集群。
关于如何创建E-HPC集群。请参见使用向导创建集群。
创建时,需要注意的参数如下:
-
共享存储
-
文件系统类型:选择CPFS-NFS。
-
文件系统ID和挂载点:选择创建好的CPFS文件系统和挂载点。
-
-
镜像:
-
镜像类型:选择公共镜像。
-
镜像:选择CPFS-NFS客户端支持的操作系统镜像。
-
-
-
等待集群创建完成后登录集群,确认集群是否已挂载CPFS文件系统。
-
登录E-HPC集群。具体操作,请参见登录集群。
-
执行
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
步骤一:准备资源
-
开通CPFS服务,创建CPFS文件系统,并添加挂载点。
-
创建一台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文件系统的安全组保持一致。
-
步骤二:创建自定义镜像
-
登录要制作镜像的ECS实例。具体操作,请参见使用Workbench登录Linux实例。
-
在要制作镜像的ECS实例中。安装客户端和依赖包。
-
下载并解压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 -
安装CPFS-POSIX客户端的依赖软件。
yum install -y cpp gcc gcc-c++ binutils ksh elfutils elfutils-devel rpm-build -
如果ECS实例为CentOS 7.2、7.3、7.4操作系统,需安装对应系统版本的kernel-devel。
-
执行
uname -r查看kernel版本。返回示例如下:
Welcome to Alibaba Cloud Elastic Compute Service ! [root@iZbp xxx]# uname -r 3.10.0-514.26.2.el7.x86_64 -
在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 -
安装kernel-devel。
yum install kernel-devel-3.10.0-514.26.2.el7.x86_64.rpm -y
-
-
执行以下命令,安装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
-
-
执行以下命令,构建系统。
/usr/lpp/mmfs/bin/mmbuildgpl当返回如下信息时,说明系统已构建。若无返回信息,请再次执行该命令。
make InstallImages ... -------------------------------------------------------------- mmbuildgpl: Building GPL module completed successfully at Tue May 23 11:08:22 CST 2023. -------------------------------------------------------------- -
登录CPFS管理节点,获取/etc/hosts文件中的相关内容。
-
登录CPFS管理节点。
在NAS控制台的文件系统列表页面,单击目标CPFS文件系统ID进入CPFS文件系统详情页面,然后单击POSIX挂载使用,即可查看CPFS-POSIX客户端管理节点。默认情况下,第一台ECS实例的名称格式为
<CPFS文件系统ID>-000001-qr-001,例如cpfs-027cc4bb7902****-000001-qr-001,该实例即为CPFS管理节点。在 客户端管理节点 区域的表格中,可查看各管理节点对应的 ECS实例ID、私网IP 和 初始密码,用于登录目标管理节点。
-
获取
/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
-
-
在要制作镜像的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 -
在CPFS管理节点,获取CPFS-POSIX客户端节点的免密钥登录文件。
-
修改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 -
执行以下命令,将公钥信息拷贝至要制作镜像的ECS实例。
命令中
192.168.XX.XX为要制作镜像的ECS实例的私网IP,请按实际替换。ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.XX.XX
-
-
检查要制作镜像的ECS实例的环境是否可以正常挂载CPFS。
-
登录CPFS管理节点,在
/etc/hosts中加入ECS实例的IP和HostName。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 -
在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 -
登录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
-
-
卸载CPFS文件系统,以便后续制作自定义镜像。
-
登录CPFS管理节点,执行以下命令卸载CPFS文件系统。
以下命令中的
192.168.XX.XX为ECS实例的私网IP,请按实际替换。mmshutdown -N 192.168.XX.XX mmdelnode -N 192.168.XX.XX -
在CPFS管理节点,删除在
/etc/hosts中添加的ECS实例的IP和HostName。 -
登录ECS实例,执行
df -h确认ECS实例已卸载CPFS文件系统。
-
-
使用ECS实例创建自定义镜像。具体操作,请参见使用实例创建自定义镜像。
步骤三:创建集群并挂载CPFS
-
创建挂载CPFS文件系统的E-HPC集群。
关于如何创建E-HPC集群。请参见使用向导创建集群。
创建时,需要注意的参数如下:
-
共享存储
-
文件系统类型:选择CPFS-POSIX。
-
文件系统ID和挂载点:选择创建好的CPFS文件系统和挂载点。
-
-
镜像:
-
镜像类型:选择自定义镜像。
-
镜像:选择上一步创建的自定义镜像。
-
-
-
等待集群创建完成后登录集群,确认集群是否已挂载CPFS文件系统。
-
登录E-HPC集群。具体操作,请参见登录集群。
-
执行
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
-