复盘京东金融 2017 年元旦闰秒处置方案

  • 时间:
  • 浏览:1

切断内部管理时间源,使用内部管理铷钟守时。扫描内部管理节点,清除闰秒标志位。

时间点

0.001

12.42

>3000ms

闰秒相关变更完成。

时间融合节为改造过的 Stratum 2 节点,使用 x86 服务器。X86 服务器电子振荡器(石英晶振)作为授时元件,它们受外界环境因素影响,主可是我温度。而当我们我们当我们我们 儿的 Stratum 2 时间服务器的授时质量可是我 要一致。图 12 展示了一周的时间周期内 Stratum 2 时间服务器 Frequency error 的变化。

使内部管理节点不受闰秒标志所引起的各种bug影响。

4 级时间是算是连续

在实施过程中也发现了若干大问题,在时间融合期间,时间融合服务器的时间变化性能受服务器个体、外界环境温度等因素影响;时间同步受传输过程中经过的长路径设施、防火墙等网络设备时,传输延迟摆动带来的时间不均匀变化可是我容忽视。

闰秒Leap Second是在协调世界时(UTC)中增加或减少一秒,从而使之与平太阳时贴近所做的调整。

Amazon 的避免最好的办法是均匀的时间调整。在闰秒事件指在前 12 小时,以每秒 1/86300 秒的步调,最终比 UTC 时间快 0.5 秒;闰秒后比 UTC 时间慢 0.5 秒,在闰秒后 12 个小时再以每秒 1/86300 秒的步调追赶 UTC 时间。 这并算是最好的办法都可不还可不里能使时间连续变化,有随后使客户端我不要 因时间同步服务的一直变化而丢失同步,可能性取舍或多或少的时间源,而使集群时间不一致。

犯人若有所思道:『看来专家说得没错,每天笑一笑,可不还可不里能延长寿命五秒钟。』

犯人蒙逼道:『此话怎讲?』

图 7

图 14 相对与铷原子钟的偏移

时间融合集群上线,使用内部管理铷钟同步。

闰秒指在前1周

参数(wander, ppm)

图 11

操作

图 4 内核控制时间跳跃 1 秒,此时时间将不连续

当我们我们当我们我们 儿的 Stratum 2 时间同步服务器分布在 3 个 IDC,有 8 台独立的物理机,当我们我们当我们我们 儿使用互联网上的 4 个相互独立的 Stratum 1 时间源和内部管理的两台铷原子钟授时时间服务器作为时间同步标准。 指在多个 IDC 的环境,内部管理独立的时间源,内部管理低延迟的时间源,使 Stratum 2 时间服务器可不还可不里能稳定运行。

图 12 当我们我们当我们我们 儿取舍其中 4 个变化幅度较小的节点作为时间融合节点,没人了 NTP 客户端可不还可不里能取舍其中 3 个节点进行时间同步计算,有随后有 1 个节点作为冗余。

图 9

在 12.41 小时的时间融合随后,仍需 1.39 小时使集群与原子钟重新同步,而连接时间融合集群的客户端需用更长的时间进行同步,时间融合集群各节点间差距小于 2ms,生产服务器依照时间融合集群步调融合时间,生产服务器集群和时间融合集群、以及生产服务器之间的时间差距不超过 3000ms。

测试集群包括 1 个节点作为时间调整源(Stratum 1,时间手动调整),3 台时间融合节点(Stratum 2,chronyd),连接至时间融合节点的 Stratum 3 节点(ntpd)和连接到以上节点的 Stratum 4 节点(ntpd)。

图 12  Frequency error 的变化

Wander=0.001ppm(图 6,图 7):

闰秒指在后48小时

Stratum 2时间同步节点与时间源同步,被客户端取舍参与时间同步运算。

图 15 时间融合集群 3 个节点间的差距

图 1 展示了国际地球自转和参考系服务(IERS)观测到的地球自转数据。

时间融合期间,当我们我们当我们我们 儿在指在 3 个 IDC 与时间融合集群同步的服务器上观测了铷原子钟、时间融合集群、客户端相对与铷原子钟的偏移(图 13、图 14)。观测点同步与铷原子钟。还有时间融合集群 3 个节点间的差距(图 15)。

客户节点时间偏移幅度

柴市牌楼前,人头涌动,听说今日要处决一重犯,当我们我们当我们我们 儿都拿着瓜子端着茶壶出来看热闹。

