现象:
读取RTC芯片时间与BMC时间差六秒
分析:
BMC定时从RTC中读取更新信息,但是看日志,在6-03 22:55:56有同步记录,截止到收取日志时间6-04 10:08都没有记录,想问一下定时同步RTC芯片时间是什么机制
现象:
读取RTC芯片时间与BMC时间差六秒
分析:
BMC定时从RTC中读取更新信息,但是看日志,在6-03 22:55:56有同步记录,截止到收取日志时间6-04 10:08都没有记录,想问一下定时同步RTC芯片时间是什么机制
答案内容由AI生成,仅供参考:
您观察到的现象是 NTP功能开启后的正常行为:RTC作为备份时间源,在NTP工作期间不主导同步。日志中同步记录中断是因为NTP已接管时间管理。6秒的时间差来源于RTC与NTP时间源之间的固有偏差,而非同步机制故障。
如需进一步确认,可检查NTP同步状态(SyncResult 属性或 ipmcget -d ntp 命令结果)以及RTC芯片的硬件偏差。
根据您提供的日志和现象,BMC与RTC时间存在6秒差异的原因主要有以下几点,以下是基于您提供的 上下文信息 的详细分析:
ipmi 或 SetDateTime 手动设置时间,也会在6秒后被RTC时间覆盖(除非没有RTC芯片或RTC芯片不可用)。从您的日志可以看出:
bmc_time=1780498445, rtc time, timestamp: 1780498445 -> 1780498556。这是因为 NTP功能已开启(从 Time_Bmc_010101 属性中 Enabled=true 可见)。开启NTP后,BMC不再主动从RTC同步时间(除非配置为“NTP优先”策略且NTP同步失败才会回退到RTC)。因此,日志中未持续出现RTC同步记录是符合设计预期的。
set m3 core time failed 的错误(l_time_intf.c(509):-1),这可能影响了部分时间同步操作的成功率,但未明显干扰主流程。SetRtcTime 方法直接写入RTC时间,避免后续RTC轮询覆盖您设置的值。该接口当前仅支持CLI命令使用。bmc_core sig 提出诉求,新增 时间同步策略 配置项(如 Custom_TimeSynchronizationPolicy),支持“NTP优先”模式。您观察到的现象是 NTP功能开启后的正常行为:RTC作为备份时间源,在NTP工作期间不主导同步。日志中同步记录中断是因为NTP已接管时间管理。6秒的时间差来源于RTC与NTP时间源之间的固有偏差,而非同步机制故障。
如需进一步确认,可检查NTP同步状态(SyncResult 属性或 ipmcget -d ntp 命令结果)以及RTC芯片的硬件偏差。
NTP使能虽然开启了,但是没有设置NTP服务器
问题基于330节点
bmc_time/1.120.5@openubmc/stable#af422d56cff6b6575ab85e881d874f41%1781065060.011
rtc更新的前提是,系统时间与同步时间误差超过10s,否则不会更新
客户有要求要即时同步,不能存在误差,十秒误差不同步机制是基于什么考虑的呢
启动阶段时间不稳定,所以做了防抖
有点不太理解 启动阶段RTC芯片时间不稳定吗 那十秒误差防抖没什么用吧
启动阶段因为负载比较高,同步到的时间有快有慢,不做防抖时间就会反复跳变