阿里云文件存储NAS(Network Attached Storage)是面向阿里云ECS实例、E-HPC和ACK等计算节点的文件存储服务。阿里云NAS服务具有无缝集成、共享访问、安全控制等特性,非常适合跨多个ECS、E-HPC或ACK实例部署的应用程序访问相同数据来源的应用场景。本文介绍如何配置NAS共享存储。
背景信息
为了保护数据科学家的工作内容和方便读取共享的训练数据,建议您在Arena提交作业的运行环境中配置共享存储卷并挂载。确保数据科学家的工作内容(代码、数据)得以保留,不会随着容器删除而丢失。在团队开发中,建议分配一个共享的存储池,让数据和代码能够在团队里共享。
在Arena提交作业时,如果您声明了配置共享存储及要挂载到运行环境的路径,可以使用--data
参数。共享存储将会被挂载到您指定的目录中,提交作业可以复用这部分数据或者代码。
在Kubernetes中,通过存储卷(PV)和存储声明(PVC)描述存储对象。作为集群管理员,分配环境时您需要为每个数据科学家创建属于自己的存储声明。例如用户A和用户B,存储声明的后端可以挂载到相同的NAS或者CPFS,但是必须指定不同的子目录,保证他们的工作环境隔离。
步骤一:创建NAS实例
有关创建NAS实例的具体操作步骤,请参见通过控制台创建通用型NAS文件系统。
创建NAS实例的参数配置说明如下:
文件系统类型设置为通用型。
地域设置为和ACK集群相同的地域。
专有网络VPC选择和ACK集群相同的VPC。
协议类型设置为NFS。
步骤二:挂载文件系统
创建文件存储NAS实例后,您需要将NFS文件系统挂载至同一VPC内的ECS实例并验证挂载,本文以控制台一键挂载为例。更多挂载方式请参见挂载文件系统场景说明。
挂载NAS文件系统
登录NAS控制台,执行以下操作:
在左侧导航栏,选择文件系统>文件系统列表。
在顶部菜单栏,选择地域。
找到刚创建的文件系统,然后单击操作列的挂载。
说明首次使用NAS一键挂载功能,需要进行NAS一键挂载关联角色授权,请根据对话框中的提示,完成NAS一键挂载服务关联角色授权。更多信息,请参见NAS服务关联角色。
在挂载面板,完成挂载NAS文件系统配置。
选择挂载点,然后单击下一步。
选择目标ECS实例,然后单击下一步。
请选择与NAS在同一VPC下的ECS实例,当选择不一致时,NAS会提示可能导致网络不通,请注意排查。
说明如果您在实例下拉菜单中查询不到新建的ECS实例,请您刷新页面后再次尝试。
该配置仅支持选择一台目标ECS实例,如果您需要多台ECS实例挂载同一文件系统,请参见多台ECS实例批量挂载同一NAS文件系统。
配置挂载到ECS。
配置项
说明
挂载路径
目标ECS实例上待挂载的本地路径。
自动挂载
默认选中开机自动挂载,当您重启ECS实例时,无需重复挂载操作。
协议类型
选择文件系统协议类型。
通用性NAS文件系统支持NFSv3和NFSv4.0。如果您的业务场景不包含多台ECS实例同时编辑同一个NAS文件,建议您选择NFSv3,达到最优性能。
极速型NAS文件系统支持NFSv3。
NAS目录
NAS文件系统目录。
NAS的根目录(/)或任意子目录(例如:/abc)。
说明如果提示目录不存在,您可以选中确认新建目录,在文件系统中新建该目录。同时您还需要配置创建该目录的UID和GID以及POSIX权限,如果不配置,则使用默认值和默认权限直接创建。
挂载参数
建议您使用默认挂载参数。更多参数说明,请参见参数说明。
单击完成挂载。
挂载需要大约1~2分钟。当挂载状态为挂载成功时,则表示NAS文件系统已成功挂载至ECS。如果挂载状态为挂载失败时,您可以通过排查工具进行排查,详情请参见Linux挂载NFS协议文件系统失败自动检查脚本。
验证挂载
挂载成功后,您可以在ECS上把NAS文件系统当作一个普通的目录来访问和使用,示例如下。
远程连接ECS实例,执行以下命令,在ECS实例上访问NAS文件系统。
mkdir /mnt/dir1 mkdir /mnt/dir2 touch /mnt/file1 echo 'some file content' > /mnt/file2 ls /mnt
返回如图所示信息,说明成功访问通用容量型NAS NFS文件系统。
在文件存储NAS中,需要通过挂载点将文件系统挂载至云服务器ECS。添加更多挂载点、查看挂载点地址的具体操作,请参见管理挂载点。
添加挂载点需注意:
挂载点类型设置为专有网络。
VPC网络和交换机设置为和ACK集群一致的VPC和交换机。
步骤三:配置ACK集群的存储卷(PV)和存储声明(PVC)
创建PV
在集群管理页左侧导航栏,选择 。
在存储声明页面,单击右上角的创建。
在弹出的创建存储声明页面中,填写界面参数。
参数
说明
存储声明类型
支持云盘、NAS、OSS三种云存储类型。 本文中选择NAS。
名称
创建的存储声明名称在集群内必须唯一。
分配模式
选择已有存储卷。
说明若未创建存储卷,您可以设置分配模式为创建存储卷,配置创建存储卷参数。更多信息,请参见步骤一:创建PV。
已有存储卷
单击选择已有存储卷,在目标存储卷右侧操作列单击选择,选择存储卷。
总量
所创建存储卷的容量。
说明所创建存储卷声明的容量不能超过待挂载的存储卷容量。
访问模式
默认为ReadWriteMany,也可选择ReadWriteOnce或ReadOnlyMany。
配置完成后,单击创建。
创建成功后可以在列表中看到创建的存储声明,并且已绑定相应的存储卷。
创建PVC
在集群管理页左侧导航栏,选择 。
在存储声明页面,单击右上角的创建。
在弹出的创建存储声明页面中,填写界面参数。
参数
说明
存储声明类型
支持云盘、NAS、OSS三种云存储类型。 本文中选择NAS。
名称
创建的存储声明名称在集群内必须唯一。
分配模式
选择已有存储卷。
说明若未创建存储卷,您可以设置分配模式为创建存储卷,配置创建存储卷参数。更多信息,请参见步骤一:创建PV。
已有存储卷
单击选择已有存储卷,在目标存储卷右侧操作列单击选择,选择存储卷。
总量
所创建存储卷的容量。
说明所创建存储卷声明的容量不能超过待挂载的存储卷容量。
访问模式
默认为ReadWriteMany,也可选择ReadWriteOnce或ReadOnlyMany。
配置完成后,单击创建。
创建成功后可以在列表中看到创建的存储声明,并且已绑定相应的存储卷。
步骤四:给PVC填充数据
因为Kubernetes集群通过PVC访问各种共享数据(也就是本文在步骤一中创建的NAS实例),所以您仅需要给PVC实例对应的NAS实例上填充数据即可。
使用Workbench登录ACK集群任意一台ECS节点,具体操作请参见登录Linux实例。更多连接ECS实例的方式,请参见连接方式概述。
在步骤二中,已将NFS文件系统挂载到ECS实例的
/mnt
目录中。执行以下命令,通过挂载的这个目录为NAS实例创建两个目录tf_data/
和pytorch_data/
,分别存放TF mnist
和Pytorch mnist
的训练数据。cd /mnt/ mkdir tf_data/ mkdir pytorch_data/
执行以下命令下载
TF mnist
的数据集。cd tf_data git clone https://code.aliyun.com/xiaozhou/tensorflow-sample-code.git mv tensorflow-sample-code/data/* ./ && rm -rf tensorflow-sample-code
执行以下命令下载
Pytorch mnist
的数据集。cd pytorch_data git clone https://code.aliyun.com/370272561/mnist-pytorch.git mv mnist-pytorch/MNIST ./ && rm -rf mnist-pytorch
- 本页导读 (1)