ModelArts-Notebook新功能

举报
modelarts-lab-dev 发表于 2021/06/28 15:04:14 2021/06/28
【摘要】 一  何为动态挂载OBS?     在运行态notebook容器中, 采用动态挂载特性, 将OBS对象存储模拟成文件系统。 其本质是通过挂载工具,将对象协议转为为POSIX文件协议。挂载后应用层可以在容器中正常操作OBS对象。​二 有何限制?      华为云OBS提供两种桶,对象存储(对象桶)和并行文件系统(POSIX桶)。MA Notebook皆支持挂载至容器/data/目录下。    ...

一  何为动态挂载OBS?

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

二 有何限制? 

     华为云OBS提供两种桶,对象存储(对象桶)和并行文件系统(POSIX桶)。MA Notebook皆支持挂载至容器/data/目录下。
     OBS对象桶因无法支持完整的POSIX语义, 挂载后不适合频繁的读写,否则IO放大,使用体验会变差;
     OBS并行文件系统支持完成POSIX语义,挂载体检较对象桶更佳。

三 哪些使用场景?

      场景1.   EFS和OBS之间的数据迁移,创建EFS类Notebook, 再挂载OBS, 二者数据互通实现数据迁移;
      场景2.   数据集预览和操作, 将承载数据集的OBS挂载至Notebook中, 可直接CRUD;
      场景3:Notebook训练时,可直接使用挂载至Notebook容器的数据集.
                  这里建议若为并行文件系统,程序可直接读写挂载的文件; 若为对象桶, 建议先拷贝至容器其它目录下,再读写。

四 怎么用?

前置条件: 打开ModelArts -> 开发环境 ->Notebook ->前往新版->创建一个Notebook->运行后打开Notebook

执行以下代码:

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)


# 动态挂载
body = {
    "category": "OBS",
    "uri": "obs://obs-mls-train/",                 # 输入OBS文件夹完整路径
    "mount_path": "/data/temp/"               # 输入要挂载的容器本地目录,以/data/目录开始
}
auth_by_apig(session, 'POST', request_url, body=JSONEncoder().encode(body))


# 动态卸载 其中"ea217c4f-3282-4af2-98ea-d3c668d2fba9"为动态挂载ID
auth_by_apig(session, 'DELETE', request_url + "/ea217c4f-3282-4af2-98ea-d3c668d2fba9")



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。