背景信息
絕大部分計算模型下,客戶數據直接存儲于云端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