硬件时钟和系统时钟的同步机制及案例分享

这篇具有很好参考价值的文章主要介绍了硬件时钟和系统时钟的同步机制及案例分享。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于技术能力有限,文章仅能进行简要分析和说明,如有不对的地方,请指正,谢谢🙂。

1 硬件时钟和系统时钟的同步机制

硬件时钟记录在服务器主板的CMOS芯片里面,与主板的南桥芯片(目前Intel与AMD的主板仅有南桥,北桥已集成到CPU)相连。硬件时钟一般叫做RTC(Real Time Clock)、CMOS clock或者BIOS clock,主板上面有一个独立电源(一般是纽扣电池CR2032)保持在操作系统关机、服务器下电后,每1秒嘀嗒计时一次。一般服务器在开机时,操作系统向硬件时钟同步时间。

由于BIOS是只读存储器(ROM),无法保存配置信息,CMOS芯片是一个可读写的存储器,主板会将BIOS的配置信息保存到CMOS芯片中。

纽扣电池一般可以支撑10年左右的寿命,但是如果服务器长时间没有上电,会使纽扣电池的寿命提前终止,导致服务器的BIOS配置无法保存,硬件时钟不准确。

硬件时钟和系统时钟的同步机制及案例分享

而系统时钟也叫做操作系统时间、kernel clock或者software clock,是基于时间中断器的软件计数器。系统时钟和硬件时钟在一定的场景下会互相影响,比如:

  • 服务器开机时,系统时钟会读取硬件时钟;
  • 操作系统使用过程或者正常关机时,也有可能将系统时钟写入到硬件时钟,缩小硬件时钟与系统时钟的差距;
  • 在UEFI和Legacy两种BIOS的引导模式下,硬件时钟和系统时钟之间的影响程度也不同。具体可以看后面的案例

在Linux操作系统里面,可以使用hwclock、timedatectl查看或者同步硬件时钟的具体状态。

[root@localhost ~]# date;hwclock -r;timedatectl 
Wed Apr 19 15:15:38 CST 2023 #date输出,软件时钟,24小时制,时区为当前时区东8区
Wed 19 Apr 2023 03:15:38 PM CST  -0.383302 seconds #hwclock -r输出,硬件时钟,12小时制,时区为当前时区东8区
      Local time: Wed 2023-04-19 15:15:38 CST  #timedatectl输出,软件时钟,24小时制,时区为当前时区东8区
  Universal time: Wed 2023-04-19 07:15:38 UTC  #timedatectl输出,UTC+0时间
        RTC time: Wed 2023-04-19 07:15:38      #timedatectl输出,硬件时钟,实际上为UTC+0时间
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: n/a
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
[root@localhost ~]# dmesg|grep -E "RTC|system clock"
[    0.418401] RTC time:  7:06:26, date: 04/19/23 #开机时识别到的硬件时钟
[    1.536044] rtc_cmos 00:01: setting system clock to 2023-04-19 07:06:28 UTC (1681887988) #同步硬件时钟到系统时钟中

从命令的输出中可知,操作系统开机时,读取到的RTC为UTC+0时间,Linux内核读取RTC时间为系统时钟的过程中也是同步为UTC+0时间(这与/etc/adjtime配置有关),并且操作系统再读取/etc/localtime将UTC+0时间转换为对应时区的本地时间。

[root@localhost ~]# ls -l /etc/localtime 
lrwxrwxrwx. 1 root root 35 Apr 19 09:36 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai

在Windows里面,默认使用本地时间(localtime)的方式记录时间,并且没有具体的工具或命令能够直接读取到硬件时钟。通过内核引导的过程中可以发现,Windows操作系统开机时通过HalQueryRealTimeCLock读取硬件时钟,再使用KeSetSystemTime同步到系统时钟。

例如我向事件查看器写入一条事件记录后,会发现实际上Windows也会将内核的UTC+0时间(就是事件查看器中的SystemTime,应该是使用KeQuerySystemTime获取的,)转换为localtime时间,localtime就是我们当前的本地时间,UTC+0时间有可能就是内核或者RTC的时间了。

