以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-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实例。具体操作,请参见通过密码或密钥认证登录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版本。返回示例如下:
在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
当返回如下信息时,说明系统已构建。若无返回信息,请再次执行该命令。
登录CPFS管理节点,获取/etc/hosts文件中的相关内容。
登录CPFS管理节点。
在NAS控制台的文件系统列表页面,单击目标CPFS文件系统ID进入CPFS文件系统详情页面,然后单击POSIX挂载使用,即可查看CPFS-POSIX客户端管理节点。默认情况下,第一台ECS实例的名称格式为
<CPFS文件系统ID>-000001-qr-001
,例如cpfs-027cc4bb7902****-000001-qr-001
,该实例即为CPFS管理节点。获取
/etc/hosts
文件中的相关内容。cat /etc/hosts
返回示例如下,拷贝前5行内容即可。
在要制作镜像的ECS实例中执行以下命令,将从CPFS管理节点获取的内容添加到ECS实例的/etc/hosts文件中。
vim /etc/hosts
内容示例如下:
在CPFS管理节点,获取CPFS-POSIX客户端节点的免密钥登录文件。
修改CPFS管理节点的
/etc/ssh/ssh_config
文件中的配置。vim /etc/ssh/ssh_config
将
StrictHostKeyChecking
设置为no
,示例如下:执行以下命令,将公钥信息拷贝至要制作镜像的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
示例如下:
在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实例环境可以用于制作自定义镜像。
卸载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实例创建自定义镜像。具体操作,请参见使用实例创建自定义镜像。