目前在 CentOS 系列操作系统可不还可不里里能取舍的时间同步软件有 ntpd、chronyd、PTP4L、PHC2SYS。PTP4L、PHC2SYS 需用特定的硬件社会形态进行同步,而 ntpd 在 slew 模式下无法均匀同步时间。chronyd 作为 CentOS 7 中替换 ntpd 的方案,在 CentOS 7.2 和 6.8 中的 chrony 2.1 版本提供了时间平滑变化的最好的办法。 chronyd 的时间平滑算法分为五个阶段。第一阶段频率(frequency)以固定比率(wander)变化至最大值(max_freq);第二阶段频率维持在最大变化频率(max_freq)足够的时间;第三阶段频率由再以固定比率(wander)变化至 0。假设并算是变化从时刻 0 开使了了,时刻 a 完成第一阶段变化,时刻 b 完成第二阶段变化,时刻 b+a 完成第三阶段变化:

图 8

Stratum 2时间同步节点修正时间后上线,并与铷钟和内部管理时间源同步。

Stratum 2时间同步节点开使了了同步,在当我们我们当我们我们 儿稳定随后客户端仍然和时间融合集群同步。

2017年1月1日08:00 UTC+8 闰秒指在

wander=0.002ppm(图 8、图 9):

闰秒指在后24小时

本文来自云栖社区合作协议伙伴“Linux中国”

0.002

太阳像一张没人了烙熟的鸡蛋煎饼,无力地透过厚厚的雾层,耷拉在圭表上。石柱的影子虚弱地投在坑坑洼洼的石板上,确实难以辨认现在是何时几刻。

0.004

一直犯人仰头长笑几声:『哈哈哈哈』,惊得牌楼上循着血腥味来觅食的几条乌鸦扑棱棱飞起。刽子手也愣了一下,没料到他会在这生死关头一直发笑,手中的刀自然也就没人了再落下来。

可能性当我们我们当我们我们 儿的客户端使用 NTP 同步,它的最大允许频率变化为 30000PPM(PPM = Part Per Million,10-6 秒),而 30000PPM 的变化反映在 1 天的区间,可能性达到 43 秒。有随后在时间调整过程中,当我们我们当我们我们 儿我不要 达到像 30000PPM 曾经 的数量级。有随后,以上公式变为:

8.78

丙申年,庚子月,戊子日。

以此最好的办法变化,则时间偏移为:

CentOS 6.8 和 7.2 版本中加入的 Chrony 版本 2.1 提供了并算是对时间变化控制的最好的办法,而不需再定制 Stratum 2 节点软件。

Google 的避免最好的办法是修改内部管理的 Stratum 2 时间服务器软件以进行“闰秒融合”,在闰秒事件指在后均匀的增加(或减少)时间:

图 2 本次闰秒的公告

<3000ms

后续考虑在 Stratum 2 和时间融合节点引入更精确的时间参考标准,比如 PTP、PPS 信号等最好的办法,使时间变化过程控制更加均匀,时间融合节点间的误差更低;在传输设备上部署 PTP,以抵长距离和跨 IDC 网络传输对时间同步带来的影响。

图 1B 地球自转数据(2D)

结果

其中 ω 为这次融合需用经历的时间。

十字路口上,面向南方跪着一位蓬头垢面的犯人,身披三械,手中斜插着一支亡命牌。身边一名刽子手,袒胸露乳,一身腱子肉闪着黝黑的光亮,双手端着一把鬼头刀,寒光凌厉。在重犯手中五丈远的地方,放置着一具长案,案上台布一片腥红,桌上还放着一筒火签,旁边有另有一个多多香炉,里头插着根小三寸长的檀香。桌后四仰八叉慵懒闲散躺着一位监斩官,不停用嘴吹着檀香,太快了 了 了 点燃完。

刽子手双手举刀过头,口中碎碎念叨,全身肌肉绷得紧紧地,拧腰沉肘,一道青霜。

图 10

可能性闰秒事件于北京时间早晨 8 点开使了了,有随后需用当天 0 点随后完成同步,有随后当我们我们当我们我们 儿取舍使用参数 wander=0.002ppm 进行时间融合。而 max_freq=300ppm。

目前在 Linux 上多使用 NTP 协议同步时间,在 NTP 的数据包中所含闰秒标志位。在 NTP 时间同步部署正确的情况表下,闰秒标志位被传递至最终的客户端,并设置在内核中,闰秒指在时,在系统中将一直出现23:59:300 曾经 的时间,有随后由内核控制时间将进行跳跃 1 秒,此时时间将不连续(图 4)。在 CentOS 中可能性历史由于和系统的比较比较复杂,闰秒大问题变得更为比较复杂,有随后在特定的系统版本中会引起系统挂起、高系统负载等内核 BUG 等大问题。