PS C:\Users\samremote> Write-EventLog -LogName Application -Source "ESENT" -EntryType Information -EventId 1234 "事件记录产生时间为 $(Get-Date -Format "dddd MM/dd/yyyy HH:mm K")"

硬件时钟和系统时钟的同步机制及案例分享

2 案例分享

遇到一台HPE DL380 Gen10服务器上安装了Windows Server 2012,使用NTP同步时间,每间隔86400秒同步一次时间。但是自2022年起,出现了3次时间回拨的问题。

  1. 每次时间回退,均为“系统时间已经与硬件时钟同步”硬件时钟和系统时钟的同步机制及案例分享
  2. 随后操作系统周期性得向NTP服务器同步时间硬件时钟和系统时钟的同步机制及案例分享

根据系统日志的提示,Windows操作系统默认使用localtime(也就是系统设置时区的当前时间)的方式向硬件时钟同步了时间,即不会考虑时区的设置,直接读取硬件时钟,导致服务器出现时间回拨。HPE服务器的硬件时钟与引导模式(UEFI、Legacy)和ILO版本有关,参考(Document - Notice: (Revision) HPE ProLiant, Synergy and Apollo Gen9, Gen10, and Gen10 Plus Servers - Time and Date Synchronization Details | HPE Support),为此需要从该服务器的硬件时钟运作层面进行分析:

  1. 引导模式
    • UEFI:BIOS与操作系统中的所有关于日期、时间、时区的设置都会互相同步,互相影响。
    • Legacy:BIOS的时钟与操作系统时钟独立运行,设置互不影响。
  2. ILO版本
    • iLO5的默认时区为GMT格林威治时间(零时区),与北京时间相差8小时,开机时会将iLO的时区同步到服务器。
    • iLO4的默认时区是大西洋时间(UTC-4时区)。

硬件时钟和系统时钟的同步机制及案例分享

根据问题现象和HPE官方的文章可以得出下面的逻辑结构图:

硬件时钟和系统时钟的同步机制及案例分享

综上所述,可以考虑使用以下步骤解决时间回拨问题:

  1. 参考HPE的BUG修复说明,设置BIOS中的时间格式为“Local Time”,并且确保BIOS中的时区与ILO中的时区一致。(推荐)
  2. 使服务器向NTP更加频繁地向NTP同步时间,生产环境中,每10分钟或15分钟向NTP进行一次校时非常常见,目前设置86400秒同步一次,时间变慢的概率会更高。(推荐)
  3. 或者使用Legacy启动模式,但引导模式的更改,有可能导致服务器无法正常引导进入操作系统。(不推荐)

其它参考

Document - Linux Operating Systems - How to Synchronize System Clock with the Hardware Clock | HPE Support

Document - Advisory: (Revision) HPE Integrated Lights-Out 4 (iLO 4) and iLO 5 - The BIOS Time Zone May be Incorrect on Servers Set with Propagate Network Time Protocol (NTP) to Host or Propagate NTP or Onboard Administrator (OA) Time to Host | HPE Support

iBMC时间、RAID卡时间、OS时间解释- 华为 (huawei.com)

 文章来源地址https://www.toymoban.com/news/detail-423464.html

