更新时间:2022-04-12 GMT+08:00
分享

开发环境中如何选择存储

不同存储的实现都不同,在性能、易用性、成本的权衡中可以有不同的选择,没有一个存储可以覆盖所有场景,了解下云上开发环境中各种存储使用场景说明,更能提高使用效率。

表1 云上开发环境中各种存储使用场景说明

存储类型

建议使用场景

优点

缺点

EFS文件存储(默认存储)

针对探索、实验等非正式生产场景,建议使用这种。

开发环境和训练环境可以同时挂载一块EFS存储,省去了每次训练作业下载数据的要求,一般来说重IO读写模型,超过32卡的大规模训练不适合。

提供免费的50GB共享网络存储。

实现为NFS,可以在多个开发环境、开发环境和训练之间共享,如果不需要重型分布式训练作业,特别是启动训练作业时,不需要额外再对数据进行下载,这种存储便利性可以作为首选。

缺点是生产环境下,需要额外申请并配置,以及重型训练作业时可能遇到IO瓶颈。

EVS云硬盘块存储

比较适合只在开发环境中做数据、算法探索,性能较好。

块存储SSD,可以理解为一个磁盘,整体IO性能比NFS要好,可以动态扩充,最大可以到4096GB。

云硬盘EVS作为持久化存储挂载在/home/ma-user/work目录下,该目录下的内容在实例停止后会被保留,存储支持在线按需扩容。

缺点是只能在单个开发环境中使用 。

OBS并行文件系统

数据集的存储。

  • 数据集预览和操作,将承载数据集的OBS并行文件系统挂载至Notebook中,可以像本地文件系统一样操作数据集。
  • 在Notebook中训练时,可直接使用挂载至Notebook容器中的OBS数据集。

廉价存储,大吞吐量,但是小文件读写较弱。建议上传时按照128MB或者64MB打包或者切分,使用时边下载边解压后在本地读取。

缺点是对象存储语义,和Posix语义有区别,需要进一步理解。

OBS对象存储

新版Notebook不支持直接存储在OBS桶或挂载OBS桶。

在开发环境中做大规模的数据上传下载时,可以通过OBS桶做中转。

-

-

本地存储

重型训练任务首选

容器运行所在虚拟机或者裸金属机器上自带的SSD高性能存储,文件读写的吞吐量大,建议对于重型训练任务先将数据准备到对应目录再启动训练。

缺点是存储生命周期和容器生命周期绑定,每次训练都要下载数据。

如何使用

  1. 在开发环境中如何使用EFS文件存储(默认存储)?

    创建Notebook实例时选择默认存储即可。

  2. 在开发环境中如何使用云硬盘EVS块存储?

    创建Notebook实例时选择云硬盘存储,Notebook运行过程中可以动态扩充云硬盘EVS容量

  3. 在开发环境中如何使用OBS并行文件系统?

    Notebook运行过程中可以动态挂载OBS并行文件系统

分享:

    相关文档

    相关产品

close