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