APP下载

基于Telemetry 架构的数据中心网络纳秒级时间同步

2021-11-14张千里张超凡王继龙唐翔宇沈钲晨王会

通信学报 2021年10期
关键词:离群交换机数据包

张千里,张超凡,王继龙,唐翔宇,沈钲晨,王会

(清华大学网络科学与网络空间研究院,北京 100084)

1 引言

精准的时间同步对于分布式网络应用具有十分重要的意义,尤其是在数据中心网络中。以Spanner分布式数据库[1]为例,当网络时间同步精度可以达到T个时间单位以内时,为了维护数据的外部一致性,一次写操作完成后必须要等待T个时间单位的时钟不确定期,才能释放写锁,以保证该写操作的结果可以被其他节点正确地读取。在实时性要求较高的场景中,普通的时间同步精度(一般为毫秒级)将从根本上限制数据库的吞吐量和性能,所以纳秒级的高精准时间同步对于提升分布式数据库的性能是十分关键的。而且,高精准的时间同步可以让人们得到更精准的单向时延(OWD,one way delay)数据,以用于网络监测及研究。数据中心中细粒度的包级别调度可以减少拥塞、提升网络性能[2],这也需要各节点间的精准时间同步。另外,对某一时刻的网络状态进行快照记录也需要高精准的同步时钟[3]。总体来说,随着数据中心网络链路速度的不断提升,各类分布式应用以及网络管理调度对高精准的时间同步有着越来越精密的需求。

时间同步过程本质上是节点间单向时延的精确测算。若可以高精准地测算出节点间的单向时延,则可以再结合同一数据包在各个节点的时间戳,计算节点间的时间偏差(详见第2 节)。

经典的时间同步方法如网络时间协议(NTP,network time protocol)[4]无法达到纳秒级的高同步精度;精准时间协议(PTP,precise time protocol)[5]实施成本较高,且高网络负载情况下效果较差。近年来,针对数据中心网络的高精准时间同步需求,有研究者设计了DTP(datacenter time protocol)[6]、DPTP(data-plane time-synchronization protocol )[7]、HUYGENS[8]等时间同步方法,可以在数据中心网络中达到纳秒级的时间同步(详见第2 节)。

但是,已有的时间同步方法还存在以下三点问题:1) 目前已有的时间同步方法都是局部的同步方式,数据中心网络的中心控制节点难以进行集中式的管理,也很难清晰地了解每对节点间的时间偏差情况,这与后续基于高精也是最关键的问题准时间同步的网络管理与调度是脱节的,该问题也是最关键的问题;2) 前述方法都要求同步时发送请求和回复数据包,许多还引入了自定义的新协议,应用于数据中心时需要额外的交互和管控;3) 一些时间同步方法由于协议设计不够精细(如NTP[4])或者硬件存储限制(如DPTP[7]),可以用于计算同步偏差的时间数据较少,因此容易受到某些离群值的影响。

针对上述问题,本文结合软件定义网络(SDN,software defined network)[9]和网内计算[10]的思想,采用基于Telemetry 架构的时间同步机制,要求网络中的节点在转发数据包的同时,向中心节点汇报数据包进出节点的时间信息,而中心节点得到各个节点的时间信息后,便可进行统计分析,计算出任意2 个节点的时间偏差。该方法有以下四方面优势:1) 这种集中式的管理架构与后续基于高精准时间同步进行网络管理与调度是一脉相承的,中心节点可以计算出任意2 个节点的时间偏差,之后可直接用于全局的网络管理优化;2) 与传统的时间同步架构不同,该架构不需要节点间进行请求回复数据包的交互,只需借助现有的流量来收集数据包进出节点的时间信息,并对汇报上来的时间信息进行分析处理,达成一种集中式的自动同步;3) 该方法可以在数据中心的大规模流量中得到大量的时间信息,并且结合一定的统计分析,达到更精准的纳秒级时间同步,尤其在去除离群值、优化最差情况方面表现较好;4) 该架构是流量密度自适应的,流量规模越大,得到的时间数据越多,就越能优化同步精度,而在流量很小甚至接近零的情况下,得到的时间信息较少,但此场景一般对于时间同步的需求也较低,因此该架构是一个流量密度自适应的自洽体系。

