当组织购买人工智能存储平台时,有很多途径可以遵循。但一个重要的目标应该是找到一种使其能够更有效地收集数据产品,以执行机器学习和人工智能任务。
评估和选择人工智能数据存储产品涉及的一些关键问题包括:
- 存储平台必须提供高性能和可扩展性,并有效管理成本。
- 其性能必须包括提供高吞吐量和实现低延迟。
- 产生良好的人工智能模型意味着处理PB规模的数据,这可能导致高昂的成本。组织必须意识到需要管理机器学习和人工智能平台的总体成本。
在深度学习中,机器学习算法可以在无监督的情况下运行,随着深度学习算法的连续层处理多个级别的数据分析,I/O配置文件会导致高度随机访问。机器学习和人工智能培训通常以批处理模式运行,在此模式下,数据科学家可以创建机器学习人工智能模型,针对数据进行测试,并随着时间推移完善模型。这种方法要求低延迟以确保快速执行,因为更短的模型测试时间意味着更多的迭代和更好的模型。
因此,组织选择的特定存储产品应基于其所做的工作类型以及所需的机器学习和人工智能培训。无论哪种情况,获得存储产品的性价比都会有一些折衷。
分层方法
在购买任何存储产品时,成本与性能是一个关键考虑因素。如果有这个选择,大多数组织都会购买速度尽可能快的存储设备。然而,获得更高性能需要付出更大的代价。通常,高性能系统不会扩展到数PB的范围内。加上假设随时分析的数据工作集将成为整个数据资产的子集,很容易看出存储分层是设计机器学习和人工智能数据存储的必要部分。
在机器学习和人工智能的背景下,分层到底意味着什么?传统的分层产品从固定存储池发展为复杂系统,根据使用频率和可用池容量优化单个存储块的位置。但是由于数据的处理方式,这种方法并不能很好地满足机器学习和人工智能的要求。
自动化分层产品假定数据经过对业务非常重要的生命周期。新的数据是非常重要的,并且将被频繁访问。随着时间的推移,数据的价值逐渐降低,它可以移动到成本更低、性能更低的产品存储中。
用于机器学习和人工智能分析的数据使不同的整个数据集变为活动状态并用于分析,同时需要在任何时候使用整个数据集。这意味着使用中的数据必须位于性能一致的存储层上,因为访问中的任何变化都会影响模型训练等问题。
机器学习和人工智能模型开发中的数据处理的随机性,意味着试图随着时间动态重新平衡数据的反应性存储平台算法将不起作用。这些算法假设一个规模较小且相对静态的工作集,该工作集随时间的推移而逐渐变化。在机器学习和人工智能中,数据访问配置文件将更加随机,因此很难预测要缓存哪些数据以及如何调整缓存大小或更快的存储层。
两层存储模型
为机器学习和人工智能工作负载提供存储的一个简单方法是简单地使用两层模型。性能层提供尽可能多的性能和尽可能低的延迟,同时针对系统预期要处理的最大数据集进行调整。
高性能的闪存价格昂贵,并且随着市场向三级和四级单元之类的容量闪存产品发展,高性能存储产品出现了一个新市场,其中包括低延迟闪存产品,如三星Z-NAND和东芝XL闪存。这些产品补充了通过提供低延迟I/O来开发的存储级内存。例如,Vast Data同时使用四层单元和Intel Optane技术,为N结构和S3 API提供支持,为非结构化数据提供高性能、可扩展的存储产品。
这些第0层存储产品使用NVMe设备在内部或跨存储网络进行连接。与传统的SAS和SATA存储设备相比,NVMe优化了I/O堆栈或I/O协议。其结果是更低的延迟和更大的吞吐量,但是由于服务器处理器不需要等待I/O完成的时间,显著提高了平台利用率。
Pure Storage公司的 AIRI,适用于人工智能的IBM Spectrum Storage和NetApp公司 All Flash FAS A800之类的产品都在内部使用NVMe以获得最高的媒质性能。Dell EMC公司和DataDirect Networks公司使用其产品线中的横向扩展文件系统产品来支持机器学习和人工智能参考架构。
容量层需要安全地长期存储所有人工智能模型数据,通常是数月或数年的时间。因此,具有高度耐久性的可扩展存储平台对于管理机器学习和人工智能所需的大量数据至关重要。对象存储市场已经发展到生产一系列高度可扩展和耐用的人工智能存储产品。
耐久性到底是什么?
在典型的存储系统中,使用将冗余构建到硬盘上存储的数据中的架构来保护数据。如果单个组件发生故障,则替换了发生故障的组件后,会使用额外的数据副本从丢失数据中恢复并重建数据。尽管RAID 5和更高版本为硬盘故障提供了保护,但仍需要其他系统来防御大规模灾难,例如数据中心中断。随着传统系统规模的扩大,持久性或减轻数据丢失的成本很高。
纠删编码将冗余构建到数据中,因此,硬盘、服务器甚至整个数据中心的中断或故障都不会造成数据丢失。擦除编码数据的分散性质意味着可以构建存储系统以通过本地和地理数据保护扩展多PB的数据,而无需管理多个系统的开销和成本。
对象存储为必须长期(通常为多年)保留的数据提供可扩展性和持久性。但是,为了获得成本优势,对象存储产品是基于具有某些缓存功能的基于硬盘的廉价存储构建的。这使得它们不太适合机器学习和人工智能数据的日常处理,但对于长期保存却非常适合。
地理位置分散的对象库还使来自多个位置和来源的数据能够从多个位置和来源提取和访问。例如,如果数据处理使用内部部署和公共云基础设施的混合,则这可能很有价值。地理分散是Scality Ring平台的功能,该平台与HPE公司和WekaIO公司产品集成在一起以创建两层存储架构。
混合存储架构
企业面临的挑战是如何实现包含高度可扩展和高性能存储的混合体系结构。对象存储系统使组织能够存储大多数的数据,而某些产品则使用性能节点,这些节点将活动数据存储在具有高性能闪存的服务器上。这种方法的优点是,可以将容量或性能节点添加到产品中,以便在任何方向上进行扩展。例如,Cloudian公司提供了可扩展性功能的硬件设备。
从高性能存储构建的系统必须设计为可针对正在处理的整个数据集进行扩展。在这些场景中,随着时间的推移,多个人工智能数据集被处理,数据在高性能平台之间来回移动。
存储架构必须能够为人工智能产品提供在存储器之间来回移动数据所需的网络带宽,并满足人工智能平台的要求。Nvidia DGX-1和DGX-2平台等产品每秒可消耗数十GB的数据。因此,为了跟上发展的步伐,人工智能数据存储产品中计算与存储之间的连接必须是低延迟的InfiniBand或100Gb以太网。
人工智能产品的软件定义存储
为机器学习和人工智能构建存储并不一定意味着部署更高性能的设备。新的高性能人工智能存储产品是可用的,基本上是软件定义存储(SDS)。这些产品利用了新媒介的性能,包括NVMe,在某些情况下还包括持久内存或存储类内存。
软件定义存储(SDS)产品的优势之一是它们适用于公共云,因为它们可以在公共云基础设施中实例化和动态扩展。当不知道基础设施的数量或只需要很短的时间时,这种操作模式可能很有吸引力。
WekaIO公司提供了基于Matrix软件的横向扩展存储平台,该平台可以部署在具有NVMe驱动器的服务器上,也可以部署在具有NVMe功能的弹性计算云实例的AWS公共云中。
Excelero NVMesh是另一个软件定义存储(SDS)产品,它可以跨多个服务器和存储线性地扩展性能,并且通常与IBM公司的Spectrum Scale结合起来创建一个扩展文件系统。
数据移动性
将容量和性能层组合到单个产品中需要人工或自动过程,以在性能和容量层之间移动数据,并在元数据移动时在元数据之间成功跟踪数据。某些人工智能存储产品可以直接与对象存储集成,从而简化了此过程。公共云可以作为机器学习和人工智能开发的强大选择,因为在内部云服务之间移动的数据不会产生存储费用。例如,WekaIO 公司的Matrix可以在内部和外部复制数据,并将其存档到对象存储中。
集成在一起
想要为机器学习和人工智能工作负载实现本地存储的企业必须考虑容量和性能。对于性能层,他们可以从头开始构建,也可以部署一个打包的产品,用于机器学习的融合基础设施。使用构建选项,企业可以部署内部设备或使用软件定义存储(SDS)。软件定义存储(SDS)使组织能够将存储作为一个单独的层来实现,或者构建一个超融合的基础设施。如果数据将保留在本地,则组织可以使用设备或遵循软件定义的路由,使用对象存储部署容量层。
转向公共云,IT组织可以使用本机服务,例如对象存储和块存储。要实现机器学习和人工智能应用程序的低延迟,文件存储产品还有很长的路要走。相反,组织可能会使用块存储,尤其是与将文件服务层添加到本机块资源的软件定义存储(SDS)或人工智能存储产品结合使用的时候。