全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
批量计算

NAS挂载

更新时间:2017-06-07 13:26:11

阿里云文件存储(Network Attached Storage,后面简称 NAS)是面向阿里云 ECS 实例、HPC 和 Docker 等计算节点的文件存储服务,提供标准的文件访问协议,用户无需对现有应用做任何修改,即可使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。

目前,批量计算的用户也可以在API和SDK中通过配置用户NAS相关信息使用NAS服务。

1. NAS相关

在批量计算中使用NAS,需要用户先了解NAS产品相关的一些概念,目前批量计算服务仅支持经典网络,创建NAS权限组和挂载点时建议选择经典网络。

  • 文件系统(FileSystem):文件系统是用户购买NAS的基本单元,存储容量,价格,Quota限制,挂载点均与文件系统绑定,了解如何创建文件系统
  • 权限组(AccessGroup):权限组是 NAS 提供的白名单机制,通过向权限组内添加规则来允许 IP 地址或网段以不同的权限访问文件系统。每个挂载点都必须与一个权限组绑定,了解如何使用权限组
  • 挂载点(MountEntry):挂载点是文件系统实例在专有网络或经典网络内的一个访问目标地址,每个挂载点都对应一个域名,用户 mount 时通过指定挂载点的域名来挂载对应的 NAS 文件系统到本地。了解如何创建挂载点

以上是用户在批量计算中使用NAS过程中最重要的三个概念,如果需要了解购买和使用NAS其他相关内容,请参考:NAS官方文档

2. 使用NAS

在批量计算中使用NAS,需要用户在NAS产品里创建文件系统,权限组,挂载点,并通过SDK在创建集群或提交作业时将这些信息提供给批量计算。

用户数据

以下文件系统名,权限组名,挂载点名只起示例作用,具体名称根据用户设定可能有所不同。

  • 用户在NAS中已经创建名为nas_file_system(NAS文件系统名由NAS后端生成,通常为一组无意义的字符,这里为示例方便)的文件系统;
  • 用户在NAS中已经创建名为nas_access_group的权限组(注意创建时需要选择网络类型经典网络);
  • 用户在nas_file_system文件系统中创建经典网络的挂载点,并绑定nas_access_group权限组,挂载点名由NAS系统生成,假设为0266e49fea,在挂载点管理界面查看挂载地址,一般类似0266e49fea-yio75.cn-beijing.nas.aliyuncs.com

指定文件系统和权限组

用户在批量计算中使用NAS之前,需要批量计算创建集群时将VM添加到用户的权限组里,用户可以通过集群描述的Mounts.NAS.FileSystemMounts.NAS.AccessGroup字段将文件系统和权限组的信息注册到批量计算服务。

(1). 使用Python SDK

  1. # nas_file_system和nas_access_group根据用户情况有所不同
  2. # 以下是创建集群时指定NAS文件系统和权限组信息
  3. cluster_desc['Configs']['Mounts']['NAS']['FileSystem'] = ['nas_file_system' ]
  4. cluster_desc['Configs']['Mounts']['NAS']['AccessGroup'] = ['nas_access_group' ]
  5. # 用户也可以在提交AutoJob时指定NAS文件系统和权限组信息
  6. job_desc['DAG']['Tasks']['my-task']['AutoCluster']['Configs']['Mounts']['NAS']['FileSystem'] = ['nas_file_system' ]
  7. job_desc['DAG']['Tasks']['my-task']['AutoCluster']['Configs']['Mounts']['NAS']['AccessGroup'] = ['nas_access_group' ]

(2). 使用JAVA SDK

指定挂载点

批量计算在运行作业之前,根据用户作业描述提供的挂载信息自动将NAS挂载为本地目录,需要用户在Mounts.Entries中指定NAS挂载点到本地目录的映射。

(1). 使用Python SDK

  1. # For Linux
  2. job_desc['DAG']['Tasks']['my-task']['Mounts']['Entries'] = {
  3. 'Source': 'nas://0266e49fea-yio75.cn-beijing.nas.aliyuncs.com:/',
  4. 'Destination': '/home/admin/mydir/',
  5. 'WriteSupport': true,
  6. }
  7. # For Windows
  8. job_desc['DAG']['Tasks']['my-task']['Mounts']['Entries'] = {
  9. 'Source': 'nas://0266e49fea-yio75.cn-beijing.nas.aliyuncs.com:/!',
  10. 'Destination': '/home/admin/mydir/',
  11. 'WriteSupport': true,
  12. }

(2). 使用JAVA SDK

注意:

  • 指定挂载信息的时候,批量计算为区分挂载类型,MountEntry中的Source需要以nas://作为前缀,后面接上挂载地址和NAS文件系统目录;
  • 指定Windows系统挂载信息时,MountEntry中的Source还需要在目录后面加上!,Windows挂载还有其他注意的细节,具体参看:Windows挂载注意事项
  • 用户也可以在用户程序中自行挂载(上节中指定文件系统和权限组的步骤必不可少),具体文档请参考:手动挂载

3. NAS挂载注意事项

1. 权限组容量

目前NAS单个权限组最多只支持300条规则,目前批量计算服务只支持经典网络,一台VM对应一台权限规则,建议用户同时使用NAS的集群实例总和不要超过额度,否则行为未定义。

2. NAS服务收费

在批量计算中使用NAS服务不收取额外费用,由NAS服务进行计价,收费及计价标准请参考:NAS收费及价格

3. Cluster Mounts和Job Mounts优先级

细心的用户会发现创建集群和提交作业时均支持在Mounts字段中指定挂载NAS文件系统到本地目录,批量计算目前优先级如下:

  • 作业中的Mounts会覆盖掉集群Mounts中的MountEntry(包括AutoCluster),但是对Cluster Mounts中的文件系统和权限组信息不会有影响;
  • 作业结束后,集群级别的MountEntry不会恢复;
本文导读目录