本文针对数据中心网络的高精度时间同步需求,提出了基于Telemetry 架构的时间同步机制,并在可编程交换机上具体实施,在保证纳秒级同步精度的同时,改变了原来基于同步请求和回复数据包的模式,在中心节点汇总分析数据包进出节点的时间信息,方便后续基于高精准时间同步进行网络管理与调度。相比之前的时间同步方法,本文所提方法具有集中式分析管理、全局视野、大量数据分析、流量密度自适应性等特点。本文主要贡献如下。

1) 分析数据中心网络对于高精准时间同步的需求,提出了基于Telemetry 架构的时间同步机制,借助数据中心的背景流量来收集数据包进出节点的时间信息,并对汇报上来的大量时间信息进行分析处理,达成一种集中式的自动同步,便于后续进行全局性网络管理调度。

2) 对中心控制节点初步计算的时间偏差数据再应用局部离群因子检测算法,去除其中的离群值,进一步提升时间同步精度,尤其在去除离群值、优化较差情况方面效果优异。

3) 在可编程交换机上实现了该基于Telemetry 架构的时间同步系统,借助数据平面的可编程性,使用可编程协议无关包处理(P4,programmable protocol-independent packet processor)语言[11]编写了可编程交换机的转发逻辑,要求各节点在转发数据包的同时,向中心节点汇报数据包进出节点的时间信息。实验表明,通过中心节点对汇报上来的大量时间信息进行分析处理,在多跳之间、不同端口额定速率及实际数据包发送速率下,节点间均可以达到纳秒级的高精准时间同步;并且,任意2 个节点的时间偏差都可以在中心节点得到,该全局视野之后可直接用于全局的网络管理优化。

2 相关工作

2.1 传统时间同步架构

传统的基于请求-回复数据包的同步流程如图1所示[4]。客户端和服务器节点进行请求数据包和回复数据包交互,当客户端节点收到回复数据包后,根据客户端发送时间戳t1、服务器接收时间戳t2、服务器发送时间戳t3和客户端接收时间戳t4,按照式(1)计算出往返时延RTT,再根据式(2),取RTT的一半作为近似的单向时延,计算出与服务器节点的时钟偏差值Offset,并根据该Offset 值调整自己的时钟,与服务器时钟保持一致。

图1 传统的基于请求-回复数据包的同步流程

传统的局部时间同步系统架构如图2 和图3 所示[4]。当系统局部的2 个节点(主机A与主机B之间,或者交换机S1与交换机Sn之间)要进行时间同步时,则这2 个节点按照图1 所示的流程进行同步请求和同步回复数据包交互。以主机A与主机B同步为例,A发起同步请求,并收到B的同步回复数据包后,由时间戳信息(分别对应于t1、t2、t3、t4)以及式(1)和式(2)计算与B的时钟偏差值,并调整自己的时钟与其一致。

图2 传统的局部时间同步系统架构(A 到B 的同步请求)

图3 传统的局部时间同步系统架构(B 到A 的同步回复)

但是在这种传统的局部时间同步架构下,数据中心网络的中心控制节点很难清晰地了解每对节点间的时间偏差情况,且难以进行全局性的集中式管理与调度;并且在这种架构下,同步的节点间需要发送请求和回复数据包,许多同步方法还引入了自定义的新协议,应用于数据中心时需要额外的交互和管控。另外,某些时间同步方法由于协议设计不够精细(如NTP[4])或者硬件存储限制(如DPTP[7]),可用于计算同步偏差的时间数据较少,因此容易受到某些离群值的影响。

本文仍会借鉴式(1)和式(2)进行Offset 计算,但基于Telemetry 架构重新设计了时间同步的流程,不再基于传统的请求-回复数据包的同步模式,而是借助数据中心的背景流量来收集数据包进出节点的时间信息,并对汇报上来的大量时间信息进行分析处理,达成一种集中式的自动高精准同步,便于后续进行全局性网络管理调度。

2.2 相关工作

网络时间协议[4]是互联网最古老的通信协议之一,目前仍广泛用于广域网和局域网的时间同步,在广域网中一般可以达到毫秒级的同步精度[12],在局域网中一般可达到微秒级的同步精度[13]。该方法同步精度较低,主要有以下三方面原因:1) 没有专门的硬件支持,时间戳本身精度较低,这从根本上限制了同步精度[14];2) 协议设计在网络协议栈高层,请求回复数据包经过协议栈的时间不对称较大,导致1/2 往返时延与真实的单向时延偏差较大[15];3) 同步的2 个节点可能跨越多跳,来回可能经过不同路径,面临不同的拥塞情况,也会导致来回的路径时延不对称[16]。

