白飞飞Alan 2020-02-13
大规模的人工智能(AI)在容量和性能方面提高了存储基础设施的门槛。对于人工智能或机器学习(ML)环境,期望增长到数十个甚至数百TB的容量并不少见。尽管那些只提供全闪存阵列的供应商可能会宣称,这些环境实在太大而无法仅存储在全闪存的一层上。这些环境中的大多数(由于它们的并行性质)在硬盘的服务几乎与从闪存中获得的服务一样好。
要求1:高性能网络
人工智能/机器学习环境创建使用内部或直接连接存储(DAS)的计算服务器集群的情况并不少见。即使共享存储在使用可用容量和将工作负载更均匀地分配给计算节点方面效率更高,组织仍愿意牺牲这些效率来消除计算节点和共享存储创建之间的网络延迟。
NVMe光纤网络(NVMe-oF)是明确设计用于基于内存的存储设备(如闪存和非易失性内存的下一代网络。它提供的延迟几乎与DASNVMe相同。NVMe的深度命令和队列深度使其也非常适合高度并行化的工作负载,并且人工智能/机器学习可能是所有工作负载中最并行的。NVMe-oF可能是专门为内存存储而设计的,但它也是为人工智能/机器学习量身定制的。
要求2:共享存储
如果NVMe-oF可以解决计算和存储之间的延迟问题,那么它将启用第二个要求,即共享存储。通过NVMe-oF连接的共享存储解决方案,工作负载可以受益于共享存储的所有自然属性。首先,所有节点都可以访问所有数据,这意味着工作负载可以更均匀地分配其计算负载。这也意味着具有图形处理单元(GPU)的节点可以访问所有数据。由于图形处理单元(GPU)的价格比CPU贵得多,因此让图形处理单元(GPU)处于繁忙状态是当务之急,而共享存储则使这变得更加容易。
在衡量数十个甚至几百PB的工作负载容量需求时,存储效率的任何提高都可以节省大量成本。在每个计算节点都有专用驱动器的群集中,IT部门无法轻松地将可用存储容量重新分配给群集中的其他节点。直接连接存储(DAS)模型中缺乏资源池,这也意味着组织无法有效使用制造商推向市场的大容量驱动器。现在,具有双重用途的节点(计算和存储)可以安装12个或更多16TB以上闪存驱动器或18TB以上硬盘驱动器,而单个节点可能无法有效使用。如果人工智能/机器学习存储体系结构从专用服务器中池化那些相同的硬盘,则可以对其进行更精细的分配。人工智能/机器学习工作负载不仅需要扩展以满足容量需求,而且还必须可以直接访问存储节点以满足性能需求。
要求3:多层存储
考虑到人工智能/机器学习数据集的大小,分层几乎是必须的,因为数十PB的闪存太昂贵了。公平地说,某些人工智能工作负载不遵循80/20规则,在任何给定时间,80%的数据都是不活动的。这些工作负载可以从100%休眠状态变为100%活跃状态。尽管如此,它们是高度并行的,并且数百个性能较低的硬盘驱动器可同时满足工作负载的需求,从而可以提供这些工作负载所需的性能。如果没有,他们可以在当前网络技术允许的范围内尽快传送数据。
要求4:并行访问
并行访问意味着存储基础架构中的每个节点为人工智能/机器学习集群中的每个计算节点提供对其所需数据的直接访问。单个控制节点不会成为瓶颈。高水平的并行性对于人工智能/机器学习至关重要,因为可能需要同时访问存储池的计算节点数量众多。正是这种并行性使吞吐量能够使硬盘作为人工智能/机器学习存储基础设施中的组件而变得可行。并行文件系统几乎总是需要客户端或代理,但是与提供典型访问相比,该代理除了提供并行访问外,还通常需要较少的开销。
要求5:多种协议
尽管需要并行访问进行处理,但另一个要求是多协议访问,这对于将数据提取到存储基础架构中特别有用。许多人工智能和机器学习项目都从物联网(IoT)设备接收数据。这些设备通常需要与其附带的协议进行通信。许多设备通过SMB或NFS进行通信,少数设备使用S3。更重要的是,几乎没有人使用本机并行文件系统客户端。
要求6:高级元数据处理
人工智能/机器学习工作负载是元数据繁重的,尽管不是典型地因为它们使用像媒体和娱乐工作负载那样的丰富元数据而并非如此。元数据在人工智能/机器学习工作负载中的重要性来自其通用文件的数量。在大多数情况下,数十亿至数百PB的人工智能工作负载由数十亿个文件组成。这些文件中的每个文件都有元数据,就像其他工作负载一样,大部分IO事务都来自元数据。人工智能/机器学习存储基础结构必须管理元数据,以便即使文件数量增加,它也可以维持系统的性能。元数据需要在整个存储群集中进行分配,以便所有节点都可以参与其管理。供应商可能还会查看每个存储节点中闪存上的存储元数据,以确保系统始终响应。