到了这里,关于硬件时钟和系统时钟的同步机制及案例分享的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 不同的场景上线时钟同步系统需要注意些什么

    时钟同步系统一般都是用在学校或者医院的环境当中,一般时钟同步系统由硬件和软件相组成。对于局域网部署,通常使用NTP协议。对于广域网部署,通常需要考虑网络延迟和安全性等因素。此外,时钟同步系统在不同的使用场景当中的需求也不同,下面我们就来了解一下不

    2023年04月23日
    浏览(26)
  • GPS北斗卫星同步时钟(NTP时间同步)助力化工厂各系统协同方案

    GPS北斗卫星同步时钟(NTP时间同步)助力化工厂各系统协同方案 GPS北斗卫星同步时钟(NTP时间同步)助力化工厂各系统协同方案 京准电子科技官微——ahjzsz 本项目需配备多台HR-901GB网络时间服务器,各作业部部署一台或多台一级NTP网络时间服务器(炼铁事业部包括高炉、烧

    2024年02月08日
    浏览(46)
  • Linux 同步系统时间并且写入到硬件

    过年期间,公司的测试服务器长时间断电,导致电脑里面的电池没电,从而时间重置。每次启动项的时候,都得需要重置时间,比较麻烦,从网上找到处理方法,记录一下 1.1 安装wget下载工具 1.2 使用wget下载ntpdate安装包 1.3 安装ntpdate 1.4.通过ntpdate命令同步网络时间 ntpdate NT

    2024年02月08日
    浏览(61)
  • 【Shell 命令集合 系统设置 】Linux 设置和显示硬件时钟 hwclock命令 使用指南

    Shell 命令专栏:Linux Shell 命令全解析 hwclock命令用于在Linux系统中设置和显示硬件时钟。硬件时钟是计算机上一个独立的时钟,它可以在计算机关闭时继续运行,并在计算机重新启动时提供准确的时间。 hwclock命令的主要作用如下: 显示硬件时钟:hwclock命令可以显示当前硬件

    2024年02月07日
    浏览(35)
  • 北斗卫星时钟同步服务器对电力系统有多重要?

            随着计算机和网络通信技术的飞速发展,火电厂热工自动化系统数字化、网络化的时代已经到来。一方面它为控制和信息系统之间的数据交换、分析和应用提供了更好的平台,另一方面对各种实时和历史数据时间标签的准确性提出了更高的要求。       通过 卫星时

    2024年02月01日
    浏览(41)
  • flink cdc MySQL2Doris 案例分享 解决分库多表同步

    使用flink cdc,完成mysql 多库 多表同时同步到doris中 flink 1.14.4 doris 1.1.0 flink-connector-mysql-cdc 2.2.1版本 一直会报异常 java.lang.NoClassDefFoundError: org/apache/flink/shaded/guava18/com/google/common/util/concurrent/ThreadFactoryBuilder 从官网下载依赖,然后本地添加进去flink-sql-connector-mysql-cdc-2.2.0 由于 U

    2023年04月09日
    浏览(36)
  • 毕业分享 STM32智能桌面天气预报时钟系统

    文章目录 0 前言 1 设计内容 2 软件设计 3 关键代码 4 最后 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及

    2024年02月06日
    浏览(32)
  • 系统编程之高效同步机制:条件变量

    以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/zy6Dmo_b3xMPPEO3HNxuuw 有一段时间没碰条件变量【condition variable】,快忘了它到底是啥。大概记得,之前是用来写底层接口,辅助实现安全的生产消费模式等等。 下面让我们来探

    2024年02月09日
    浏览(44)
  • 案例分享| T-Box功能自动化测试方案: 测试对象和原理分析 | 车内T-Box与手机端的交互流程 | 测试方案设计及实测结果 | T-Box功能自动化测试系统框架 | 软硬件工具组成及作用

    背景 T-Box是实现汽车车联网的一个关键环节,从起初单纯的实现车辆信息采集,已发展到具有车辆信息监测及信息交互(V2X)、车辆远程控制、安全监测和报警、远程诊断、边缘计算等多种离线和在线的应用功能的载体。为保障T-Box功能的正常运转,对其进行功能测试就尤为

    2024年04月13日
    浏览(93)
  • 北斗同步时钟服务器(NTP网络时间服务器)应用于计算机网络系统

    北斗同步时钟服务器(NTP网络时间服务器)应用于计算机网络系统 北斗同步时钟服务器(NTP网络时间服务器)应用于计算机网络系统 京准电子科技官微——ahjzsz 前言 近几年来,随着计算机自动化系统水平的提高,在各大计算机监控系统、微机保护装置、微机故障录波装置以及各

    2024年03月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包