基于IEEE 1588 的精准时间协议[5]在NTP 的基础上进行了优化改进,引入了专门的硬件支持,可以获得更精准的时间戳,并且使用“透明时钟”以更精确的阶段性测量来减小来回路径的时间不对称性。在配置得当的情况下,PTP 一般可在局域网中达到几十或几百纳秒级的同步精度[17],但该方法易受网络状态的影响,在链路拥塞时“透明时钟”往往不能很好地运行[18],导致PTP 在网络高负荷情况下表现较差[19]。

近年来针对数据中心网络的高精准时间同步需求,也有研究者进行了专门的研究工作。DTP[6]以专门设计的物理层架构DTP-enable PHY 为基础,在原来IEEE 802.3ae 规定的标准物理层中插入了一个DTP 子层,专门用于时间同步;并且规定节点只与相邻的节点进行同步数据包交互(带有精确的时间信息),大幅减少了协议栈和来回路径的不对称性。该方法可以在数据中心场景中达到纳秒级的时间同步。

同样基于专门硬件的方法还有DPTP[7],它使用了基于可编程交换芯片的交换机,该交换机可以按照线路速率灵活处理数据包,并且可以给出各个阶段的精准时间戳。DPTP 使用可编程交换机中流水线各个阶段的精确时间戳进行计算,可以达到纳秒级的同步精度。

除了使用专门硬件的时间同步方法,还有一些方法如HUYGENS[8]使用软件及算法相结合的方式达到了高精度的时间同步效果。该方法不需要专门硬件支持,只是利用网卡提供的硬件时间戳。通过更精致的计算,HUYGENS 可以在数据中心场景下达到纳秒级的同步效果。当然,由于算法较复杂,它也会带来较大的计算开销。

3 系统架构

3.1 基于Telemetry 的时间同步系统架构

本文设计了基于Telemetry 的时间同步系统架构,如图4 和图5 所示。

图4 基于Telemetry 的时间同步系统架构(A 到B 流量)

图5 基于Telemetry 的时间同步系统架构(B 到A 流量)

图4 中,当网络中存在从A到B的背景流量时,中间节点记录下接收数据包和发出数据包的时间戳,如S1记录下数据包接收和发出的时间戳,分别记为,S2在原来带内数据的基础上,再记录下,依次类推,当数据包到达最后一个中间节点Sn时,记录的所有时间戳数据会被发送到中心控制节点Telemetry Controller,然后Sn会将这些带内数据剥离,把原始的数据包发送给B节点。

类似过程如图5 所示,当网络中存在从B到A的背景流量时,各个中间节点记录下接收数据包和发出数据包的时间戳,当数据包到达最后一个中间节点S1时,记录的所有时间戳数据会被发送到中心控制节点Telemetry Controller,之后S1会将这些带内数据剥离掉,把原始的数据包发送给A节点。

在这种时间同步系统架构下,节点间并没有显式地发送额外的交互数据包,不过数据中心的背景流量可以看作逻辑上的请求-回复数据包,Telemetry Controller 可以根据这些背景流量收集大量的时间戳数据,由此可以计算出任意2 个中间节点的单向时延以及相对时间偏差值,依此可以进行时间同步,并且可以用于后续全局性的集中式管理与调度。以中间节点S1和Sn为例,结合式(1)和式(2)可计算节点间单向时延及相对时间偏差值为

后续会对式(4)和式(5)这2 种计算时间偏差的效果进行对比评估(详见第5 节)。

由于数据中心内存在大量的背景流量,Telemetry Controller 可以通过大量的时间戳数据计算出许多组时间偏差值,并通过一定的算法优化(本文使用的是局部离群因子(LOF,local outlier factor)检测法[20],详见3.2 节)来达到纳秒级的高精准时间同步。

基于Telemetry 的时间同步架构有以下三方面优势:1) 在该架构下,中心控制节点的时间感知具有全局视野,可以计算出任意2 个中间节点的单向时延以及时间偏差值,便于与后续全局网络管理调度相衔接;2) 该方法基于经典的Telemetry 架构,时间信息捎带在Telemetry 数据中,没有引入自定义的新协议,只需利用可编程数据平面对Telemetry的数据记录及汇总逻辑进行自定义;3) 由于数据中心有大量的背景流量,因此有大量的时间信息可供计算,可以再结合一些处理算法去离群值,提高时间偏差的测算精度。

3.2 基于LOF 的Telemetry Controller 分析处理

