首页 > 其他分享 >[转]ptp(precision time protocol)时钟同步

[转]ptp(precision time protocol)时钟同步

时间:2024-05-05 20:22:04浏览次数:24  
标签:同步 protocol ptp4l precision 节点 time 时钟 PTP ptp

一、介绍
1:什么是ptp
PTP(Precision Time Protocol) 是一个通过网络同步时钟的一个协议。当硬件支持时,PTP 精度能达到亚微秒,比 NTP(Network Time Protocol)精度更高。

2:ptp应用场景
1)数据中心
数据中心需要NTP/PTP同步,以确保集群的时域运行。同步对于虚拟机计算是必不可少的。日志事件的时间顺序对于研究错误逻辑很重要。时间和日期对于自动备份和SQL转换回滚至关重要。弱同步使IT/IoT风险不稳定。
银行IT使用数据中心集群在需要微秒级精度的同步时域中运行。电子支付系统和信用卡操作都需要:安全和交易注册表(DB)。时间戳用于长期保存签名和数据密封。虽然精度要求仅为秒的十分之一,但对可信时间参考有着很严格的要求。带有时间戳的RFC3161证明了金融交易不可抵赖。银行IT基础架构需要强大的自动隔夜备份系统.。

2)智能电网
IEC 61850变电站和IEEE C37.238 PUM要求同步精度高于一个微秒,以保持稳健的配电管理。这强制PTP/IEEE1588在特殊的电源配置文件“或电力应用程序配置文件”中运行。PTP/IEEE1588主站需要确保同步精度优于200纳秒的服务器以太网输出。

3)自动驾驶、车路协同等边缘业务场景
自动驾驶车辆同步使用纳秒级和PTP IEEE1588配置文件AES67/IEEE 802.1AS。车辆排队是自动驾驶汽车可能采用的一系列功能的一部分。排队是一组可以非常紧密、安全和高速行驶的车辆。每辆车都能与队列中的其他车辆进行无线通信。此外,同步化对于自主人工智能驱动的车辆来说是至关重要的

3:操作系统里的 PTP
操作系统支持 PTP 被分开在 kernel 和 user space,比如 Redhat 或者 CentOS,内核支持 PTP 时钟,由网络驱动提供(硬件 PTP 依赖物理网卡提供硬件时钟),可以手动检查网卡是否支持 PTP

ethtool -T eno2
1
现协议是 linuxptp,PTPv2 的实现是根据 linux 的 1588v2 标准。linuxptp 软件包包含 ptp4l 和 phc2sys 两个时钟同步程序。ptp4l 程序实现了 PTP 时钟和普通时钟。通过硬件时间戳,它被用来同步物理网卡到远端主时钟的 PTP 硬件时钟。phc2sys 程序需要硬件时间戳,在网卡上(NIC)同步系统时钟到 PTP 硬件的时钟。

4:KVM virtual PTP driver
在云环境中,我们想要所有运行在云上的客户虚拟机都有和主机拥有相同精度的时钟,就需要 KVM virtual PTP driver。使用 kvm 虚拟 ptp 驱动程序,同一计算节点中的所有 VM 可以通过使用一个支持 ptp 的 NIC 作为时间源来实现相同的时间精度。

(1):网络(PTP)驱动是一个公共的支持硬件 PTP 的 linux 网络驱动(如:ixgbe.ko),使用’ethtool -T eth0’来检查硬件网络是否支持 PTP。
(2):Linuxptp 是针对 Linux 根据 IEEE 1588v2 标准实现的精准时钟协议(PTP)
(3):Linuxptp:ptp4l 实现 Boundary Clock (BC) 和 Ordinary Clock (OC),为了同步 ptp 硬件时钟(PHC)到远端主时钟。
(4):Linuxptp:phc2sys 在系统里同步两个或者更多的时钟,比如同步系统时钟到一个 PTP 硬件时钟(PHC)。
(5):系统实时时钟是系统时钟(CLOCK_REALTIME)。
(6):ptp_kvm.ko:内核模块,提供获取返回主机实时时钟的方法。允许 chrony 以高精度同步主机和客户端时钟。
(7):通过 kvm 虚拟 ptp 驱动,所有的虚拟机在同一个计算节点可以实现相同的时钟精度,通过使用一个支持 ptp 的网卡作为时间源

二、 物理机测试
1:本平台网络环境为dpdk,首先确认网卡是否支持ptp硬件时钟
网卡型号为X722,通过官网查看支持硬件时钟

2:在两台物理机都安装linuxptp软件包:

yum install linuxptp

确认安装完成

rpm -qa | grep linuxptp

3:修改master节点和slave节点的配置文件

Master节点:
修改prioprty值,值越小优先级越大。Master节点的优先级大于slave节点。
编辑配置文件

vim /etc/ptp4l.conf

Slave节点:
Priority的值默认为128,此处默认即可。

4:master节点启动ptp4l进程:

ptp4l -i eno2 -m -f /etc/ptp4l.conf

以上可知,master节点使用/dev/ptp5作为时钟源,地址为:48dc2d.ffe.0ce8af

5: slave节点启动ptp4l进程:

ptp4l -i eno2 -m -s  -f /etc/ptp4l.conf

停止master节点ptp4l进程,再启动ptp4l进程,可以看到slave节点先找本地,在连接master节点,如下:

6:slave节点同步系统时间到ptp4l应用程序同步的时钟

执行如下命令:

phc2sys -O 0 -r -m -s eno2

三、虚拟机使用物理机网卡时间作为时钟源

1:创建虚拟机,操作系统centos7.6

2:加载内核ptp_kvm

modprobe ptp_kvm
lsmod | grep kvm

3:写入配置文件,确保虚拟机重启后可以加载模块

echo "ptp_kvm" > /etc/modules-load.d/ptp_kvm.conf

4:添加ptp到chrony配置:

echo "refclock PHC /dev/ptp0 poll 3 dpoll -2" >> /etc/chrony.conf

重启chronyd服务

systemctl retstart chronyd

5:确认配置成功

chronyc sources

 

————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40579389/article/details/121497291

标签:同步,protocol,ptp4l,precision,节点,time,时钟,PTP,ptp
From: https://www.cnblogs.com/rainbow70626/p/18173818

相关文章

  • Do Loyal Users Enjoy Better Recommendations? Understanding Recommender Accuracy
    目录概实验设置实验Interaction-basedLoyaltyActiveTimePeriodbasedLoyaltyRecency代码JiY.,SunA.,ZhangJ.andLiC.DoLoyalUsersEnjoyBetterRecommendations?UnderstandingRecommenderAccuracyfromaTimePerspective.ICTIR,2022.概讨论了推荐中一......
  • 【发现一个小问题】golang http client: 配置了Client 对象的 Timeout 就会导致 conte
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯我这样初始化了客户端:varclient=http.Client{Timeout:time.Duration(1000)*time.Millisecond,}然后在request创建过程中使用了context的timeout机制:tim......
  • Could not find module '.../libtorchaudio_ffmpeg.pyd' | RuntimeError: StreamRea
    Windows中使用torchaudio.io.StreamReader时报错:FileNotFoundError:Couldnotfindmodule'D:\software\miniconda3\envs\pytorch\Lib\site-packages\torchaudio\lib\libtorchaudio_ffmpeg.pyd'(oroneofitsdependencies).Tryusingthefullpathwith......
  • Linux中atime,ctime与mtime的细节疑问总结
    在Linux文件系统中,每一个文件都有三个时间属性,它们分别是atime,mtime,ctime,一般来说,atime比较好理解,但是很多时候,我们往往会混淆mtime和ctime这两个时间属性,或者搞不清楚两者的区别。在展开介绍之前,我们先来看看如何查看文件的atime,mtime,ctime属性。下面简单介绍一下:查看atim......
  • 应用zabbix的实时导出(real-time export)功能
    说明zabbix作为监控软件,有时也会需要获取历史数据作进一步的分析,通常可以采用3种办法:通过zabbixAPI定期获取(通过web)通过后端数据库定期读取(通过db)应用实时导出功能配合filebeat或其他工具获取(通过server)对比以上三种方法:实时性:毫无疑问,通过实时导出功能将数据发送出去是......
  • Time test
    卡卡网正式开通2009年5月卡卡网(www.webkaka.com)建立于2009年5月,本站旨在为广大网站建设人员提供专业的网站测速和优化服务,以及为广大网民提供网络速度测试服务。卡卡网当日独立IP首次超过20002009年8月......
  • 图文解说ChinaCock日期组件CCDateTimePicker(二)
    上文,介绍了CCDateTimePicker基本用法,实现日期、时间等各种日期格式的输入,用法简单,代码简洁。能不能用这个控件,来实现自定义的输入格式呢?答案是能。比如:我的需要求就遇到这样的情况,用户要选择星期几的方式,如下图,是已经实现的结果: 接下来看看如何实现的?第一步,先定义一个数组: ......
  • Installation requirements for SAP Kernels on Windows (C++ runtime environment, V
      Symptom在Windows执行StartSAP,报错信息找不到指定的模块:"Theprogramcan'tstartbecausemsvcr100.dllismissingfromyourcomputer.""无法启动此程序,因为计算机中丢失了msvcr100.dll。尝试重新安装该程序以解决此问题。" OtherTermsC,C++,runtime,VCred......
  • 【Qt 专栏】DateTime日期时间组件
    本文转载自:https://cloud.tencent.com.cn/developer/article/2371799本章将重点介绍QDateTime日期与时间组件的常用方法及灵活运用。 在Qt中,日期和时间的处理通常使用QDateTime类。QDateTime是一个用于表示日期和时间的类,而与之相关的组件还包括QDate、QTime以及QDateTi......
  • 解决Unchecked runtime.lastError: Cannot create item with duplicate id meterSpher
    uncheckedruntime.lasterror:cannotcreateitemwithduplicateidXXX谷歌浏览器扩展插件开发问题_chromeuncheckedruntime.lasterror:cannotcreate-CSDN博客javascript-IssueswithContentMenuandOpeningTabs-ChromeExtension-StackOverflowchrome.run......