时钟偏差问题:CentOS7

问题描述

我在编译/构建 C++ 包时遇到时钟偏差问题。

我们正在使用从远程驱动器到本地的软链接获取常用包,同时将包构建为每晚构建。我们还安装了 NTP 服务器以匹配两次。我们并不总是面对它,而是有时。

make[1]: warning:  Clock skew detected.  Your build may be incomplete.
make[2]: Warning: File 'Makefile' has modification time 0.00096 s in the future

如果我在本地机器上的所有内容中构建它,那么构建行为正确,但由于某种原因,我们不能在 CICD 过程中这样做,因为构建需要 3 个小时。由于这个问题,编译器无法检测到一些文件

此应用基于 QT 构建。

对此有什么建议吗?以前有人遇到过同样的问题吗?

解决方法

这真的是一个serverfault的问题,并标记[NTP]

我们有一个大型企业配置,带有多个 VM 服务器和 NFS/SAN 存储。虽然我们所有的服务器都有 NTP,但事实证明存储阵列前端无法访问 NTP 服务器(单独的、隔离的 VLAN)。失败来自阵列分配的时间戳,而不是安装的服务器。它会飘向未来。有趣的是,相同的阵列托管 VM。

我们甚至在运行 tar 时也观察到了问题,以及检测源控制和构建的变化。

确保您的所有服务器都指向一个有效的上游服务器,一直指向权威时钟。这包括 SAN 头设备a和任何备份/恢复主机。您可以谷歌最佳实践,但一个好的建议是服务器重新连接到上游网络交换机,然后连接到内部 NTP 服务器(和备用服务器(或 2 个更好)),然后连接到公共权威源。使用 LDAP 或 AD 作为上游源都可以。这样,即使出现故障,至少您网段中的所有内容都会同步。

使用 ntpq 进行验证。

,

刚知道我们的服务器配置了 Chronyc。

这是chronyc tracking状态

Stratum         : 6
Ref time (UTC)  : Mon Feb 22 17:01:00 2021
System time     : 0.000108047 seconds slow of NTP time
Last offset     : +0.000085771 seconds
RMS offset      : 0.001162956 seconds
Frequency       : 89.448 ppm slow
Residual freq   : +0.001 ppm
Skew            : 0.245 ppm
Root delay      : 0.158043087 seconds
Root dispersion : 0.115303792 seconds
Update interval : 1043.7 seconds
Leap status     : Normal