中心控制节点Telemetry Controller 收到数据平面汇总上来的时间数据后,会对大量时间数据进行分析整理,通过式(4)或式(5)初步计算时间偏差值。在一些情况下,初步计算出的时间偏差值中可能会存在偏差较大的离群值,因此本文采用LOF 检测法[20]去除其中的离群值,得到节点间更精确的时间偏差数据,以达成纳秒级的时间同步。

LOF 方法基于局部密度的概念而进行,局部密度显著低于其相邻节点的数据点被认为是离群值。

首先,对于某2 个特定的中间节点,通过式(4)或式(5)分析整理大量时间数据,初步计算出了时间偏差值{Offset1,…,Offsetx}。对于其中的每个数据点m,计算该数据点与其k个最近邻节点的距离k_dist(m),并记所有与它距离小于或等于k_dist(m) 的其他数据点集合为Nk(m)。

然后,对于每个数据点m,计算Nk(m) 内所有数据点o与m的可达距离reach_dist(m,o)

对于每个数据点m,计算其与Nk(m)内所有数据点o可达距离均值的倒数,记为局部可达密度(LRD,local reachability density)

最后,对于每个数据点m,将计算出的局部可达密度与Nk(m)内其他数据点的局部可达密度做比值并取平均,得到数据点m的LOF 为

根据局部可达密度的定义,如果数据点m的LOF值远大于1,则说明它的局部可达密度远小于邻近节点的密度,即该点是离群值。依照此原则筛除{Offset1,…,Offsetx}中LOF 值大于阈值的数据点,便可得到去离群值后的数据

4 基于Telemetry 的时间同步系统实现

基于Telemetry 的时间同步系统实现如图6 所示。在数据平面,本文利用可编程数据平面来自定义时间信息记录及汇总逻辑:在各个中间节点记录接收和发出数据包的时间戳,并在最后一跳中间节点将去除时间数据的原始数据包发送到端节点,将路径中记录下的时间数据发送到上层的Telemetry Controller。

图6 基于Telemetry 的时间同步系统实现

在上层,Telemetry Controller 接收到汇报上来的时间戳后,会对大量的时间信息进行分析整理,利用式(4)或式(5)初步计算出任意2 个节点的时间偏差,再结合LOF 对大量数据进行处理,去除离群值,计算出任意2 个中间节点间更准确的时间偏差,达到纳秒级的高精准同步精度。

4.1 基于P4 的数据平面时间戳采集汇报

P4 语言[11]是软件定义网络[9]思想的最新展现形式。它在原来OpenFlow 协议[22]控制平面可编程的基础上,带来了数据平面的灵活可编程性。

1) 在RMT(reconfigurable match table)架构[23]的数据平面可编程芯片出现之后,基于这种专用的ASIC(application specific integrated circuit)芯片,数据平面可以在不失高性能处理数据包的基础上,进行灵活的转发逻辑自定义,而用于定义数据平面逻辑的规范便是P4 语言。

P4 抽象转发模型[11]如图7 所示。数据包进入可编程交换机后会首先进入可重配置解析器(操作①),解析数据包头部;之后被解析出的头部会进入多级匹配-动作表,这些多级匹配-动作表以流水线的形式组织起来,分为入口流水线(操作②)和出口流水线(操作④)两部分,管理者可以根据P4 语法规范去定义匹配到什么样的字段执行什么相应的操作,比如数据包修改、丢弃及出口选择;入口流水线与出口流水线之间数据包会进入一个缓冲区(操作③);当出口流水线执行完毕后交换机会将修改后的数据包输出到指定的端口(操作⑤)。以上5 个操作是P4 抽象转发模型的基本操作,所有数据包进入可编程交换机都会经历这一流程,另外,P4 抽象转发模型也定义了数据包复制的操作,允许管理者自定义将数据包复制到其他输出端口(操作⑥)。

图7 P4 抽象转发模型

具体到本文基于P4 进行数据平面时间戳采集汇报,如图6 所示,当数据包未到达最后一跳中间节点时,可编程交换机只对数据包执行图7 中①~⑤操作,在数据包头中记录该节点接收和发出数据包的时间戳;当数据包到达最后一跳中间节点时,可编程交换机对数据包执行图7 中①~⑥操作,一方面在出口流水线处将中间路径记录下的所有时间戳数据通过操作⑥复制,发送到上层的Telemetry Controller,以待进一步分析整理,另一方面在出口流水线处将中间节点添加在数据包头中的所有时间戳去除,把去除时间数据的原始数据包发送到端节点。

