开发环境中如何选择存储
不同存储的实现原理都不同,在性能、易用性、成本的权衡中可以有不同的选择,没有一个存储可以覆盖所有场景,了解下云上开发环境中各种存储使用场景说明,更能提高使用效率。
仅支持挂载同一区域下的OBS并行文件系统(PFS)和OBS对象存储。
存储类型 |
建议使用场景 |
优点 |
缺点 |
---|---|---|---|
云硬盘EVS |
比较适合只在开发环境中做数据、算法探索,性能较好。 |
块存储SSD,可以理解为一个磁盘,整体IO性能比NFS要好,可以动态扩充,最大可以到4096GB。 云硬盘EVS作为持久化存储挂载在/home/ma-user/work目录下,该目录下的内容在实例停止后会被保留,存储支持在线按需扩容。 |
缺点是只能在单个开发环境中使用 。 |
并行文件系统PFS |
说明:
并行文件系统PFS为白名单功能,如需使用,请联系华为技术支持开通。 适合直接使用PFS桶作为持久化存储进行AI开发和探索场景。
|
PFS是一种经过优化的高性能对象存储文件系统,存储成本低,吞吐量大,能够快速处理高性能计算(HPC)工作负载。在需要使用对象存储服务场景下,推荐使用PFS挂载。
说明:
建议上传时按照128MB或者64MB打包或者切分,使用时边下载边解压后在本地存储读取,以获取更好的读写与吞吐性能。 |
缺点是小文件频繁读写性能较差,例如直接作为存储用于模型重型训练,大文件解压等场景慎用。
说明:
PFS挂载需要用户对当前桶授权给ModelArts完整读写权限,Notebook删除后,此权限策略不会被删除。 |
对象存储服务OBS |
说明:
OBS对象存储为白名单功能,如需使用,请联系华为技术支持开通。 在开发环境中做大规模的数据上传下载时,可以通过OBS桶做中转。 |
存储成本低,吞吐量大,但是小文件读写较弱。建议上传时按照128MB或者64MB打包或者切分,使用时边下载边解压后在本地读取。 |
对象存储语义,和Posix语义有区别,需要进一步理解。 |
弹性文件服务SFS |
目前只支持在专属资源池中使用;针对探索、实验等非正式生产场景,建议使用这种。开发环境和训练环境可以同时挂载一块SFS存储,省去了每次训练作业下载数据的要求,一般来说重IO读写模型,超过32卡的大规模训练不适合。 |
实现为NFS,可以在多个开发环境、开发环境和训练之间共享,如果不需要重型分布式训练作业,特别是启动训练作业时,不需要额外再对数据进行下载,这种存储便利性可以作为首选。 |
缺点性能比EVS云硬盘块存储低。 |
本地存储 |
重型训练任务首选 |
运行所在虚拟机或者裸金属机器上自带的SSD高性能存储,文件读写的吞吐量大,建议对于重型训练任务先将数据准备到对应目录再启动训练。 默认在容器/cache目录下进行挂载,/cache目录可用空间请参考开发环境中不同Notebook规格资源“/cache”目录的大小。 |
缺点是存储生命周期和容器生命周期绑定,每次训练都要下载数据。 |
如何使用
- 在开发环境中如何使用云硬盘EVS块存储?
例如,在创建Notebook实例时选择云硬盘EVS存储小容量,Notebook运行过程中如果发现存储容量不够,可以扩容,请参考动态扩充云硬盘EVS容量。
- 在开发环境中如何使用OBS并行文件系统?
例如,在Notebook中训练时,可直接使用挂载至Notebook容器中的数据集,在运行过程中可以动态挂载OBS并行文件系统。