NVIDIA ConnectX网卡助力社交网络关键任务的分布式应用实现精确计时功能
Facebook正在开放其开源计算项目—— 时间设备项目(OCP TAP)的源代码,该项目以经济高效的方式提供高度精确的计时功能,以及跨数据中心时间同步功能。在NVIDIA ConnectX-6 Dx网卡(NIC)的支持下,这项解决方案中的Time Card通过精确计时协议,可以将几乎所有商用现成的(COTS)服务器变成精确的计时设备,与整个数据中心内的其他服务器共享精确计时。
Facebook Time Card和NVIDIA 网卡这对组合为数据中心运营商提供了一个先进和低成本的时间同步解决方案,并且该解决方案具有开源、安全、可靠和可扩展等特点。
精确的时间为什么对于数据中心至关重要
随着应用的扩展并且IT运营遍布全球,保持数据中心内不同服务器,或位于各大洲不同数据中心的数据同步,变得更加重要和困难。分布式数据库必须追踪事件的确切顺序以保持一致性并显示因果关系。如果有两个人试图购买同一只股票,那么根据公平性(和合规性)原则,就必须知道买单的先后顺序。同样,当每小时有上千万人发布内容,数百万用户喜欢/称赞/喜爱这些帖子时,Facebook必须知道每个帖子、每次点赞、每条回复或每个表情符号的实际发生顺序。
保持数据同步的方法之一是让每个数据中心在每件事务操作完成后向其他中心发送更新,但由于数据中心之间的延迟太高,以至于无法支持每小时数百万个事件,这种做法很快就变得无法维持。
更好的方法是让每个服务器和数据中心同步到精确的时间,使彼此之间的时间误差不超过一微秒。这样每个站点都能追踪时间,并且当它们与其他数据中心共享事件时,能够正确排序每个事件。
时间同步越精确,应用性能就越快。最近的一项测试表明,将计时精度提高80倍(将任何时间差异减小80倍)能够使分布式数据库的运行速度提高3倍。在相同的服务器硬件上仅仅通过提高更精确和更可靠的时间就能实现显著的性能提升。
网卡和网络在时间同步中的作用
OCP TAP项目(以及Facebook关于开源时间设备的博客文章)确切地定义了Time Card如何接收和处理来自GPS卫星网络的时间信号,即使在卫星信号暂时不可用时,也能保持精确的时间并与时间服务器共享这一精确的时间。同时,网络以及所使用的网卡也发挥着至关重要的作用。
(图1. OCP Time Card保持精确的时间并与支持PPS输入/输出的网卡(如NVIDIA ConnectX-6 Dx)共享这一时间《资料来源:Facebook工程博客》)
时间设备中的网卡必须有一个用于连接Time Card的每秒时间脉冲(PPS)端口。这能确保每个时间服务器中Time Card和网卡之间的精确时间同步(精确到几纳秒之内)。ConnectX-6 Dx是首批支持此功能的现代25/50/100/200Gb/s网卡之一。它还能过滤和检查传入的PPS信号,并使用其ASIC中的硬件在内部维护时间,从而确保精确性和一致性。
计时精度达到次微秒级的时间装置可以与数百个使用网络时间协议(NTP)的普通服务器或数万个使用精确时间协议(PTP)的服务器共享该计时。由于网络会增加时间信号的延迟,因此NTP和PTP通过为数据包添加时间戳来测量两个方向的传输时间、将抖动和延迟考虑在内并计算出每个服务器上的正确时间(PTP的精度更高,因此它开始取代NTP协议)。
(图2. NVIDIA ConnectX-6 Dx带有PPS输入/输出端口,可与Time Card直接进行时间同步。它还可以在硬件中为数据包添加精确的硬件时间戳)
另一种方法是使用软件解决方案来添加时间戳,但在由于拥堵或CPU的干扰,用软件添加时间戳的误差可能达到几毫秒,因此以今天的软件方案添加时间戳是过于难预测、不精确、甚至是不可行的。相反,ConnectX-6 Dx网卡和BlueField-2 DPU可以在高达100Gb/s的速度下,在接收的数据包到达后和发送的数据包进入网络前,立即为它们添加硬件时间戳。ConnectX-6 Dx可以为每一个数据包添加时间戳,即使在网络负载极大的情况下,时间戳的精度误差也小于4纳秒(4ns)。其他大多数具有时间功能的网卡只对部分数据包进行标记并且精度抖动很大,因此在网络流量大的情况下,它们的时间精确性就会下降。
NVIDIA网络解决方案为商用网卡提供最精确的延迟测量,从而在所有服务器上实现最精确的时间,应用层面的时间误差通常低于一微秒(<1us)。网络计时精度的提升意味着每台服务器上的时间变得更加精确,这将为分布式应用带来更快的性能(并且为每个人带来更多的Facebook“点赞数”)。
(图3. 使用OCP时间服务器和NVIDIA的网卡或DPU部署NTP或PTP可以将高度精确的时间传到整个数据中心的所有服务器)
精确时间同步,人人皆可受益
OCP时间设备项目使任何组织都能获得精准的计时功能。来自Facebook、NVIDIA和OCP的开源时间服务器和开源管理工具提供了一个让每个人都可以像超大规模用户一样轻松使用这项功能的方法。
NVIDIA所提供的精确时间功能网卡和DPU(数据处理器)具有精确计时设备所需的超精确时间戳和网络同步功能。当使用BlueField DPU时,就可以在其Arm核上运行PTP栈,从而将时间栈与其他服务器软件隔离、持续验证该服务器内的时间精确性并持续计算整个数据中心的最大时间误差范围。
为了发挥经过优化的时间服务器和时间同步所带来的优势,云服务和数据库已经增加了基于时间的新命令和API。这些解决方案一同开启了精确计时的新时代,提高了分布式应用的性能并为云和企业带来新型解决方案。
关于OCP TAP的技术规格、原理图、机械原理、物料清单和源代码等详细信息,请访问:www.ocptap.com。
关于NVIDIA
NVIDIA(纳斯达克股票代码:NVDA)1999年发明的GPU驱动了PC游戏市场的增长,并重新定义了现代计算机图形、高性能计算和人工智能。NVIDIA在加速计算和AI领域的创举正在重塑交通,医疗健康和制造业等价值数万亿美元的产业,并推动了许多其他产业的增长。更多信息,请访问https://nvidianews.nvidia.com/。