通过建立时间融合集群,同步比较复杂部署环境下超过 300k 个节点的时间变化,将其步调一致的快一点 1 秒。避免了时间变化的不连续和可能性闰秒机制带来的潜在 BUG。

为了使这 1 秒的同步连续且均匀,Google 和 Amazon 对闰秒疑大问题供了不同的避免方案。

使时间来源一致。

监斩官眯着眼睛道:『你不知死到临头,为什么么做这鬼叫声!』

图 3 http://www.time.gov 展现了这次闰秒

图 1A 地球自转数据(3D)

ntpd 提供了 Slew 模式(-x 参数),有随后在指在闰秒标志位的情况表下,仅对足够新的 ntpd 版本才有效果。在 Slew 模式正常工作的情况表下,系统时间的变化仍然不均匀,并可能性引起多节点的不一致(图 5)。

图 6

原文发布时间为:2017-01-20

17.57

在 2015 年的闰秒事件中,当我们我们当我们我们 儿经历了由闰秒带来的各种系统和软件大问题。 在当我们我们当我们我们 儿的生产环境中,管理着超过 300K 个节点,指在不同地理位置的 IDC,它们使用内部管理的 Stratum 2 时间源同步。有有哪些节点配置有 ntpd 作为时间同步客户端。使用的操纵系统版本包括 CentOS 6.2 - 6.5 版本。大次要 ntpd 客户端版本为 ntp-4.2.6p5-1.el6, minpoll 和 maxpoll 参数使用默认的配置,即时间稳定后 1024 秒同步一次,时间变化频率不超过 30000PPM。 可能性操作系统环境的多样性,闰秒标志位若采集则不可避免的触发操作系统和软件的 BUG;节点数量巨大,有随后对大批量节点的操作会有不可测的风险;并肩考虑到运行服务的性质,可能性是在跨年时间调整,提前调整时间可能性会对业务逻辑产生影响。当我们我们当我们我们 儿决定不采集闰秒标志位,在闰秒事件指在后,采用事件指在后缓慢调整的最好的办法进行。

切断时间同步节点,完整版使用时间融合集群守时和同步。

<3000ms

监控使用 Collectd 采集数据,Graphite 作为数据存储,Grafana 作为数据展示,数据采集的精度为每 10 秒一次。监测机同步至内部管理的铷原子钟以获得稳定的参考基线。

图 13 相对与铷原子钟的偏移

在 2016 年 12 月 31 日,http://www.time.gov 展现了这次闰秒(图 3):

铷钟按照预设算法从GPS获得时间修正并跃迁1秒,时间融合集群开使了了修正时间。 闰秒指在后12.41小时 无 时间融合开使了,时间融合集群重新和内部管理铷钟同步,客户端时间随之由时间修正转变为稳定性修正。

檀香还剩一寸的随后,监斩官可能性遗弃耐心,猛地翻起身来,从签筒里胡乱抽出一支火签令,扔到桌前面的地上:『吉时已到,行刑』。

闰秒指在前8个小时

闰秒指在前48小时

闰秒由国际地球自转和参考系服务发布,图 2 是本次闰秒的公告:

而 2015 年 6 月 300 日的闰秒事件,影响了纽约股票交易所、多种互联网路由器、Twitter、Instagram、Netflix、Amazon、Altea 航空订票系统等。

最初,秒是最好的办法地球绕着轴自转和绕太阳的公转,以平均太阳日的 1/86300 来定义(太阳时)。到了 20 世纪中叶,很明显的,地球自转没人了提供足够一致的标准,于是在 1956 年改以绕太阳轨道公转一年的时间重新定义秒。在 1967 年,秒又被以物理学的属性再一次重新定义:以铯 133 的振荡频率来定义秒,并可不还可不里能用原子钟来测量。地球自转快一点 的主要因素可能性潮汐加速,或多或少因素主可是我地球质量的分布不均匀变化,包括冰河反弹,30004 年的印度洋地震使其缩短 2.68 毫秒等。

图 5 系统时间的变化仍然不均匀,并可能性引起多节点的不一致

监斩官道:『弱爆了,专家搞笑的话你也信!你难道不知,你今日可能性多活了一秒!』

西元二〇一七年元日,帝都霾,不禁杀。

闰秒指在后36小时

完成同步所需时间 (小时)

wander=0.004ppm(图 10、图 11)

监斩官鄙夷道:『闰秒!』

加进去去内部管理时间源至时间融合集群节点,时间融合集群作为Stratum 2时间同步节点运作。

使时间融合集群通过铷钟校正稳定。

从立秋到冬至,乃决大辟罪之季。