4.2 基于LOF 的Telemetry Controller 分析处理

如图6 所示,中心控制节点Telemetry Controller收到数据平面汇总上来的时间数据后,会对大量时间数据进行分析整理,按照式(4)或式(5)初步计算出2 个节点间的时间偏差值,然后再用LOF 方法[20]去除其中的离群值,得到节点间更精确的时间偏差,达成纳秒级的同步。LOF 方法的详细描述如算法1 所示。

算法1LOF 方法

5 系统评估

对时间同步效果的评估,具体而言就是比较测算得到的2 个节点时间偏差值与真实节点间时间偏差值之间的误差,其关键在于怎样获取节点间真实的时间偏差。而在实际环境中由于设备差异、温度等实际因素的影响,节点间真实的时间偏差是很难精确获取的。本文应对这一挑战的办法为将一台物理可编程交换机抽象成逻辑上的多台可编程交换机,这样多台逻辑交换机之间的真实时间偏差值就是0(因为它们物理上就是一台可编程交换机),这样将本文测算出的节点间时间偏差值与真实的时间偏差(即为0)进行比较,就可以正常进行系统评估了。

具体操作时,如图8 所示,本文将可编程交换机的端口间接上线路速率为100 Gbit/s 的环回线,即可达到一台物理交换机抽象成多台逻辑交换机的效果。

图8 物理交换机抽象成多台逻辑交换机

5.1 实验环境

本文使用Barefoot Tofino 可编程交换机、3 台戴尔服务器来搭建实验环境,其中,可编程交换机型号为Wedge100BF-32X,配有32 个100 Gbit/s 端口,总体可以达到3.2 Tbit/s 级别的线速处理能力;三台服务器中,其中一台配备Intel X722 网卡,另外两台配备Intel X710 网卡,均可达到10 Gbit/s 级别传输速率。可编程交换机间的环回线使用100 Gbit/s QSFP(quad small form-factor pluggable)线缆,最高可达到100 Gbit/s 级别的传输速率。

可编程交换机与三台服务器搭建的物理拓扑如图9 所示,交换机内部端口之间随机连接了6 条QSFP 回环线,分别为端口1 与端口3 之间,端口9与端口11 之间,端口14 与端口16 之间,端口15与端口19 之间,端口18 与端口20 之间,端口21与端口24 之间。另外,交换机的31 端口通过一分四模块分出4 条10 Gbit/s 的线缆,其中3 条分别接到3 个服务器的网卡上,后续会将服务器A、B作为数据包收发的节点,模拟数据中心内的端节点,并将服务器C 作为时间数据汇总分析的节点,模拟数据中心内的中心控制节点Telemetry Controller。

图9 实验环境物理拓扑

由图9 可知,可编程交换机内部端口间连接了6 条回环线,所以该物理交换机可以抽象为7 台逻辑上的交换机,并且服务器A、B、C 可以访问任意一个逻辑交换机。为了便于理解,这里根据图9所示物理拓扑,画出了实验环境的逻辑拓扑,如图10 所示。

图10 实验环境逻辑拓扑

如图10 所示,后续本文进行评估时,会以服务器A、B 为数据包收发的端节点,负责产生背景流量,并以服务器C 作为中心控制节点,负责汇总分析最后一跳中间节点发来的时间数据,并根据前述方法计算出任意2 个中间节点(逻辑上)的时间偏差,与真实时间偏差(0)比较,进行多方面系统评估。

5.2 多跳时间同步效果评估

本文使用图10 所示的网络拓扑,对相隔多跳的中间节点时间同步效果进行了测试评估。由图10 可知:1) 即使相隔许多跳(本文最高测试到了10 跳),中心控制节点测算出的任意2 个中间节点时间偏差的误差依然在10 ns 以内,可以为任意2 个中间节点达成纳秒级的时间同步;2) 使用式(5)这种依次计算各跳的时间偏差值并累加的测算方式(利用中间每一跳的时间戳),达成的时间同步效果要比式(4)这种只利用首尾节点时间戳的测算方式效果更好;3) 使用LOF 方法进行离群值去除之后,可以进一步改善同步效果,尤其是在降低同步数据的标准差方面。

本文将各个逻辑交换机的端口速率均设为100 Gbit/s,服务器A 和B 之间使用DPDK(data plane development kit)的Pktgen 工具互相发送数据包,产生背景流量,数据包发送速率均设为1 Gbit/s。通过控制平面设置可编程交换机中的流表,可以使数据包经过多跳逻辑上的交换机。另外,当数据包到达最后一跳中间节点时,会向服务器C 汇报中间路径记录下来的时间戳。

