背景信息
绝大部分计算模型下,客户数据直接存储于云端NAS里。为了方便客户读写云端计算数据,批量计算根据用户提供的挂载信息,自动将NAS的挂载点挂载到本地目录。完成NAS挂载后,对挂载目录里数据的读写行为将和读写本地数据完全相同。
使用限制
网络限制:批量计算仅支持专有网络 (Vpc) 类型的挂载点,且集群必须和待挂载的NAS在同一个专有网络 (VPC)内。
文件系统限制:批量计算仅支持
NFS
类型的NAS文件系统。格式限制:不同操作系统挂载略有差异,Windows在NAS文件系统目录后需要加
!
,示例如下所示: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