进入正文

用分离式存储解决方案实现面向 人工智能(AI)/机器学习(ML) 的大容量 SSD:性能测试结果凸显光明前景

  • 邮件
High-Capacity SSDs for AI/ML using Disaggregated Storage Solution: Performance Test Results Show Promise
High-Capacity SSDs for AI/ML using Disaggregated Storage Solution: Performance Test Results Show Promise
令企业级存储产品提供商在十多年前↗始料不及的是,现代组织会产生大量的非结构化数据。当时,传统的文件系统和存储解决方案会为计算机提供一个接口,用来可预见、一致地查找磁盘上存储的数据,用户只需运转硬盘以满足其存储需求即可。回想当时,固态硬盘 (SSD) 在存储市场的占有率也极低。 随着时间推移,硬盘驱动器 (HDD) 和固态硬盘 (SSD) 市场开始相互交叉:这两种技术都支持操作系统块接口,从而让适用于 HDD 的软件也能在 SSD 上正常运行。但这两种介质之间的差异已经扩大。 软件开发人员有关 HDD 这种介质的性能假设不适用于 SSD。为确保理想的性能,常见的做法是在服务器上堆叠尽可能多的 HDD。而过去十年来,SSD 的价格持续下降,开发人员也在寻找新的方式以发挥 SSD 的性能优势。 SSD 在 HDD 市场不断攻城略地,但它在大规模存储这一使用场景上建树不多。而在数据分析领域,尤其是在人工智能 (AI)/机器学习 (ML) 领域,有关大规模全闪存储的使用场景正在飞速涌现。这让各种组织拥有了绝佳的新机会,可以利用 AI/ML 开展预测性分析和前瞻性决策。它为企业带来的效益远多于其成本,并产生了更高的投资回报率。使用 SSD 的总体拥有成本 (TCO) 也十分有竞争力。由于所需的服务器数量减少,资本支出和运营支出都得以下降。通过采用具有更大容量的 SSD,简化了管理也降低了耗电量,从而节省了可观的成本。 那么问题来了:为什么人们没有采用 16 或 32 TB 的 SSD 来支持大规模使用场景? 根据三星与客户和合作伙伴交流的结果,业界没有全面改用 SSD 的主要原因是,大规模的全闪存储仍然是一个新生的概念。大部分场景仍在使用传统的存储解决方案,而这些解决方案最初是针对 HDD 设计的,后来才为了初步采用 SSD 而进行改装。不妙的是,这些解决方案的设计并非针对大规模的全闪存储使用场景。 要有效地发挥这种容量优势,企业必须确保 SSD 能够提供足够的系统级性能。能不能实现这一目标?如果不能,障碍在哪里? 用分离式存储方案克服 SSD 性能挑战 三星存储器解决方案实验室↗ (MSL,Memory Solutions Lab) 专业研究影响现代存储解决方案的系统级问题,目前参与了多方面的项目,涉及分离式/组合式架构、计算加速、面向 ML 和流式传输的存储、基于网络的异构计算和涉及 CXL 的存储虚拟化/容器化、计算存储、以太网 SSD、对象存储和大规模存储。 MSL 高级总监 Mayank Saxena 指出,基于 POSIX 的文件系统存在多个关键性的问题,甚至并行文件系统 (pNFS) 也是如此。他说:“大部分问题涉及元数据,以及难以通过扩展来容纳许多拍字节的数据。虽然 NFS 在小规模场景(例如低于 1 拍字节)时表现很好,但随着存储系统容量的增加,它们开始力不从心。” 下表说明了性能的相对下降速度:
为解决这一挑战,MSL 与一家客户合作探索替代存储解决方案,为此利用了该客户的一个大型(几百拍字节)AI/ML 训练项目,该项目需要通过高速联网提供稳定的高带宽,并且需要能够不断扩展。该客户需要一个不仅具有优异性能和容量,而且占用空间较小的解决方案。研究结果显示,三星的开源分离式存储解决方案 (DSS)↗ 能够满足这些要求。该项目采用标准的 Amazon S3 兼容接口来实现对象存储,在设计时考虑了艾字节级扩展需求,以充分发挥标准硬件和大容量 SSD 的优势。 为什么 MSL 会选择使用对象存储?对于入门级用户而言,许多新的 AI 应用都需要处理机器生成的数据,而这些数据往往是作为对象存储的。跨多个存储节点管理单个命名空间十分复杂,为避开这一问题,MSL 试验了一种不同的方法:为每个节点配备自己的文件系统,然后通过统一的对象存储来管理数据,从而可以使用 Kubernetes 等外部编排系统来协调数据分发。 在此使用场景中,影响预期性能的关键不在于 SSD,而是拖累其速度的元数据和文件系统。使用对象存储时,用户无需管理大型数据块,而是可以更轻松地在多个磁盘之间分发和复制的较小数据存储。通过这种方式来管理数据,数据保护逻辑会应用到数据本身,而不是存储数据的驱动器,从而简化了过程。 大规模验证 DSS 的性能 为验证这种方法的性能,MSL 与该客户紧密合作,以了解客户数据的特点,以及数据在存储和 GPU 之间传输的方式。他们利用此信息创建了多种工具和一个环境,用来生成预期训练系统的代表性流量,同时注意最终要扩展到数千个 GPU 的目标。 然后在完全相同的节点配置上测试了以下两种不同的存储解决方案:DSS S3 和 NFS。测试结果如下:
当时MSL使用六台服务器,分两种配置进行测试,均没有任何纠删码,也没有使用 RAID:
  • DSS v0.6 - CentOS 7.8.2003(内核 3.10.0-1127.el7.x86_64)
  • NFS v4 – Ubuntu 20.04.3 LTS(内核 5.4.0-100-通用)
