更新时间:2024-05-27 GMT+08:00
分享

动态挂载OBS并行文件系统

什么是动态挂载OBS并行文件系统

并行文件系统(Parallel File System)是对象存储服务(Object Storage Service,OBS)提供的一种经过优化的高性能文件系统,详细介绍可以参见并行文件系统

在ModelArts运行态的Notebook容器中,采用动态挂载特性,将OBS对象存储模拟成本地文件系统。其本质是通过挂载工具,将对象协议转为POSIX文件协议。挂载后应用层可以在容器中正常操作OBS对象。

动态挂载适用于哪些使用场景

场景1:数据集预览和操作,将承载数据集的OBS挂载至Notebook中,可以像本地文件系统一样操作数据集。

场景2:在Notebook中训练时,可直接使用挂载至Notebook容器中的数据集。

动态挂载OBS并行文件系统有什么限制

OBS提供两种桶,对象存储(对象桶)和并行文件系统PFS。

ModelArts的Notebook仅支持挂载OBS的并行文件系统,挂载至Notebook容器“/data/”的子目录下。

动态挂载OBS并行文件系统操作

方式1:通过ModelArts控制台操作

  1. 登录ModelArts管理控制台,在左侧导航栏中选择“开发环境 > Notebook”,进入“Notebook”页面。
  2. 选择运行中的Notebook实例,单击实例名称,进入Notebook实例详情页面,在“存储配置”页签,单击“添加数据存储”,设置挂载参数。
    1. 设置本地挂载目录,在“/data/”目录下输入一个文件夹名称,例如:demo。挂载时,后台自动会在Notebook容器的“/data/”目录下创建该文件夹,用来挂载OBS文件系统。
    2. 选择存放OBS并行文件系统下的文件夹,单击“确定”
      图1 动态挂载OBS并行文件系统
  3. 挂载成功后,可以在Notebook实例详情页查看到挂载结果。
    图2 挂载成功

方式2:API模式

动态挂载API接口已发布至华北-北京四和华东-上海一站点。请参考打开JupyterLab在JupyterLab中新建ipynb文件,新建一个ipynb文件然后执行脚本。

挂载脚本代码示例如下。更多API参数介绍请参考动态挂载OBS

import os
from json import JSONEncoder
from modelarts.config.auth import auth_by_apig
from modelarts.session import Session

session = Session()
request_url = "/v1/{}/notebooks/{}/storage".format(os.environ['PROJECT_ID'], os.environ["INSTANCE_ID"])


# 查询动态挂载列表
auth_by_apig(session, 'GET', request_url)


# 动态挂载,OBS路径obs://obs-bucket-train/dir/需要根据实际修改,挂载路径mount_path取值为“/data/xxx/”,本示例以“/data/demo/”为例,“demo”可以自定义。
body = {
    "category": "OBS",
    "uri": "obs://obs-bucket-train/dir/",
    "mount_path": "/data/demo/"
}
auth_by_apig(session, 'POST', request_url, body=JSONEncoder().encode(body))

# 动态卸载
auth_by_apig(session, 'DELETE', request_url + "/ea217c4f-3282-4af2-98ea-d3c668d2fba9")
分享:

    相关文档

    相关产品