服务器C 汇总分析收集到的时间数据,对任意2 个中间节点,取逻辑上的5 万对请求-回复数据包,分别用式(4)和式(5)进行时间偏差计算,取其平均值作为初步计算出的时间偏差,并与真实偏差(0)对比评估,即将平均值取绝对值,观测其偏离0 的程度;另外,服务器C 对5 万对数据包初步计算出的5 万个偏差值使用LOF 方法进行离群值去除,再取平均值与真实偏差(即为0)进行对比评估,时间同步误差(时间偏差均值的绝对值)和时间偏差标准差分别如图11 和图12 所示。

图12 相隔多跳的节点间时间偏差标准差

如前所述,使用5 万对数据包进行计算得到的时间偏差平均值的绝对值即为与真实时间偏差(0)的误差。由图11 可以看出,即便2 个中间节点相隔许多跳(本文最高测试到了10 跳),测算出的时间同步的误差也依然在10 ns 以内。同时,由图11可以看出,中间节点并不是相隔得跳数越多,时间同步精度就会随之下降,比如无论采用哪种计算方式,图11 中相隔8 跳的2 个中间节点达成的同步效果都比相隔3 跳的中间节点同步效果还要好(计算出的Offset 均值的绝对值更小,与0 更接近),猜想这是因为数据包实际往返各条线缆时可能会产生正或负的硬件时间误差,造成请求和回复2 个方向的时间不对称性,不过由于时间误差可正可负,因此经过多跳时可能会产生正负误差相抵消的效果,比如图11 中相隔7 跳的中间节点,使用式(5)计算可以测算得误差在1 ns以内的高精度时间偏差值,该现象就是多条线缆产生的正负时间误差相抵消的一个例子。使用式(5)这种依次计算各跳时间偏差值并累加的测算方式(利用中间每一跳的时间戳),达成的时间同步效果要比式(4)这种只利用首尾节点时间戳的测算方式效果更好,多跳情况下每一跳都可以计算出比式(4)误差更小更精准的时间偏差值。另外,如果先使用LOF 方法去除离群值再结合式(5)进行时间偏差计算,可以进一步小幅度降低测算时间偏差与真实时间偏差的误差,改善同步效果。

图11 相隔多跳的节点间时间偏差均值的绝对值(时间同步误差)

由图12 可以看出,相隔多跳的节点间时间偏差数据的标准差都在4 ns 以内,时间偏差数据分布比较均匀,没有太大的波动,这意味着用较少的数据取平均即可得到一个准确的平均值。同时也注意到,中间节点相隔得跳数越多,时间偏差数据的标准差越大,相对而言数据分布得就越离散。另外,通过LOF 方法去除离群值后,时间偏差数据的标准差得到显著降低,数据分布得更加均匀。

5.3 端口额定速率对时间同步效果的影响

5.2 节将各个逻辑交换机端口的额定速率均设为100 Gbit/s,服务器A、B 实际数据包发送速率均设为1 Gbit/s,用以评估多跳时间同步的效果,结果显示均可以达到误差在10 ns 以内的同步精度,且同步偏差测算值的标准差均在4 ns 以内,数据分布比较均匀。

下面,以单跳为着眼点(此时式(4)和式(5)是等价的),评估逻辑交换机端口速率对时间同步效果的影响。可以发现,服务器A、B 实际数据包发送速率仍保持1 Gbit/s,当逻辑交换机端口速率设为25 Gbit/s、40 Gbit/s、100 Gbit/s 时,2 个相邻的中间节点时间偏差测算值仍与5.2 节中的结果保持一致,时间同步误差(Offset 均值的绝对值)均在3 ns以内,Offset 标准差均在2 ns 以内,有着较好的同步效果,具体结果如表1 所示。

表1 端口额定速率非10 Gbit/s 情况下时间同步效果

但是,当逻辑交换机的端口速率设为10 Gbit/s时,初始测算到的时间偏差数据中出现了大量的离群值,累积分布函数(CDF,cumulative distribution function)如图13 中虚线所示,5 万个Offset 数据平均值为38.678 ns(即为与真实时间偏差的误差),标准差为128.622 ns,时间同步效果较差。

