面向AI场景使用OBS+SFS Turbo的存储加速实践
方案概述
应用场景
近年来,AI快速发展并应用到很多领域中,AI新产品掀起一波又一波热潮,AI应用场景越来越多,有自动驾驶、大模型、AIGC、科学AI等不同行业。AI人工智能的实现需要大量的基础设施资源,包括高性能算力,高速存储和网络带宽等基础设施,即“大算力、大存力、大运力”的AI基础大设施底座,让算力发展不要偏斜。
从过去的经典AI,到今天人人谈论的大模型,自动驾驶,我们看到AI模型的参数及AI算力规模呈现出指数级的爆发增长,对存储基础设施也带来全新的挑战。
1、高吞吐的数据访问挑战:随着企业使用 GPU/NPU 越来越多,底层存储的 IO 已经跟不上计算能力,企业希望存储系统能提供高吞吐的数据访问能力,充分发挥 GPU/NPU 的计算性能,包括训练数据的读取,以及为了容错做的检查点(以下简称Checkpoint)保存和加载。训练数据的读取要尽量读得快,减少计算对 I/O 的等待,而 Checkpoint主要要求高吞吐、减少训练中断的时间。
2、文件接口方式的数据共享访问:由于 AI 架构需要使用到大规模的计算集群(GPU/NPU服务器),集群中的服务器访问的数据来自一个统一的数据源,即一个共享的存储空间。这种共享访问的数据有诸多好处,它可以保证不同服务器上访问数据的一致性,减少不同服务器上分别保留数据带来的数据冗余等。另外以 AI 生态中非常流行的开源深度学习框架PyTorch为例,PyTorch默认会通过文件接口访问数据,AI算法开发人员也习惯使用文件接口,因此文件接口是最友好的共享存储访问方式。
说明:如果您想了解更多本方案相关信息,或在方案使用过程中存在疑问,可通过方案咨询渠道,寻求专业人员支持。
方案架构
针对AI训练场景中面临的问题,华为云提供了基于对象存储服务OBS+高性能文件服务SFS Turbo的AI云存储解决方案,如图所示,华为云高性能文件服务SFS Turbo HPC型支持和OBS数据联动,您可以通过SFS Turbo HPC型文件系统来加速对OBS对象存储中的数据访问,并将生成的结果数据异步持久化到OBS对象存储中长期低成本保存。
图1 基于OBS+SFS Turbo的华为云AI云存储解决方案
方案优势
华为云AI云存储解决方案的主要优势如下表所示。
华为云AI云存储解决方案的主要优势
序号
|
主要优势
|
详细描述
|
---|---|---|
1 |
存算分离,资源利用率高 |
GPU/NPU算力和SFS Turbo存储解耦,各自按需扩容,资源利用率提升。 |
2 |
SFS Turbo高性能,加速训练过程 |
1、训练数据集高速读取,避免GPU/NPU因存储I/O等待产生空闲,提升GPU/NPU利用率。 2、大模型TB级Checkpoint文件秒级保存和加载,减少训练任务中断时间。 |
3 |
数据导入导出异步化,不占用训练任务时长,无需部署外部迁移工具 |
1、训练任务开始前将数据从OBS导入到SFS Turbo,训练过程中写入到SFS Turbo的Checkpoint数据异步导出到OBS,均不占用训练任务时长。 2、SFS Turbo和OBS存储服务之间数据直接导入导出,无需部署外部数据拷贝机器及工具。 |
4 |
冷热数据自动流动,降低存储成本 |
1、SFS Turbo支持自定义数据淘汰策略,冷数据自动分级到OBS,释放高性能存储空间用于接收新的热数据。 2、访问冷数据时SFS Turbo从OBS自动加载数据提升访问性能。 |
5 |
多AI开发平台、生态兼容 |
pytorch、mindspore等主流AI应用框架,kubernetes容器引擎、算法开发场景通过文件语义访问共享数据,无需适配开发。 |
对象存储功能概览
在使用对象存储服务OBS之前,建议您先了解对象存储服务OBS的基本概念,以便更好地理解对象存储服务OBS提供的各项功能。
-
OBS提供了标准存储、低频访问存储、归档存储、深度归档存储(受限公测中)四种存储类别,满足不同场景下客户对存储性能和成本的不同诉求。
OBS提供了标准存储、低频访问存储、归档存储、深度归档存储(受限公测中)四种存储类别,满足不同场景下客户对存储性能和成本的不同诉求。
-
桶是OBS中存储对象的容器。OBS提供创建、列举、搜索、查看、删除等基本功能,帮助您便捷的进行桶管理。
桶是OBS中存储对象的容器。OBS提供创建、列举、搜索、查看、删除等基本功能,帮助您便捷的进行桶管理。
-
对象是OBS中数据存储的基本单位。OBS提供上传、下载、列举、搜索、断点续传、多段操作等基本功能,满足您各个场景的对象管理需求。
对象是OBS中数据存储的基本单位。OBS提供上传、下载、列举、搜索、断点续传、多段操作等基本功能,满足您各个场景的对象管理需求。
-
OBS通过IAM权限、桶/对象策略和ACL三种方式配合进行权限管理。您可以通过IAM自定义策略授予IAM用户细粒度的OBS权限,也可以对桶和对象设置不同的策略及ACL来控制桶和对象的读写权限。
OBS通过IAM权限、桶/对象策略和ACL三种方式配合进行权限管理。您可以通过IAM自定义策略授予IAM用户细粒度的OBS权限,也可以对桶和对象设置不同的策略及ACL来控制桶和对象的读写权限。
-
您可以将数据加密后存储到OBS中,提高数据的安全性。OBS提供SSE-KMS和SSE-C两种服务端加密方式。
您可以将数据加密后存储到OBS中,提高数据的安全性。OBS提供SSE-KMS和SSE-C两种服务端加密方式。
-
您可以将静态网站文件上传至OBS桶中,并对这些文件赋予匿名用户可读权限,然后将该桶配置成静态网站托管模式,以实现在OBS上托管静态网站。
您可以将静态网站文件上传至OBS桶中,并对这些文件赋予匿名用户可读权限,然后将该桶配置成静态网站托管模式,以实现在OBS上托管静态网站。
-
为了防止用户在OBS的数据被其他人盗链,OBS支持基于HTTP Header中表头字段Referer的防盗链方法,同时支持访问白名单和访问黑名单的设置。
为了防止用户在OBS的数据被其他人盗链,OBS支持基于HTTP Header中表头字段Referer的防盗链方法,同时支持访问白名单和访问黑名单的设置。
-
您可以设置在桶中发生某些特定事件时收到消息通知服务(SMN)发送的通知,以便及时掌握桶中数据的最新动态。
您可以设置在桶中发生某些特定事件时收到消息通知服务(SMN)发送的通知,以便及时掌握桶中数据的最新动态。