NVIDIA 为 Facebook 的下一代计时功能提供精准计时

594 阅读6分钟

NVIDIA ConnectX NIC 为社交网络的关键任务分布式应用程序提供精确计时

Facebook 正在开源 Open Compute Project、Time Appliance Project (OCP TAP),该项目以经济高效的方式提供跨数据中心的非常精确的计时和时间同步。该解决方案包括一个时间卡,它几乎可以将任何commercial off-the-shelf (COTS) 服务器变成一个准确的时间设备,由 NVIDIA ConnectX-6 Dx network card (NIC)启用,具有精确的计时协议,以共享精确的时间与数据中心内的其他服务器保持同步。

Facebook 的 Time Card 和 NVIDIA 的 NIC 相结合,为数据中心运营商提供了一种现代、经济、时间同步的解决方案,该解决方案是开源的、安全的、可靠的和可扩展的。

为什么准确时间在数据中心很重要

随着应用程序横向扩展和 IT 运营跨越全球,在一个数据中心内的不同服务器之间或跨大陆的不同数据中心保持数据同步,这变得越来越重要,也越来越困难。如果数据库是分布式的,它必须跟踪事件的确切顺序以保持一致性并显示因果关系。如果两个人试图购买相同的股票,公平(和合规)要求确定地知道哪个订单先到达。同样,当成千上万的人发布内容并且每小时有数百万用户喜欢这些帖子时,Facebook 需要知道每个帖子、点赞、回复或表情符号发生的实际顺序。

保持数据同步的一种方法是让每个数据中心在每次交易后将其更新发送给其他数据中心,但这很快变得站不住脚,因为数据中心之间的延迟太高,无法支持每小时数百万个事件。

更好的方法是让每个服务器和数据中心同步到准确的时间,彼此的时间相差不到一微秒。这使每个站点能够跟踪时间,并且当它们与其他数据中心共享事件时,每个事件的顺序已经正确。

时间同步越准确,应用程序的性能就越快。最近的一项测试表明,将计时精度提高 80 倍(将任何时间差异缩小 80 倍)可使分布式数据库的运行速度提高 3 倍——在相同的服务器硬件上,性能令人难以置信的提升,仅仅因为保持更准确和更可靠的时间。

网卡和网络在时间同步中的作用

OCP TAP 项目(以及 Facebook关于时间设备开源的博客文章)准确定义了时间卡如何接收和处理来自 GPS 卫星网络的时间信号,即使在卫星信号暂时不可用时也能保持准确时间,并共享此准确时间与时间服务器。但网络——以及使用的网卡——也至关重要。

image.png

图 1. OCP 时间卡保持准确时间并与支持 PPS 输入/输出的 NIC 共享,例如 NVIDIA ConnectX-6 Dx(来源:Facebook 工程博客)

时间设备中的 NIC 必须有一个每秒时间脉冲 (PPS) 端口才能连接到时间卡。这确保了每个时间服务器中的时间卡和 NIC 之间的时间同步,精确到几纳秒。ConnectX-6 Dx 是首批支持此功能的现代 25/50/100/200 Gb/s NIC 之一。它还过滤和检查传入的 PPS 信号,并使用其 ASIC 中的硬件在内部保持时间,以确保准确性和一致性。

具有亚微秒精确计时的时间设备可以与使用网络时间协议 (NTP) 的数百台常规服务器或使用精确时间协议 (PTP) 的数万台服务器共享该计时。由于网络为时间信号、NTP 和 PTP 时间戳数据包添加了延迟,以测量两个方向的旅行时间,考虑抖动和延迟,并计算每个服务器上的正确时间(PTP 更准确,因此它开始取代NTP)。

image.png

图 2. NVIDIA ConnectX-6 Dx 带有 PPS 输入/输出端口,可实现与时间卡的直接时间同步。它还在硬件中对数据包执行精确的硬件时间戳。

另一种方法是使用软件解决方案进行时间戳,但以今天的速度使用软件进行时间戳太不可预测、不准确甚至不可能,由于拥塞或 CPU 干扰而变化高达毫秒。相反,ConnectX-6 Dx NIC 和 BlueField-2 DPU 会在入站数据包到达和出站数据包到达网络之前立即将硬件时间戳应用于它们,速度高达 100Gb/s。即使在繁重的网络负载下,ConnectX-6 Dx 也可以以小于 4 纳秒 (4ns) 的时间戳精度差异为每个数据包加时间戳。大多数其他具有时间功能的 NIC 仅标记一些数据包,并且显示出更大的精度差异,当网络流量很大时,它们的时间戳变得不那么精确。

NVIDIA 网络提供商用 NIC 提供的最精确的延迟测量,从而使所有服务器的时间最准确,应用程序时间差异通常低于一微秒 (<1us)。更精确的网络计时意味着每台服务器上的时间更准确,从而为分布式应用程序带来更快的性能(以及每个人的更多 Facebook“赞赏”)。

image.png

图 3. 使用 OCP 时间服务器和 NVIDIA NIC 或 DPU 部署 NTP 或 PTP 将极其准确的时间传播到整个数据中心的所有服务器。

精准时间同步,人人有份

OCP 时间设备项目使任何组织都能准确、准确和访问时间。来自 Facebook、NVIDIA 和 OCP 的开放时间服务器和开放管理工具提供了一个易于采用的方法,每个人都可以像超大规模者一样使用。

NVIDIA 提供具有精确计时功能的 NIC 和数据处理单元(DPU),可提供精确计时设备所需的超精确时间戳和网络同步功能。如果使用 BlueField DPU,它可以在其 Arm 内核上运行 PTP 堆栈,将时间堆栈与其他服务器软件隔离,并不断验证该服务器内的时间准确性,并不断计算整个数据中心的最大时间误差界限。

云服务和数据库已经添加了新的基于时间的命令和 API,以利用更好的时间服务器和时间同步。该解决方案共同开启了一个更准确计时的新时代,可以提高分布式应用程序的性能,并在云和企业中启用新型解决方案。

原文:developer.nvidia.com/blog/nvidia…