英伟达帮助脸书新一代计时系统实现精确计时

2021-08-17 17:22 来源:电子说

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

脸书正在开放其开源计算项目——时间设备项目(OCP TAP)的源代码,该项目以经济高效的方式提供跨数据中心的高度精确的计时和时间同步。在NVIDIA ConnectX-6 Dx网卡(NIC)的支持下,该解决方案中的TIme Card可以通过精准定时协议,将几乎所有商用现成(COTS)服务器变成精准定时设备,与整个数据中心的其他服务器共享精准定时。

脸书时间卡与英伟达网卡的结合,为数据中心运营商提供了一种先进、低成本的时间同步解决方案,开源、安全、可靠、可扩展。

精确的时间为什么对于数据中心至关重要

随着全球范围内应用和IT运营的扩展,在数据中心的不同服务器之间或不同大洲的不同数据中心之间保持数据同步变得更加重要和困难。分布式数据库必须跟踪事件的确切顺序,以保持一致性并显示因果关系。如果两个人试图购买同一只股票,那么根据公平(和合规)的原则,他们必须知道支付账单的顺序。同样,当每小时有数千万人发布内容,数百万用户喜欢/赞/爱这些帖子时,脸书必须知道每个帖子、每个赞、每个回复或每个表情符号的实际出现顺序。

保持数据同步的方法之一是让每个数据中心在每个事务操作完成后向其他中心发送更新。然而,数据中心之间的延迟太高,每小时无法支持数百万个事件,这很快变得不可持续。

更好的方法是将每台服务器和数据中心同步到一个精确的时间,这样彼此之间的时间误差就不会超过一微秒。这样,每个站点都可以跟踪时间,当他们与其他数据中心共享事件时,他们可以正确地对每个事件进行排序。

时间同步越准确,应用程序性能就越高。最近的一项测试表明,将定时精度提高80倍(将任何时间差减少80倍)可以将分布式数据库的运行速度提高3倍。在相同的服务器硬件上,只有通过提高更准确和可靠的时间,才能实现显著的性能提升。

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

OCP TAP项目(以及脸书关于开源时间设备的博文)准确定义了TIme Card如何接收和处理来自GPS卫星网络的时间信号,即使在卫星信号暂时不可用的情况下,也能保持准确的时间,并与时间服务器共享这个准确的时间。同时,网络和所使用的网卡也起着至关重要的作用。

图1。OCP时间卡保持准确的时间,并与支持PPS输入/输出的网卡(如NVIDIA ConnectX-6 Dx)共享这一时间(来源:脸书工程博客)

时间设备中的网卡必须有一个用于连接到时间卡的每秒时间脉冲(PPS)端口。这可以确保每个时间服务器中的时间卡和网卡之间的精确时间同步(在几纳秒内)。ConnectX-6 Dx是最早支持该功能的现代25/50/100/200Gb/s网卡之一。它还可以过滤和检查输入的PPS信号,并使用其专用集成电路中的硬件在内部保持时间,从而确保准确性和一致性。

具有亚微秒定时精度的时间设备可以使用网络时间协议(NTP)与数百台普通服务器共享定时,或者使用精确时间协议(PTP)与数万台服务器共享定时。由于网络会增加时间信号的延迟,NTP和PTP通过给数据包加时间戳的方式来测量两个方向的传输时间,将抖动和延迟考虑在内,在每台服务器上计算正确的时间(PTP比较准确,所以开始取代NTP协议)。

图2。NVIDIA ConnectX-6 Dx具有PPS输入/输出端口,可以直接与时间卡同步时间。它还可以在硬件中为数据包添加准确的硬件时间戳

另一种方法是使用软件解决方案来添加时间戳。但由于拥塞或CPU干扰,用软件添加时间戳的错误可能会达到几毫秒。因此,在当今的软件解决方案中添加时间戳太难预测、不准确甚至不可行。相反,ConnectX-6 Dx网卡和BlueField-2 DPU可以在收到的数据包到达后和进入网络前立即为其添加硬件时间戳。ConnectX-6 Dx可以为每个数据包添加一个时间戳,即使在网络负载极重的情况下,时间戳的精度误差也小于4纳秒(4ns)。其他大多数带时间功能的网卡只标记部分数据包,其精度抖动很大,因此在网络流量较大的情况下,其时间精度会下降。

显卡

网络解决方案为商用网卡提供最精确的延迟测量,从而在所有服务器上实现最精确的时间,应用层面的时间误差通常低于一微秒(《1us)。网络计时精度的提升意味着每台服务器上的时间变得更加精确,这将为分布式应用带来更快的性能(并且为每个人带来更多的Facebook“点赞数”)。

  

  图3. 使用OCP时间服务器和NVIDIA的网卡或DPU部署NTP或PTP可以将高度精确的时间传到整个数据中心的所有服务器

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

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

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

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

延伸 · 阅读