挂载NAS

背景信息

绝大部分计算模型下,客户数据直接存储于云端NAS里。为了方便客户读写云端计算数据,批量计算根据用户提供的挂载信息,自动将NAS的挂载点挂载到本地目录。完成NAS挂载后,对挂载目录里数据的读写行为将和读写本地数据完全相同。

使用限制

  • 网络限制:批量计算仅支持专有网络 (Vpc) 类型的挂载点,且集群必须和待挂载的NAS在同一个专有网络 (VPC)内。

  • 文件系统限制:批量计算仅支持NFS类型的NAS文件系统。

  • 格式限制:不同操作系统挂载略有差异,WindowsNAS文件系统目录后需要加 !,示例如下所示:

    • Windows示例:nas://xxx.cn-beijing.nas.aliyuncs.com:/!

    • Linux示例:nas://xxx.cn-beijing.nas.aliyuncs.com:/

如何挂载NAS

使用NAS挂载功能必须同时指定NAS源地址(Source)、本地挂载地址(Destination)和是否支持可写位(WriteSupport),他们的意义如下:

  • Source:以nas://为前缀,后面接上NAS挂载点和NAS文件系统目录信息,例如:nas://xxx.cn-beijing.nas.aliyuncs.com:/!

  • Destination:批量计算集群节点内的本地目录,用户不需要事先创建该目录,批量计算会自动为用户创建该目录。

  • WriteSupport:是否支持可写,如果用户设置为False则表示该挂载点不支持写操作;若设置为True则表示挂载点支持读写操作;写操作会直接将数据写到NAS远端服务器上,而不会在本地做缓存。

以下我们将展示通过SDK和命令行工具挂载NAS,其中NAS源地址为nas://xxx.cn-beijing.nas.aliyuncs.com:/,本地挂载地址为/home/admin/mydir/,可写位为true

3.1. SDK

from batchcompute.resources import (
    ClusterDescription, Configs, Mounts
)

 cluster_desc = ClusterDescription()
 configs = Configs()
 mounts = Mounts()

# For Linux
nas_entry = {
    'Source': 'nas://xxx.cn-beijing.nas.aliyuncs.com:/', # Windows 需在最后加 "!"
    'Destination': '/home/admin/mydir/',
    'WriteSupport': true,
}

mounts.Entries = [nas_entry]
configs.Mounts = mounts
cluster_desc.Configs = configs