PTP 精确时间服务介绍
介绍
网络时钟同步包括以下两个概念:
时间同步(相位同步,Phase synchronization)
指信号之间的频率和相位都保持一致,即信号之间的相位差恒为零
频率同步(时钟同步,Frequency synchronization)
指信号之间在频率或相位上保持某种严格的特定关系,信号在其对应的有效瞬间以同一平均速率出现,以保证通信网络中的所有设备都以相同的速率运行,即信号之间保持恒定的相位差
PTP(Precision Time Protocol,精确时间协议)
是一种时间同步的协议,其本身只是用于设备之间的高精度时间同步,但也可被借用于设备之间的频率同步。
PTP 主要分为
- 全局主时钟(GrandMaster)
- 主时钟(MasterClock)
- 透明时钟(TransparentClock)
- 边界时钟(BoundaryClock)
- 普通时钟(OrdinaryClock)
查看网卡是否支持硬件时钟:
ethtool -T ens33
安装
关闭 NTP
$ sudo timedatectl set-ntp false
$ timedatectl status
Local time: Sun 2023-01-29 00:03:11 PST
Universal time: Sun 2023-01-29 08:03:11 UTC
RTC time: Sun 2023-01-29 08:03:11
Time zone: America/Los_Angeles (PST, -0800)
System clock synchronized: yes
NTP service: inactive
RTC in local TZ: no
PTP 安装
apt install ptpd
启动 master节点
$ ptpd -M -i ens32 # -C 前台启动,打印日志到 console
$ systemctl status ptpd.service
# 启动时日志
$ tail -f /var/log/syslog
...
Jan 22 00:06:11 ubuntu ptpd2[74655]: PTPDv2 version 2.3.1 starting
Jan 22 00:06:11 ubuntu ptpd2[74655]: Starting ptpd2 daemon with parameters: ptpd -M -i ens32
Jan 22 00:06:11 ubuntu ptpd2[74655]: Checking configuration
Jan 22 00:06:11 ubuntu ptpd2[74655]: Configuration OK
Jan 22 00:06:11 ubuntu ptpd2[74655]: Successfully acquired lock on /var/run/ptpd2.lock
Jan 22 00:06:11 ubuntu ptpd2[74656]: Info: Now running as a daemon
Jan 22 00:06:11 ubuntu ptpd2[74656]: Successfully acquired lock on /var/run/ptpd2.lock
Jan 22 00:06:11 ubuntu ptpd2[74656]: PTPDv2 started successfully on ens32 using "masteronly" preset (PID 74656)
Jan 22 00:06:11 ubuntu ptpd2[74656]: TimingService.PTP0: PTP service init
启动 slave 节点
ptpd -g -i eth0
linuxptp
linuxptp
组成如下:
ptp4l
:遵循 IEEE 1588-2008
标准文档规范,实现了 BC(Boundary Clock)
、OC(Ordinary Clock)
和 TC(Transparent Clock)
phc2sys(PTP hardware clock to system)
是一个同步系统中两个或多个时钟的程序
- 通常,它用于将
系统时钟
与PTP硬件时钟(PHC)
同步,该硬件时钟本身由 ptp4l
程序同步
pcm
对 ptp4l
进行配置
安装
# ubuntu
apt install linuxptp
# centos
yum install -y linuxptp
扩展
北斗时源