多云已成为企业 IT 架构新常态,是企业向云演进的最佳选择。大型企业选择云化可以进一步提升 IT 建设水平,而中小企业则可以实现信息化管理节约资金投入,避免陷入复杂 IT 架构建设的窘境。随着企业云化演进的不断实践,企业在持续探索选择最佳建设模式。最初,单一云平台被企业广泛采用,但随着云平台支撑的业务类型增多,单一云平台的架构也暴露出诸多问题。一方面是不同云厂商的各自优势,另一方面, 单一云供应商也增加了企业对数据安全的担忧,这包括多公有云和多私有云。企业可以根据工作负载的要求,选择公有云或者企业自建数据中心进行部署。
公有云因其灵活、可扩展、成本低等优势,成为越来越多企业选择的数据中心。弹性伸缩是公有云中一个关键特性,它可以让企业在业务需求变化时自动调整资源使用,从而更好地支持业务发展。而企业自建数据中心可实现对数据的管控及独立控制运营,具备企业核心竞争力的业务可有效避免被厂商锁定,同时进一步发挥企业自有平台的能力,帮助企业把握上云的主动权。
企业多云 IT 架构演进面临的挑战
企业要实现多云 IT 架构转型,需要打破跨云数据共享、数据流动、统一数据管理的瓶颈,企业用户采用多云建设模式之后,数据被分散在不同的云平台中,应用是无法实现跨云的数据调用,这就形成多个数据孤岛,无法构建以数据为中心的企业数字化架构。企业用户根据应用的类型、数据处理和安全需求,选择将不同的应用和数据部署在企业本地数据中心或公有云上,这就需要企业构筑跨云的统一数据管理和流动,以实现数据存储和管理的最佳效率。其中数据管理和流动包括全局数据调度、混合云容灾/备份/分级存储。
简而言之,企业选择多云 IT 架构,推进数字化转型与发展,重点是要解决如何最大化实现跨云和跨数据中心的资源共享,以及如何实现数据统一管理和驱动数据流动等核心问题。
企业构建多云 IT 架构的整体思路
随着以 5G、IoT、云计算、大数据、AI 为代表的新技术在数字化转型中的深入应用,企业 IT 架构走向“传统 IT+私有云+公有云+边缘”的混合架构。存储作为 IT 数据基础设施底座,存储的读写性能决定了上层应用的性能和用户的体验,同时也是驱动数据流动的重要引擎。构建先进的数据存储平台也是企业实现多云 IT 架构转型的关键一环,企业需要关注以下几点建设方向:
- 企业需要利用各家云供应商的技术优势,加速数字化应用开发,并选择应用和存储分离的 IT 架构,以实现跨云的数据共享。
- 推动存储厂商将专业存储以软硬件一体或者纯软件的方式部署到公有云平台,帮助企业实现数据的跨云平滑演进。
- 企业规划跨云的数据统一管理平台,实现全局数据视图、全局数据调度、混合云容灾/备份/分级,使数据按照不同的服务等级存放在存储的最佳位置,并快速高效流动起来。
- 企业和存储厂商应积极拥抱容器等最新云技术,开展联合创新,更好地发挥多云的最优获益。
近年来,人工智能、HPC 、大数据等技术也在彼此融合协同,应用场景不断丰富,催生了众多新的应用与创新,如科学智能 AI for Science,高性能数据分析 HPDA 等,并在疫情防控、风险人员识别、自动驾驶、新药研发、灾难气象预测等领域加速落地。早期的 HPC/AI 应用主要集中在科研单位、重点院校、大型企业和 AI 公司等,大多运行在企业自建 IDC 的高性能计算集群环境中。随着 AI 与 HPC 计算机科学的不断发展,单纯依靠自建计算机集群资源已无法满足技术演进的需求,普遍面临着扩展性不佳、性能出现瓶颈、管理维护难的痛点。企业希望能够结合公共云架构,通过高性能、高弹性、灵活性、免运维与低成本的云上算力,解决在建设高性能计算集群时一直面临着的诸多挑战。所以越来越多的企业客户开始将 AI、HPC 应用往云上搬迁。
AI、HPC 应用所产生的非结构化数据,例如视频、语音、图片文件等的容量正在从 PB 到 EB 级跨越。例如,1 台基因测序仪每年产生数据达到 8.5PB,1 颗遥感卫星每年采集数据量可以达到 18PB,1 辆自动驾驶训练车每年产生训练数据达到 180PB。而公有云上存储产品形态主要是两类:一类是分布式块存储:主要为云主机提供存储空间,如 AWS EBS 等;另一类是分布式对象存储:为云主机快照数据、网盘、大数据等应用提供存储空间。却缺少匹配大规模 AI/HPC 计算集群的分布式文件存储产品,所以要实现 AI、HPC 应用在云上成功落地,首先要解决来自数据面的挑战:
- 面对海量数据规模的 AI/HPC 数据,如何突破传统存储架构限制,构建超大规模的存储空间,保障数据存储的可靠性和可用性;
- 集群化算力需求导致对存储的海量高并发访问,如何提供高效的数据吞吐能力,快速响应计算系统发出的数据访问,保证计算性能可以得到充分的发挥;
- 客户为了进行计算分析,需要在本地和公有云计算集群间进行手动数据搬移,效率低下。如何驱动云上和云下以及多云之间的数据流动,灵活的组织数据集进行高效的计算分析;
- 如何为基于容器的 AI 平台提供数据持久化、亲和性数据调度和组织;
- 对于庞大的非结构化数据带来管理越来越复杂,难以依靠人力将数据及时灵活地分配至合理的存储空间,数据管理效率低下,运维成本高等问题。如何让数据自动按需不同介质迁移,降低数据运营成;
综上所述,存储系统是 AI、HPC 高性能计算方案中重要的底层基础设施,也是最终实现 AI/HPC 云上落地的关键。
YRCloudFile 构建 AI/HPC 应用 多云数据存储平台方案
在实际业务建设中,公有云、私有云、混合云三者相辅相成,焱融分布式文件存储 YRCloudFile 基于业务场景的混合云需求,通过 YRCloudFile 智能分层和 Dataload 智能数据加载功能推出了多云数据存储建设方案,实现公有云和私有云数据全生命周期管理,将公有云及异构云打通,实现 AGI、AI 自动驾驶、AI 大模型、影视渲染的跨云建设。
实现海量非结构化数据存储
对于大规模 AI 训练或 HPC 计算场景,文件数据量会高达十亿,百亿甚至千亿的级别。面对如此海量的文件数量,传统存储架构由于采用单体元数据服务设计,MDS 很容易成为资源瓶颈,所以是很难支撑的。YRCloudFile 采用可以横向扩展的 MDS 元数据集群,通过多个MDS 服务器来解决文件存储数量限制的问题,同时 MDS 数量的增加也能提升元数据的处理性能。同时,通过 Entry Hash 的元数据放置策略,使得整个集群随着目录数量的增加,文件均匀的分布在各个 MDS 节点上,实现了元数据的分布存储,从而通过扩展元数据节点即可支持千亿级别的文件数量。另外,随着 MDS 数量增加,保证了元数据的检索性能,如:元数据操作(Creation、Stat) 的性能也会呈线性增加。
元数据放置策略示意图
另外,海量文件存储除了会造成 MDS 元数据服务的瓶颈之外,还很容易出现目录热点问题。由于训练时,业务部门的数据组织方式不可控,系统管理员不知道用户会怎样存储数据。很有可能用户会将大量文件存放在同一个目录,这样会导致多个计算节点在训练过程中,会同时读取这一批数据,这个目录所在的元数据节点就会成为热点。YRCloudFile 通过虚拟子目录的方式,把热点访问分摊到集群中所有的元数据节点,有效解决访问热点问题。此外通过虚拟子目录还能够有效扩展单目录文件数量,使单目录可以支撑 20 亿左右的文件数量,并且可以根据虚拟子目录的数量灵活调整。
极致存储性能完美支撑 HPC/AI 计算
通常我们用带宽、IOPS 及延迟这几个指标来衡量一个存储系统的性能。不同的业务场景对存储的性能需求也不尽相同。通常传统 HPC 场景大多是对大块数据的访问,因此更加关注带宽性能,而也有一些 HPC 场景,比如:气象分析、地质勘探等也会处理大量小文件,这时是需要非常高的存储 IOPS 性能。而对于大模型训练场景中会比较关注读带宽、写带宽、读 IOPS 和读延迟。YRCloudFile 实现全面性能优化:
- 高效的数据路由算法,提升数据并发访问性能
文件切片打散到多个 OSD :如图所示,每个文件都被切片并均匀分布在存储系统中的各个 OSD(磁盘)当中。尤其是大文件,通过切片数据分散到多块磁盘中,才有可能获得更高的并发访问性能;
存储客户端可以通过计算来获取所访问数据在 OSD 上的位置,通过这种数据路由的方式,可以有效的避免和 MDS 元数据服务的交互次数,提升并发访问性能;
- 通过异步多队列线程池提升 IO 并行处理能力
异步多队列线程池模型
如图所示,在每个存储节点上都会有多个 listener,每个 listener 都会和固定的 NUMA node 进行绑定。每一个 OSD 会对应一块磁盘 ,每个 OSD 请求会被分配到相应的 NUMA node 的线程池里面,同时在分配计算核心时也会尽力保证内存亲和性,避免跨 NUMA 核心的内存访问。listener 在收到 OSD 事件请求后,会分配一个 dispatcher 进行处理,其中对于处理较慢的请求会由 dispatcher 交给某个 worker。这样设计的目的是在 IO 处理过程中能够有效的减少锁的冲突,提升 IO 并行能力。
- 充分释放全闪硬件平台能力
YRCloudFile 针对 NVMe 全闪系统采用直接 Polling 的方式,相当于是用 CPU 资源换取低延迟,每个盘启动一个线程一直 polling,当来任务时立马去感知到事件去处理,使得 IOPS 提升,降低延迟。
YRCloudFile 基于原生 ibverbs 开发实现了Multi-channel 多InfiniBand 网卡聚合。支持多张 IB 网卡带宽性能聚合能力, 在采用 Round Robin 模式,在大 IO 场景下可以轻松跑满全部网卡性能,单个存储节点可以达到 40GB/s 带宽和 200万以上的 IOPS 的极致性能。同时支持多网卡的 failover 以及自动检测的 failback 功能,避免链路故障造成的业务中断。
焱融全闪存储集群性能线性增加
实现多云数据双向流动
自动加载数据集组织高效计算
对于一些 AI、HPC 的用户通常会同时构建多云的计算环境。比如,在生信分析行业由于测序业务量本身是存在波动的,这会导致服务器的数量不能很好的控制。服务器不足则无法满足业务高峰时的测序任务。如果采购可以满足最大峰值的集群,那么在业务量不能时刻保持高峰时,就会存在很大的成本浪费。所以客户首先会在本地构建私有云计算环境作为常规应用或小规模数据分析;而针对突发大规模计算需求则是会迁移到公有云计算环境,在完成之后再释放计算资源,利用公云的计算弹性来降本增效。在自动驾驶场景,数据会先进入到对象存储,当需要通过计算集群进行训练的时候,再通过手动的方式把数据从对象存储拷贝到分布式文件存储中,当数据量很大的时候会十分低效。所以如何实现私有云和公有云之间数据的流转,快捷的组织数据计算,以及对冷热数据分层存储,降低成本,也是困扰客户的难题。
数据加载功能驱动数据流动
YRCloudFile 开发了 Dataload 数据加载功能,实现了文件存储与对象存储之间数据的双向便捷流动。YRCloudFile 与对象存储对接与打通,客户可以在 YRCloudFile 存储中快速创建和对象存储 Bucket 的链接。当链接建立之后,YRCloudFile 文件系统会自动同步对象存储 bucket中的对象元数据,将对象透明地显示为YRCloudFile 文件。这使客户能够使用 POSIX 兼容的文件接口快速地处理对象存储中数据。而且当处理完成之后数据可以增量、全量导出到对象存储。
驱动数据流动实现数据分级存储
用户在使用新型业务进行数字化、智能化转型的过程中,除了关注存储性能给业务应用带来的效率提升外,还关注在数据量激增的背景下,总体使用成本的精细化控制。对大多数进行 AI 训练客户而言,数据具有阶段性热点访问的特点,超过一定时间后,80% 以上的数据逐步趋冷,完全没必要使用高性能的存储介质和存储方式对这些冷数据进行存储。YRCloudFile 文件存储系统的智能分层功能,可根据客户需求定义冷热数据层,冷数据自动流动至底层标准的 S3 对象存储中, 向上仍然为业务提供标准的 POSIX 文件访问接口,数据在冷热数据层之间流动对业务完全透明。智能分层采用智能加速模式,当读取几个字节时不需要获取整个文件,只需要读写更细粒度的分片,从而保证冷数据的读写性能。
焱融智能数据分层功能
焱融科技自研的高性能并行文件系统 YRCloudFile,提供了随容量线性扩展的存储吞吐和 IOPS 能力,最高可达百 GB/s 的吞吐和千万以上 IOPS的极致性能;提供灵活的数据访问接口,除了高性能的私有客户端外,还提供了通用的 NFS 接口,与云上计算生态无缝对接,实现整个生产链条下的数据共享,有效提高计算效率;通过 Dataload 数据加载功能能够自动加载任意对象存储数据,快捷组织数据计算;数据智能分层功能可以实现多级的文件存储策略,帮助用户实现根据计算需求来弹性规划存储使用,进而实现降低云端 HPC 的存储成本,提升数据调用、管理效率。目前,焱融 YRCloudFile 多云平台数据存储方案功能丰富,覆盖多行业场景,满足企业多样化的上云需求,真正实现数据的自由流动,用户可以轻松自如地控制数据在多云之间的流动,而应用层无感知,助力企业高效用云。