应用LOF 方法去除离群值后,可以大幅度提升时间同步效果,去除离群值后得到42 507 个Offset数据,其CDF 如图13 中实线所示,数据平均值为2.923 ns(即为与真实时间偏差的误差),标准差为6.031 ns。可以看出,端口额定速率为10 Gbit/s 导致的同步效果下降可以通过LOF 方法得到修复。

图13 端口额定速率为10Gbit/s 时Offset CDF(应用LOF 前和应用LOF 去离群值后)

5.4 实际数据包发送速率对时间同步效果的影响

5.2 节和5.3 节将服务器A、B 发送数据包的速率(背景流量速率)均设为了1 Gbit/s,本节将测试更高的数据包发送速率会对时间同步效果产生怎样的影响。仍以单跳为着眼点,评估交换机端口额定速率固定时,不同的数据包发送速率(1 Gbit/s、5 Gbit/s、10 Gbit/s)对时间同步效果的影响如表2所示。

表2 实际数据包发送速率对时间同步效果的影响

由表2 可以发现,当逻辑交换机端口速率设为25 Gbit/s、40 Gbit/s、100 Gbit/s 时,无论实际发送速率如何增大,即使增大到服务器A、B 网卡的最大发送速率10 Gbit/s,已经出现了较明显的丢包现象(尤其在数据包发送速率为10 Gbit/s 时,丢包导致可用于计算的数据包对不足2 万对),时间同步的效果也不会有显著改变,同步误差都能控制在3 ns以内,Offset 标准差均在5 ns 以内,仍能保持高精度的时间同步效果。

当逻辑交换机端口速率设为10 Gbit/s 时,如表2中加粗的数据所示,同步误差较大,Offset 标准差远高于正常范围,说明出现了5.3 节中的异常情况,初始测算到的时间偏差数据中产生了大量的离群值,导致时间同步效果较差。

对表2 前三行,即端口速率为10 Gbit/s 的3 项计算结果(数据包发送速率分别为1 Gbit/s、5 Gbit/s、10 Gbit/s)应用LOF 方法去除离群值,结果如图14所示。

图14 端口速率为10 Gbit/s 时,应用LOF 方法改进效果

由图14 可知,当端口速率为10 Gbit/s 时,无论数据包发送速率是1 Gbit/s、5 Gbit/s 还是10 Gbit/s,初始计算出的时间同步效果均较差,而使用LOF方法去除离群值后,3 种数据包发送速率下,时间同步误差都控制在了10 ns 以内,标准差也有大幅度的下降,使同步效果得到修复。

通过5.3 节和本节评估可知,实际数据包发送速率对于时间同步效果不会产生影响,即使发送速率增大到出现了较明显的丢包现象,时间同步效果也依然没有改变。另外,端口额定速率会对时间同步效果有较大的影响,当端口速率设为25 Gbit/s、40 Gbit/s、100 Gbit/s 时,无论实际数据包发送速率如何,均有高精准的时间同步效果;当端口速率设为10 Gbit/s 时,无论实际数据包发送速率如何,初始计算的时间偏差数据中总会出现大量的离群值,同步误差较大,Offset 标准差远高于正常范围,时间同步效果较差,不过由于端口速率设为10 Gbit/s 导致的同步效果下降可以通过LOF 方法得到修复,去除离群值后仍可以达到高精准的同步效果。

5.5 开销评估

5.5.1可编程数据平面性能开销

本文设计的基于Telemetry 架构的数据中心网络高精准时间同步系统主要基于可编程数据平面和中心控制节点Telemetry Controller,由于中心控制节点处理能力强大,可以执行较复杂的操作,而可编程交换机因为要保证线速,对于各方面资源的限制较多,容易成为系统瓶颈,因此关于性能开销,主要针对在可编程数据平面上带来的开销进行评估。

首先生成一个对照P4 程序——将原来P4 程序时间戳采集汇报部分删除,只保留转发数据包的逻辑,然后使用P4 Insight 工具对时间采集汇报P4 程序和对照P4 程序进行了对比评估,结果显示采集汇报P4 程序相比对照P4 程序只多使用了一个可编程交换机的stage(可编程交换机共有12 个stage),具体结果如表3 所示。

表3 原始P4 程序与对照P4 程序交换机资源开销对比评估

由表3 可以看出,相比对照P4 程序,原始P4 程序只在某些资源上有2~3 倍的开销消耗,并且在每个stage 消耗的资源最高不超过20%。相对于12 个stage 的可编程交换机资源,本文的P4程序只多占用了一个stage 并且每项资源消耗不超过该stage 的20%,这种程度的开销增长是可以接受的。

