随着数字化转型的深入,越来越多的企业将数据作为新的生产要素,越来越多的数据需要进行收集、存储、处理和分析。云存储作为云上的数据底层载体,支撑着越来越多的应用负载。无论是“稳”态还是“敏”态业务,或者创新型业务,都需要高可靠、高可用、高性能、高扩展性的云存储服务。
按照经典的划分方式,云存储一般分为块、文件、对象三大类型,其中文件存储一般又分为通用文件存储NAS、并行文件存储PFS、大数据文件存储等。而对象存储经过多年的发展和演进,已经成为存放非结构化数据的首选,并在大数据、数据湖、数据仓库领域逐步成为事实上的数据底座。
在大部分业务场景中做云存储大类的选型是相对容易的,比如要为云服务器配置系统盘或数据盘会使用块存储,存放视频、图片、游戏安装包等文件优选对象存储,但在某些业务场景(AI、HPC、大数据等)用户往往面临多样化的选择,需要综合考虑协议兼容性、功能、性能、易用性、扩展性等因素。
本文将为您提供一个选型指南,如果您有计划将业务应用部署或迁移到火山引擎,可以参考文章内容选择最合适的云存储产品或者产品组合,为上层业务打造坚实的、高性价比的存储平台。
存储选型考量
在选型之前,我们应该对业务应用进行场景化分析,比如要存储什么类型的数据、需要什么样的接口协议、对功能和性能有怎样的要求、业内是否有相关场景的最佳实践等等。
以AI/ML场景举例,不同阶段的存储工作负载具有不同的特点(如下图所示),那么就需要根据这些特点选择相匹配的存储产品。
另外,企业中使用存储产品的往往是开发团队和运维团队,在AI业务中一般还会有算法团队,不同的角色对存储的关注点也是不同的,比如:
- 开发团队:要做一个互联网应用,多媒体数据想放到对象存储中,关注是否有静态网站托管、镜像回源、事件通知功能,是否兼容S3协议,是否提供多语言SDK等。
- 运维团队:要基于云服务器和云盘部署关键业务系统,关注云盘性能、可靠性、快照、是否提供批创接口等。
- 算法团队:使用AI平台进行模型训练,关注数据集如何导入导出、是否能较好的适配AI框架、是否可分目录控制访问权限和配额等。
同时各团队也会关注成本情况,比如是否具有冷热数据分层、数据生命周期管理的功能,是否只为实际用量付费等等。
大多数情况下我们可以参考业内较为通用标准的做法,但了解各类存储产品的特点可以帮助您理解为什么大家都这样选以及看清未来的技术发展方向。
存储产品对比
这里针对常见的云存储产品类型做一个多维度的对比,包括主要特点、接口协议、IOPS、吞吐带宽、访问时延、容量范围、可靠性、典型功能、应用场景等。
对比项 | 块存储 | 通用文件存储 | 并行文件存储 | 大数据文件存储 | 对象存储 |
---|---|---|---|---|---|
主要特点 | 一般称为云盘或云硬盘,结合云主机或容器服务使用,支持分区格式化 | 提供共享访问的文件系统,通过标准文件访问协议挂载到多个计算节点 | 高吞吐、低时延、可扩展的并行文件存储系统,多用于高性能计算场景,一般使用专有客户端 | 支持标准HDFS协议、面向大数据生态场景的分布式文件系统,底层多基于对象存储构建 | 适合存放任意类型的非结构化数据,具有海量、安全、低成本、高可靠特性的分布式存储 |
接口协议 | 虚拟块设备协议 | NFS v3/v4、SMB | POSIX | HDFS | RESTful API / S3协议 |
IOPS/QPS | 万~百万级 | 万~十万级 | 百万级 | 万~十万级 | 千~十万级 |
吞吐带宽 | 百MB/s~数GB/s | 百MB/s~数十GB/s | 数GB/s~数百GB/s | 数GB/s~数百GB/s | 数GB/s~数百GB/s |
访问时延 | 亚毫秒级 | 亚毫秒-毫秒级 | 亚毫秒级 | 毫秒级 | 毫秒级 |
容量范围 | GiB~TiB | GiB~PiB | TiB~PiB | TiB~PiB | GiB~EiB |
计费模式 | 按配置容量计费 | 按实际容量计费或按配置容量计费 | 按配置容量计费 | 按实际容量计费 | 按实际容量计费 |
数据可靠性 | 9个9 | 9个9~11个9 | 11个9 | 11个9 | 11个9~12个9 |
典型功能 | 快照、加密 | 权限组、ACL、快照、配额 | 数据均衡、数据流动 | 分层命名空间、缓存加速 | 静态网站托管、生命周期、多版本、跨区域复制等 |
应用场景 | 企业应用、自建数据库 | 企业文件共享、容器共享存储、视频编辑 | AI训练、自动驾驶、生物制药、影视渲染 | 大数据分析、数据湖、数据仓库 | 互联网数据源站、大数据分析、视频监控、容灾备份 |
产品矩阵简介
火山引擎提供了丰富的云存储产品矩阵,除了前面提到的块存储、文件(通用文件、并行文件、大数据文件)存储、对象存储之外,也包含存储迁移服务、数据闪送服务等。基于这些产品体系可以向上层业务提供面向行业的、面向场景的最佳实践和解决方案。接下来针对每个产品展开介绍一下其主要特点和适用场景。
弹性块存储 EBS
EBS(Elastic Block Storage)是火山引擎提供的高可用、高可靠、高性能、弹性扩展的块存储设备,可以作为云服务器和弹性容器服务的可扩展硬盘使用。
EBS全系列产品基于NVMe SSD硬件搭建,并采用SPDK加速,单盘可提供上万级IOPS、亚毫秒级延时,可满足业务的苛刻性能要求。另外EBS基于多副本/EC纠删码冗余机制,可避免数据单点故障风险,提供 99.9999999%可靠性,确保数据安全可靠。
EBS作为最通用的存储产品,可以用来承载企业办公、自建数据库/中间件、泛互业务系统、开发测试等应用负载。当前EBS的主力规格为极速型SSD PL0和极速型SSD FlexPL,用户可以基于应用系统对云盘的性能要求选择合适的规格。
对象存储 TOS
TOS(Tinder Object Storage)是火山引擎提供的海量、安全、低成本、易用、高可靠、高可用的分布式云存储服务。用户可以通过网络在任何应用、任何时间、任何地点管理和访问火山引擎TOS上的数据。TOS提供多种命令行工具和多语言SDK,同时兼容S3协议,方便应用系统进行对接集成。
需要注意的是,虽然对象存储可以通过一些开源工具(s3fs、goofys、Alluxio等)挂载成本地目录,但这种方式无法提供完整的POSIX语义,在对POSIX兼容性及存储性能有较高要求的场景中,不建议使用挂载对象存储的方式。另外对象存储实际上没有“文件夹”或者“目录”的概念,在控制台或者一些工具里呈现的“文件夹”都只是对象Key的一部分,所以对象存储在API上往往只有针对前缀Prefix的操作而没有针对文件夹的操作。
在功能上,TOS支持跨AZ冗余、跨区域复制、服务端加密、细粒度权限控制等;在存储类型上,TOS支持标准存储、低频存储、归档闪回存储,也即将发布智能分层存储。用户可以通过配置生命周期规则实现存储类型的自动转换,达到优化整体存储成本的目的。
火山引擎TOS作为云上存储非结构化数据的首选,可以广泛用于互联网富媒体数据存储与分发、机器学习统一存储、大数据与数据湖、备份归档等场景。
文件存储 NAS
文件存储 NAS(FileNAS)是面向火山引擎弹性计算、容器服务、AI 智能应用的文件存储服务,可为业务应用提供一种高性能共享访问、持续在线、弹性扩展、跨地域访问的高性价比云存储服务。文件存储 NAS 提供简单、易操作的对外接口,并支持按实际使用量计费。
火山引擎NAS提供极速型和通用型两种规格,支持NFS v3/v4协议,支持快照功能,可应用于中小规模 AI、文件共享、Devops 代码存储等场景。
文件存储 vePFS
文件存储 vePFS是火山引擎推出的一种高吞吐、低延时、可扩展的并行文件存储服务,满足高性能计算场景高吞吐低延时的数据读写需求。
vePFS基于全闪硬件和深度优化的并行存储软件构建,支持完整的POSIX语义,在公有云上提供100MB/s/TiB和300MB/s/TiB两种规格,IO带宽可以随容量线性增长,吞吐量最大支持 20GB/s,IOPS最大支持280万。对于有更高性能要求的用户,vePFS可以提供智算版解决方案。
和文件存储NAS不同的是,vePFS使用专有并行客户端,支持客户端缓存和智能预取机制,提供数据均衡以及与对象存储TOS之间的数据流动能力。另外vePFS支持对不同的目录路径设置不同的容量配额、文件数量配额和性能配额,方便业务对文件系统进行细粒度的管控。
文件存储 vePFS可广泛应用于HPC高性能计算、AI人工智能训练/推理、能源勘探、工业仿真、影视渲染、生命科学、气象分析等场景。
大数据文件存储 CloudFS
大数据文件存储(Cloud File System)是火山引擎面向大数据和机器学习生态的文件存储和加速服务,支持标准的 HDFS 协议访问和数据湖透明访问模式,为用户提供低成本、高性能、高吞吐和高可用的大数据文件访问服务。
在传统的大数据生态,HDFS 协议是文件存储访问标准,业界有大量的大数据业务系统基于标准的 HDFS 协议构建;同时,随着以对象存储为底座的数据湖生态的普及,越来越多的大数据和机器学习应用选择基于对象存储来构建。火山引擎大数据文件存储基于上述两个场景的核心需求,依托对象存储的超大容量和成本优势,支持标准的 HDFS 协议访问,提供统一的服务化弹性加速能力。
火山引擎 CloudFS 提供 Serverless 的服务化使用模式,可在火山引擎云服务器 ECS 或容器 VKE 集群上通过 SDK 和 CLI 访问使用。此外,CloudFS 已经和批式计算 Spark 版、流式计算 Flink 版等数据生态产品无缝打通。
存储迁移服务
火山引擎存储迁移服务主要用来实现跨云以及云内的在线数据迁移,具有以下特点:
- 多种数据源:支持国内外主流云厂商对象存储及其他兼容S3协议的对象存储
- 免输密钥:当源端/目的端为火山引擎TOS时,无需输入密钥,不存在密钥泄露风险
- 自定义限速:可自定义不同时段的传输带宽速度,以减小对源站的业务影响
- 增量迁移:支持自定义增量迁移间隔和增量迁移次数,不断缩小与源端的数据差异
- 文件过滤:支持指定文件前缀或按文件的修改时间来过滤需要迁移的数据
- 迁移进度显示:可在控制台查看迁移任务的实时进度、预估的剩余迁移时间
- 迁移报告下载:提供包含统计信息的迁移任务报告,支持导出失败/成功对象列表
数据闪送服务
数据闪送服务是火山引擎推出的针对TB~PB级数据的离线传输服务,用户可以将需要迁移的数据写入硬盘或磁盘阵列等物理设备,然后将物理设备通过邮寄等形式运输到火山引擎机房,实现数据的离线迁移。
数据闪送服务支持使用火山硬盘或者用户自有硬盘,用户只需要在数据闪送控制台创建服务单,无需编写代码或购买硬件设备。
选型最佳实践
自动驾驶是一个比较典型的存储负载多样化场景,这里我们以自动驾驶为例,结合选型方法论,分析该场景中各个阶段对存储的诉求以及最佳的产品选型。
自动驾驶数据链路一般包含数据采集、数据传输、数据存储、数据处理、数据标注、算法训练、模型仿真等等,在每个阶段数据的格式、大小、访问模型各有不同。
- 数据采集:一辆路测的自动驾驶汽车一天采集的数据量在数TB~数十TB级别,包含点云、视频、图片、高精地图、定位坐标、感知结果、底盘数据等等。这些数据需要传回数据中心进行处理,通常会采用关键数据在线回传和全量数据离线回传两种方式。
- 数据传输:在线回传一般使用HTTPS/S3/MQTT协议,如果选择直传到对象存储,出于安全考虑会使用到临时凭证或者预签名URL;离线回传方式下,会将车载硬盘或车载NAS设备通过物流的方式邮寄到云数据中心,将采集的打包数据集中上传到对象存储,此时可以选用数据闪送服务。
- 数据处理:在该阶段需要对原始打包数据进行拆包、切片、质量提升、格式转换、关键帧提取、地理坐标偏转、敏感信息虚化等一系列预处理操作。该阶段可根据上层处理应用的类型来匹配合适的存储方案,比如使用大数据生态组件时可在对象存储之上叠加CloudFS来提供HDFS语义。
- 数据标注:自动驾驶领域常见的数据标注类型主要包括车辆和行人标框标注、3D立方体标注、3D雷达点云标注、指示牌和信号灯标注、多段线标注、语义分割、视频跟踪标注等。标注的原始数据在对象存储中,标注的结果数据一般先存储到文档数据库MongoDB中,在向下游提供时导出为json、csv格式文件。
- 算法训练:训练使用的数据主要是是经过标注后的图片、点云文件以及标注结果,以小文件为主,平均大小100-200KB。训练时由多位算法工程师发起训练任务,对数据需要多轮读取,读写速度将影响任务持续时间。该阶段对存储有很高的性能要求,需要存储系统提供至少数十GB/s的吞吐、数十万的IOPS、亚毫秒级的时延以及完整的POSIX语义,所以比较适合选用高性能并行文件存储vePFS。在这个环节可以通过TOS工具或者“数据流动”功能将需要高速访问的训练数据从对象存储TOS拉取到vePFS中。针对存储在TOS中的全量数据,可以通过配置Bucket Policy最小化算法工程师和开发人员的数据访问范围和读写权限。
- 模型仿真:自动驾驶仿真主要是以数学建模的方式将自动驾驶的应用场景进行数字化,建立尽可能接近真实世界的系统模型,通过软件仿真实现对自动驾驶系统的测试验证。运行仿真时,用户可能在一个大的资源池内运行多个仿真任务,每个仿真任务对应多个测试序列,每个测试序列会指定多个特定case的测试用例,每个测试用例需要读取1个地图文件、1个车辆模型文件、多个配置文件、多个算法模型,写入一个结果文件,因此在并行仿真时对存储性能要求也较高,使用vePFS仍然是较优的选择。
- 数据分发/归档:所有的模型结果文件和其他相关数据可统一放入对象存储中,方便进行分发或者归档,通过使用对象存储的生命周期沉降功能可以优化整体数据的存储成本。
综上所述,在自动驾驶场景,火山引擎提供丰富的数据上云及云内流转方式,覆盖自动驾驶数据的全生命周期,其中对象存储TOS可以作为统一的数据底座串联全流程,训练/仿真阶段由vePFS提供高性能的具有完整POSIX语义的存储能力。通过这些产品组合和最佳实践,可以助力智能驾驶技术的研发与落地。
本文介绍了云存储产品的选型方法,对常见的云存储类型进行了多维度的对比,之后介绍了火山引擎云存储产品矩阵并针对自动驾驶场景给出了选型最佳实践。
2022年发布的《中国存力白皮书》中提到:“数据存力成为数字经济背景下,全社会全产业发展的重要基础。数据存力的概念和内涵也更加丰富, 是以存储容量为核心,包含性能表现、安全可靠、绿色低碳在内的综合能力。” 作为数据的底层载体和应用基石,存储产品的重要性不言而喻,火山引擎云存储希望通过高性价比的产品服务、丰富的生态工具、经过验证的最佳实践为千行百业的数字化转型提供浩瀚的存力。未来我们将会推出更多的新产品和新特性,敬请期待。
如果您对火山引擎云存储选型还有疑问,可以联系您的客户经理,我们会有专业的存储解决方案架构师与您进行一对一的选型指导。
百闻不如一试,点击「阅读原文」快来体验吧。
关于作者与团队
张朝阳,火山引擎存储&数据库解决方案架构师,负责存储&数据库产品的解决方案规划、设计和拓展工作。
火山引擎存储&数据库解决方案团队,是由资深的存储&数据库解决方案架构师组成,团队致力于帮助企业与组织更好的使用火山引擎云存储与云数据库产品,针对实际业务场景设计最优的解决方案,用专业技术助力组织和企业实现业务成功。