网络

NVIDIA 助力 Facebook 新一代计时系统实现精确计时

NVIDIA ConnectX网卡助力社交网络关键任务的分布式应用实现精确计时功能

Facebook 正在开源 开放计算项目 Time Appliance 项目( OCP TAP ),该项目以经济高效的方式跨数据中心提供非常精确的计时和时间同步。该解决方案包括一个时间卡,它可以将几乎任何商用现货( COTS )服务器转换为精确的时间设备,由 NVIDIA ConnectX-6 Dx 网卡( NIC )启用,并具有精确计时协议,以便与数据中心的其他服务器共享精确的计时。

Facebook 的时间卡和 NVIDIA 的 NIC 相结合,为数据中心运营商提供了一个开源、安全、可靠和可扩展的现代化、价格合理的时间同步解决方案。

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

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

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

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

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

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

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

图 1 . OCP 时间卡保持准确的时间,并与支持 PPS 输入/输出的 NIC 共享,如 NVIDIA ConnectX-6 Dx (来源: Facebook 工程博客)。时间设备中的 NIC 必须具有每秒时间脉冲( PPS )端口才能连接到时间卡。这确保了每个时间服务器中的时间卡和 NIC 之间的精确时间同步,精确到几纳秒以内。 ConnectX-6 Dx 是第一个支持此功能的现代 25 / 50 / 100 / 200 Gb / s NIC 之一。它还过滤和检查传入的 PPS 信号,并使用其 ASIC 中的硬件在内部维护时间,以确保准确性和一致性。

时间设备中的网卡必须有一个用于连接Time Card的每秒时间脉冲(PPS)端口。这能确保每个时间服务器中Time Card和网卡之间的精确时间同步(精确到几纳秒之内)。ConnectX-6 Dx是首批支持此功能的现代25/50/100/200Gb/s网卡之一。它还能过滤和检查传入的PPS信号,并使用其ASIC中的硬件在内部维护时间,从而确保精确性和一致性。
计时精度达到次微秒级的时间装置可以与数百个使用网络时间协议(NTP)的普通服务器或数万个使用精确时间协议(PTP)的服务器共享该计时。由于网络会增加时间信号的延迟,因此NTP和PTP通过为数据包添加时间戳来测量两个方向的传输时间、将抖动和延迟考虑在内并计算出每个服务器上的正确时间(PTP的精度更高,因此它开始取代NTP协议)。

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

另一种方法是使用软件解决方案来添加时间戳,但在由于拥堵或CPU的干扰,用软件添加时间戳的误差可能达到几毫秒,因此以今天的软件方案添加时间戳是过于难预测、不精确、甚至是不可行的。相反,ConnectX-6 Dx网卡和BlueField-2 DPU可以在高达100Gb/s的速度下,在接收的数据包到达后和发送的数据包进入网络前,立即为它们添加硬件时间戳。ConnectX-6 Dx可以为每一个数据包添加时间戳,即使在网络负载极大的情况下,时间戳的精度误差也小于4纳秒(4ns)。其他大多数具有时间功能的网卡只对部分数据包进行标记并且精度抖动很大,因此在网络流量大的情况下,它们的时间精确性就会下降。
NVIDIA网络解决方案为商用网卡提供最精确的延迟测量,从而在所有服务器上实现最精确的时间,应用层面的时间误差通常低于一微秒(<1us)。网络计时精度的提升意味着每台服务器上的时间变得更加精确,这将为分布式应用带来更快的性能(并且为每个人带来更多的Facebook“点赞数”)。

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

 精确时间同步,人人皆可受益

OCP时间设备项目使任何组织都能获得精准的计时功能。来自Facebook、NVIDIA和OCP的开源时间服务器和开源管理工具提供了一个让每个人都可以像超大规模用户一样轻松使用这项功能的方法。

NVIDIA所提供的精确时间功能网卡和DPU(数据处理器)具有精确计时设备所需的超精确时间戳和网络同步功能。当使用BlueField DPU时,就可以在其Arm核上运行PTP栈,从而将时间栈与其他服务器软件隔离、持续验证该服务器内的时间精确性并持续计算整个数据中心的最大时间误差范围。

为了发挥经过优化的时间服务器和时间同步所带来的优势,云服务和数据库已经增加了基于时间的新命令和API。这些解决方案一同开启了精确计时的新时代,提高了分布式应用的性能并为云和企业带来新型解决方案。

关于OCP TAP的技术规格、原理图、机械原理、物料清单和源代码等详细信息,请访问:www.ocptap.com

Tags