GPU服务器本地磁盘:被忽视的宝贵资源
虽然企业级NVMe闪存的价格持续下降,但仍然并不便宜,尤其是在需要大量存储的情况下。然而,许多组织都有数百TB甚至PB的存储闲置。为什么会这样呢?
如果您购买了1台(或1000台!)GPU服务器,那么它们很可能至少包含几个 NVMe SSD。举个例子,如果您今天购买NVIDIA DGX H200或B200,无论您是否想要,它都会附带八块3.84TB U.2 NVMe SSD。其他供应商将这种存储作为可选,但支持更多和更大的NVMe SSD规格。例如,戴尔 PowerEdge XE9680 支持多达16个122.88TB的NVMe SSD,这些SSD将于2025年上市。这意味着很快就能将近2PB的NVMe存储放在服务器中,就在GPU旁边。如果您在公有云提供商处租用GPU服务器,情况也是如此。无论您是否能有效使用本地 NVMe SSD,它都包含在公有云的GPU服务器配置中。
我们都知道本地存储比网络存储快得多,那么为什么GPU服务器中的这种存储未被使用呢?
主要有三个原因:
1,它是一个孤岛:只有位于同一台服务器中的GPU才能充分利用所包含的 NVMe存储的全部性能。例如,可以通过NFS挂载点访问此存储上的数据,但如果有很多GPU服务器,则意味着需要手动管理大量数据的导入和导出。
2,它不受保护:开箱即用,写入本地存储的数据不受保护。这就是供应商将其定位为缓存空间的原因。如果对其进行了配置,本地驱动器通常会与RAID0 一起条带化。可以使用 RAID1或RAID10,但这会占用容量并且仅提供部分保护,因为它无法产生另外一份数据副本。可以将一个纠删码文件系统条带化到多台GPU服务器上,但这样只有一小部分I/O会保留在本地,从而浪费大部分性能。GPU服务器也经常重新配置和重新启动,因此它们并不是一个好的选择。
3,它的数据难以移动和共享:在数十、数百或数千台 GPU 服务器上手动复制数据到各个共享中并不实际。即使许多步骤可以编写脚本,跟踪数据在哪里以及监控副本的状态也需要太多时间,而且还会增加运营开销和风险。
因此,虽然可以使用这种本地存储,但通常不会使用,因为有效使用它很快就会变得复杂。
使用Hammerspace解锁第0层(Tier 0)存储
Hammerspace是一个用于分布式文件和对象数据的整合数据平台。它使用基于标准的并行文件系统架构,并创建一个全局命名空间,该命名空间可以跨越任何供应商的任何类型的存储,包括多个站点和云。所包含的编排引擎可自动执行数据保护和其他数据服务,并使用称为目标的声明性策略在适当的时间将数据放置在适当的存储中。无论数据位于系统中的哪个位置,它始终对客户端可见且可访问,即使它在移动中也是如此。由于 Hammerspace 基于开放标准,因此它不需要客户端软件或专有内核修改,因此部署起来非常简单。
为了构建Hammerspace全局数据环境,新的和/或现有的存储设备(例如NAS 文件服务器上的NFS导出、Linux存储服务器等)被配置到Hammerspace中作为存储卷。这是通过元数据同化完成的,无需将数据从现有存储中迁移出来。然后创建可通过NFS、SMB 和 S3访问的Hammerspace文件共享和对象数据。NFS、SMB和S3接口是用户和应用程序用来访问数据的逻辑结构。数据本身会使用基于策略的目标自动放置在适当的存储卷上,这些目标定义了耐用性、可用性、性能、位置等。这些还可以包括自定义元数据,自定义元数据反映了对如何管理数据的更丰富的实现。
要创建Tier 0存储,需要将每台GPU服务器上的存储配置为一个或多个NFS 导出,这些导出将成为Hammerspace中的附加存储卷。完成此操作后,Hammerspace的所有功能和能力都可以应用于Tier 0存储,就像全局使用外部存储一样。
第0层(Tier 0)上的数据不再是孤岛
由于GPU服务器上的存储已纳入Hammerspace全局数据平台,因此不再孤立。驻留在其上的文件和对象不会“滞留在”GPU服务器上,而是成为跨平台统一命名空间的一部分。
第0层(Tier 0)上的数据得到保护
当把GPU服务器本地磁盘配置到Hammerspace中,就可以使用标准Hammerspace目标(策略)保护其中的数据。耐用性和可用性策略以“多少个9”来定义,并且可以在文件粒度的基础上智能地应用。根据这些规则,数据会异步放置在一个或多个存储卷上,以满足所需的目标(策略)。
第0层(Tier 0)上的数据可被编排
目标不仅用于数据保护,还用于其他数据服务,包括编排,这是“移动数据”的一种奇特说法。由于Hammerspace全局文件系统提供了统一的命名空间,因此数据移动是一种在后台无中断发生的后台操作。无论数据位于何处,或者可能移动到本地和云中的物理存储卷,文件始终会以用户期望看到的相同文件/文件夹结构出现在全局文件系统中。数据是持久的,并且始终可以通过相同的标准SMB、NFS 和/或 S3协议访问,即使它在移动中也是如此。自动数据编排解决了实际和后勤问题,否则无法有效使用GPU本地存储。
数据编排可以与第0层(Tier 0)一起使用的不同方式的一些示例包括:
• 仅将最新数据保留在第0层上,并自动将较旧的文件或对象移出到成本较低的存储,例如第1层或第2层外部存储或云存储。
• 将启动所需的文件副本固定到每台服务器的本地存储,防止“启动风暴”,即当许多节点需要读取相同文件时在集群启动时发生的减速。
• 将数据集从性能较低的存储层移动到第0层存储进行处理,然后自动将数据集结果从主机移出到其他本地、远程或云存储层。
• 通过将检查点文件(Checkpoint)保存到本地NVMe存储,然后异步迁移到较低存储层以减少GPU的等待时间,从而缩短检查点(Checkpoint)时间。可以设定目标以在本地保留最新的检查点(Checkpoint)以便快速恢复。
新的NFS旁路协议最大限度地减少了GPU空闲时间
过去当机械硬盘是活动数据的最常见主存储形式时,存储软件就很轻松了。如今效率很重要,但等待正确扇区在驱动器磁头下旋转所花费的时间却导致了大量的空闲时间。现在有了NVMe SSD,软件堆栈就处于热门位置。速度现在对于GPU工作流程至关重要,因此最大化软件性能需要消除瓶颈并尽可能添加捷径。
一些并行文件系统供应商构建私有客户端,或需要专有协议和独家内核修改来提高性能。这可能是一条更短的路径,但它也将客户锁定在其解决方案中,并使孤岛问题更加严重。Hammerspace采取了不同的方法,而是选择专注于改进和扩展现有的Linux标准,这些标准已经在地球上的每个数据中心中使用。使用标准pNFSv4.2和灵活文件布局(Flex Files)的Hyperscale NAS架构就是一个很好的例子。
通过使用GPU服务器本地存储,Tier 0速度极快,但Hammerspace对Linux进行了二次优化,使其速度更快。Linux内核的这一增强基于这样的逻辑:如果检测到NFS客户端和服务器在同一主机上运行,那么应用程序和存储之间的许多步骤(因此延迟)都可以消除。
在没有进行该项优化之前,即使NFS 客户端和服务器彼此都在同一主机上,数据也必须从NFS客户端流过网络协议栈,再流回NFS服务器,然后才能流向本地文件系统和存储设备。
Hammerspace为Linux社区贡献的NFS补充(从内核 6.12开始可用)增加了智能,以便NFS客户端和服务器知道它们何时位于同一主机上,并可以绕过许多不必要的步骤(上图)。这是以一种强大的方式完成的,即使NFS客户端和服务器在容器中运行也可以正常工作。一旦确认了位置,就会在应用程序和本地文件系统之间直接建立一条路径。其目的是绕开整个NFS堆栈,IO请求通过指向内存缓冲区的指针直接穿过内核,实现“零拷贝”。这样做的最终结果是您获得了本地NVME访问的真正性能。
由于数据路径现在绕过了内核中的几乎所有NFS代码,我们将其称为NFS协议旁路,但对于Linux内核开发人员来说,它被称为LOCALIO辅助协议。NFS 协议旁路提供了切实的性能优势,与不使用这种优化的本地存储的典型NFS数据路径相比,读取速度提高了12倍,写入速度提高了3倍。它延续了Hammerspace为标准Linux中的NFS堆栈贡献重大创新和性能增强的记录,这些堆栈在所有主要发行版中都可用。
第0层(Tier 0)用例 – Checkpoint
AI和其他高性能计算 (HPC) 应用程序涉及跨大型服务器集群执行的计算,并且可能运行数天、数周甚至更长时间。如果服务器或存储子系统发生故障,则会导致所有工作成果都可能丢失。检查点用于将这种风险降至最低。
检查点(Checkpoint)只是将集群内正在进行的计算作业的当前状态在某个时间点保存到持久存储中。这样做的用处是允许重新启动集群内的服务器并从检查点恢复计算作业,而不是从头开始。
制定检查点(Checkpoint)策略就像购买保险一样——重要的是平衡保护水平和风险。过度投保(过于频繁地检查点)可以提供更多保护,但需要付出代价。检查点需要时间,在此期间,GPU处于空闲和等待状态,因此无法执行有意义的工作。这会降低集群的效率,增加交付结果的时间,并可能严重损害 GPU的投资回报率。使用Hammerspace的Tier 0存储进行检查点可以大大减少检查点时间,同时相应提高GPU的生产工作利用率。在没有Tier 0的典型检查点工作流中,GPU集群将通过网络将检查点写入共享存储。这些检查点文件很大,这可能需要几分钟。写入检查点文件后,GPU将恢复其计算作业。
借助Hammerspace和Tier 0,集群中的检查点(Checkpoint)将利用NFS协议旁路实现最快的速度写入Tier 0本地NVMe存储。由于每台GPU服务器的本地存储都是全局Tier 0容量的一部分,因此可以以极快的速度在整个集群范围内完成此操作。检查点操作只需几秒钟,而不是几分钟,之后GPU可以恢复其工作。现在,检查点已成功写入Tier 0,Hammerspace随后会根据需要通过异步分层将文件复制到任何其他存储来自动保护文件。
由于Tier 0存储和用于保护检查点(Checkpoint)文件的存储都是Hammerspace统一命名空间的一部分,该命名空间涵盖所有存储类型(包括云),因此无论检查点文件在物理上移动到何处,它们始终在文件系统中的同一逻辑位置可见且可访问。如果最新的检查点文件的副本保存在每个节点本地,则检查点恢复时间也会大幅减少,因为只有来自故障节点的检查点文件需要遍历网络。
除了提供更多计算时间外,大幅减少的检查点时间(Checkpoint)还为研究人员提供了更频繁执行检查点的选项,从而缩小了漏洞窗口。
通过检查点到Tier 0提供的集群效率提高带来了真正的经济效益。Hammerspace的详细ROI分析得出结论,对于拥有8,000块GPU的1,000个节点集群,每年可节省数千万美元。即使对于较小的集群,节省的费用也是相当可观的。
现在,只有Hammerspace可以实现Tier 0存储层
正如本技术简介中所述,Tier 0不仅仅是将本地存储整合到共享文件系统中的能力。仅凭这一点并不能消除实际阻碍、也无法有效和高性能地使用此存储。只有Hammerspace拥有充分利用GPU服务器中的本地NVMe存储所需的所有功能和特性:
第0层(Tier 0)是基于原生Linux打造
• GPU/计算节点上不需要自定义软件。没有客户端代理,没有专用内核补丁,因为它包含在所有标准 Linux 发行版中。
• 避免了专有产品引起的版本兼容性问题和软件维护难题。
第0层(Tier 0)受到保护
• Tier 0上的数据很容易在其他GPU服务器和/或较低存储层(包括对象存储和云)上的Tier 0存储上受到保护。
• Tier 0磁盘不需要在服务器级别进行RAID保护,从而保留本地容量以供更高效的使用。
第0层(Tier 0)可实现编排
• 本地存储成为全局文件系统和命名空间的无缝组成部分。
• Tier 0存储增强了功能,并与任何供应商或云的第三方存储兼容。
• 亲和性和N向复制支持在多个节点上对同一文件进行多次实例化,以实现并发本地访问。
第0层(Tier 0)使用NFS协议旁路来最大化性能
• Linux内核中的LOCALIO补丁简化了通过Linux内核的数据路径,增加了智能并消除了不必要的步骤以减少延迟。
• 简化的数据路径更好地利用了服务器内的本地NVMe带宽。
第0层(Tier 0)优势总结
Hammerspace v5.1和Tier 0使组织能够改造其GPU计算基础架构,最大限度地提高投资价值并加快成果交付速度。
第0层(Tier 0)优势分为三类:
节省成本
• Tier 0降低了外部存储成本,并可以降低基础架构所需的总体功耗。
• Tier 0提高了GPU利用率,从而可以用更少的GPU完成更多工作。
• Hammerspace自动化数据编排减少了管理存储基础架构和跨不兼容存储孤岛处理数据副本所花费的管理时间。
• 在基于云的GPU集群中使用时,提高利用率并减少所需的GPU数量会直接影响利润,并可以降低云计算成本。
提升性能
• 本地存储始终比网络存储更快。Tier 0利用这种经常被忽视和未使用的存储容量来最大限度地提高GPU利用率。
• 除了通过将数据靠近GPU来加快处理速度外,Tier 0还可以将检查点速度提高20倍、40倍甚至更多。这样,在相同的基础设施下,每年可以提供更多小时的GPU计算时间。
加快业务价值实现
• Hammerspace基于标准,无需在客户端或存储服务器上安装软件。约30分钟就可以开始在本地和云端的GPU服务器中使用本地NVMe性能和容量。
• 利用GPU服务器中已有存储所需的工作量比部署新的外部存储系统要少得多。