5.5.2流量开销

除了在可编程数据平面上带来的计算开销,本文还分析了该基于Telemetry 架构的高精准时间同步系统带来的额外流量开销,以及流量开销与同步精度间的关系。

5.2 节~5.4 节中的实验均为全采样模式,即可编程交换机会对所有经过的数据包记录时间信息,并在最后一跳中间节点上报到中心控制节点Telemetry Controller。本节将分析更低的采样率(同时会有更少的额外流量开销)会对同步精度造成什么影响。以单跳为着眼点,逻辑交换机端口速率设为10 Gbit/s,服务器A、B 实际数据包发送速率均设为1 Gbit/s,服务器A、B 间的背景流量依然为5 万对数据包,由此分析了采样率分别为1:1、100:1、1 000:1、10 000:1 情况下同步精度的变化,如图15 所示。

图15 不同采样率(不同流量开销)时的同步精度

由图15 可以看出,对背景流量的每个数据包进行时间戳记录及上报的全采样方法可以达到2.923 ns 的时间同步精度。当采样率改为100:1,即每100 个背景流量数据包进行一次时间戳信息记录及上报后,由于时间信息变少,偏差数据带来的影响更大,同步精度降至4.724 ns,依然在10 ns 以内;当采样率改为1 000:1 和10 000:1 后,由于更易受到随机离群值的影响,时间同步精度有较大幅度的下降,尤其当采样率为10 000:1 时,同步精度只有465.821 ns。

下面,综合流量开销和同步精度,从系统实用性的角度继续进行综合分析。在高频通信场景即全采样模式下,可以达到最高的同步精度,但带来的开销也是最大的:若同步的2 个节点间只相隔一跳,那么每一个正常通信数据包(背景流量)都会用于记录时间数据,并在最后一跳中间节点汇报给中心控制节点,这会带来一倍的额外信令开销;若同步的2 个节点间隔许多跳(n跳),由于本来系统就会有n跳的背景流量,则最后的汇报操作带来的相对信令开销会较小,这种情况下会增加1/n的信令开销。综合来看,虽然全采样模式可以达到最高的同步精度,但是带来的信令开销也较大,实际应用本文系统时可以综合考虑同步精度与信令开销,如果采用100:1 的采样率,可以将流量开销降到1/100,且仍能达到10 ns以内的高同步精度。

6 结束语

本文针对数据中心网络高精准时间同步的需求,分析了传统的局部时间同步架构存在的与集中式管理脱节、需要额外交互开销、时间数据较少易受离群值影响等问题,提出了基于Telemetry 架构的纳秒级时间同步系统,借助数据中心的背景流量来收集数据包进出节点的时间信息,并在中心控制节点对汇报上来的大量时间信息进行分析处理,达成一种集中式的自动同步,便于后续进行全局性网络管理调度。另外,中心控制节点分析整理时间数据后,会将初步计算的时间偏差数据再应用LOF方法,去除其中的离群值,进一步提升时间同步精度,尤其在去除离群值、优化较差情况方面效果优异。

本文在Barefoot Tofino 可编程交换机上实现了基于Telemetry 架构的时间同步系统,借助数据平面的可编程性,使用P4 语言编写了可编程交换机的转发逻辑,要求各节点在转发数据包的同时,向中心节点汇报数据包进出节点的时间信息。通过多方面系统评估发现,通过中心节点对汇报上来的大量时间信息进行分析处理,在多跳之间、不同端口额定速率及实际数据包发送速率下,均可以达到纳秒级的高精准时间同步,对可编程交换机带来的开销也可以接受;并且,任意2 个节点的时间偏差都可以在中心节点得到,具有全局视野的纳秒级的时间同步效果之后可直接用于全局网络管理优化、细粒度的包级别调度、网络监测、网络快照的同步获取等任务。

未来的工作主要包括:1) 在时间同步系统中加入非可编程交换机,拓展系统的普适性;2) 进行更复杂拓扑和更长光缆长度等条件下的评估与改进。

猜你喜欢

离群交换机数据包
一种基于邻域粒度熵的离群点检测算法
面向未来网络的白盒交换机体系综述
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
局域网交换机管理IP的规划与配置方案的探讨
更换汇聚交换机遇到的问题
基于地铁交换机电源设计思考
C#串口高效可靠的接收方案设计
一种相似度剪枝的离群点检测算法
从数学的角度初步看离群点检测算法