据我了解,NTP 漂移文件(/var/lib/ntp/ntp.drift
在基于 Debian 的发行版中)存储 NTP 对等点和系统时钟的偏移量。但是,系统时钟是否意味着我主板上的 CR232 电池?还有别的事吗?另外,我是否正确地认为该漂移文件仅在ntpd
启动时使用?
答案1
计算机具有定时器硬件,可生成称为抽动的周期性中断。这些通常每秒发生 100 次或更多次。计时器可能是 RTC 的一部分,但即使没有 RTC 的设备也具有计时器硬件。定时器硬件和 RTC 都有偏离原子钟测量的实时时间的趋势。
NTP 与系统时钟(基于软件)配合使用,每次更新都会更新。存储的值/var/lib/ntp/ntp.drift
用于对定时器中断的频率进行微调。这被称为纪律时钟。 NTP会定期重新计算漂移并更新频率和ntp.drift
文件中的值。
通常,系统时钟是在系统启动时通过 RTC 设置的。这发生在 NTP 守护程序启动之前。根据 NTP 守护程序启动时设置的标志,如果 RTC 时间发生显着漂移,则该守护程序可能会失败。为了防止这种情况,通常运行ntpdate
命令来执行初始调整。
在受控关闭期间,RTC 通常设置为系统时间(本地时间或 UTC)。这有助于确保系统重新启动时时间相对准确。为此,RTC 必须在系统关闭时获得电源。带有 RTC 的系统有一个为 RTC 供电的电池,并且通常还有一些包含系统配置数据的易失性存储器。