对解决方案的比较不仅需要在存储层进行,而且也需要在应用层(即 AI 训练)进行。该团队使用了一种适用于存储解决方案的 AI 基准测试工具,该工具基于 Tensorflow 和 PyTorch 这两种著名的 AI 框架,利用客户的 AI 训练算法和数据集,从数据载入时间、综合列出时间、吞吐量、延迟和其他参数等角度测量存储性能。每个客户端节点的 AI 训练实例数量进行了调整,以演示随着并行工作负载的增加的性能变化。测试结果如下图:
在测试中可以看出,DSS 的性能要明显更高并且保持在较高水平,即使 AI 训练的数量(以及运行 AI 训练的客户端节点数量)增加时也是如此。 然后,该团队将此解决方案扩展到满配 10 个存储节点的完整机架,并为网络设备预留了充足空间和电力,从而进行测试。测试结果如下图:
DSS 在满配的存储节点机架上可实现大约 270 GB/s 的带宽,说明即使系统的总容量增加,该解决方案仍能保持高性能,无需持续腾挪数据。 最后,该团队测试了 DSS 在进行逐个节点扩展时的性能。从下图可以看出,吞吐量与存储节点的数量成正比,因此可以轻松进行分离式扩展。使用 DSS 时,客户能够充分发挥大规模 SSD 的潜力,降低了存储变为性能瓶颈的风险。
DSS 的前景 三星客户对于 DSS 在其数据密集型 AI 应用上取得的进步十分满意,但这并非其发展历程的终点。为了进一步提高系统的整体价值,还需要完成多方面的额外工作:
  • 利用不同的数据参数(数据集大小、种类、客户端节点的数量等)进行更多的大规模测试。
  • 使用执行实际机器学习运算的 GPU 服务器来进行测试,因为 AI/ML 训练工作负载与其他工作负载不同。
  • 选择以下两种方式中的一种,增加 SSD 容量/主机:
    • 将 SSD 容量从 32 TB 增加到 64 TB。
    • 寻找将使用 24 个或更多 SSD 的服务器,而不是只使用 16 个 SSD,这可能较为困难。
  • 升级到新一代的 CPU 以测试上限,从而确定在服务器上采用三星下一代 PCIe 第 5 代 SSD 和 DDR5 存储器所带来新速率的影响。
尽管仍有一些未知之处,但 DSS 在各种硬件配置下都可为巨大规模的数据密集型工作负载提供高性能的吞吐量,其前景十分光明。 了解更多 如果您希望进一步了解此架构,我们建议您访问 https://github.com/OpenMPDK/DSS↗。我们会不断测试更多的参数,请密切关注新的测试结果。 要详细了解三星领先的存储器解决方案,请访问 https://www.semiconductor.samsung.com* 本文的产品图片以及型号、数据、功能、性能、规格参数等仅供参考,三星有可能对上述内容进行改进,具体信息请参照产品实物、产品说明书。除非经特殊说明,本广告中所涉及的数据均为三星内部测试结果,本广告中涉及的对比均为与三星产品相比较。