首页/系统/服务器硬件与 RAID 速查/BMC 的 NTP 校时与兜底方案
带外管理72 条

BMC 的 NTP 校时与兜底方案

让 BMC 走 NTP 是 SEL 时间准确的长效方案:界面配置 NTP 服务器后回读核对;不支持 NTP 的机型用周期性 sel time set 兜底。

BMC 时钟为什么要单独校

BMC 有自己独立的实时时钟和电池,不会随操作系统或 hypervisor 的 NTP 自动校准。SEL 里所有事件的时间戳都取自这个时钟,一旦漂移,故障时间线就会与业务日志、告警记录对不上,排查时极易把两个不相干的事件关联起来。长效做法是让 BMC 自己走 NTP:在 iDRAC、iLO、iBMC 等管理界面配置 NTP 服务器并回读校验;确实不支持 NTP 的老机型,用周期性 sel time set 兜底。

基本信息

NTP 支持现代 iDRAC、iLO、iBMC 均在管理界面提供 NTP 配置
网络前提BMC 到 NTP 服务器可达,注意 UDP 123 与防火墙策略
回读命令sel time get 对比本机 date,量化偏差
兜底方案不支持 NTP 的机型用 crontab 周期执行 sel time set
时区口径全公司统一,避免 UTC 与本地时间混用
核查指标BMC 时间与标准时间偏差超过阈值即告警

典型使用场景

  • 新机上架:配置管理界面 NTP,纳入统一时间源
  • 排障前先确认时间口径,避免按错误时间线推理
  • 老机型补齐校时:不支持 NTP 时用周期任务兜底
  • 巡检项:把 BMC 时间偏差写进日巡检,超阈值告警
  • 事后取证:核对 SEL 事件时间与业务日志的先后顺序

校准与兜底

校准与兜底
# 读取 BMC 时间并与本机对比,量化偏差
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass sel time get
date
# 手动设置(格式随机型语义有差异,先核对厂商文档)
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass sel time set '10/13/2026 09:00:00'
# 不支持 NTP 的机型:crontab 每日兜底校时
# 0 3 * * * ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass sel time set "$(date '+%m/%d/%Y %H:%M:%S')"
# 设置后回读确认生效
ipmitool -I lanplus -H 10.0.0.10 -U admin -f /root/.ipmi_pass sel time get

校时核对项

核对项方法判定要点
当前偏差sel time get 与本机 date 对比秒级偏差可接受,分钟级必须处理
同步方式管理界面 NTP 配置或周期任务有 NTP 优先用 NTP,不要长期靠脚本
网络可达从管理网测试到 NTP 服务器的连通性专网环境常被 ACL 挡住 UDP 123
时区设置管理界面时区与公司口径一致UTC 与本地混用会造成固定偏移
生效验证配置后回读而非只看保存成功部分机型需等一个同步周期
sel time set 的时间格式在机型间存在差异(日月年顺序与分隔符),脚本化前先在测试机上验证一次,避免把日期写错成未来的时间。
把 BMC 时间往回调可能造成 SEL 中事件时间倒序,历史记录的可信度下降:校时优先小步快跑,必要时保留校时前后的记录说明。

易错点

  • 以为 BMC 会跟随操作系统校时:两者时钟独立,OS 再准 SEL 也可能偏差很大
  • crontab 中日期格式串未按语法引用:date 参数被拆开,写入的时间错乱
  • 只配置不回读:NTP 服务器不可达时配置保存成功但时间照旧漂移
  • 管理网 ACL 未放行 NTP:BMC 侧看不到任何报错,只是时间一直不准

数据来源与参考

  • ipmitool 手册(sel time)
  • 厂商 BMC 文档(NTP 配置)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