国产麒麟系统下基于卫星的NTP网络时间服务器方案

国产麒麟系统下基于卫星的 NTP 网络时间服务器方案

国产麒麟系统下基于卫星的 NTP 网络时间服务器方案

京准电子科技官微——ahjzsz

1、 麒麟系统 NTP 授时方案

设计思路:

在通用的麒麟服务器内部固定一块北斗卫星接收模块并引出卫星天线接口,卫星模块接收北斗卫星数据并解码输出时间数据(NMEA0183 串口数据),并将时间数据输入到系统主板的串口上;麒麟系统串口接收时间数据解码时间信息并同步麒麟系统时间,确保麒麟系统的时间与准确。为了实现麒麟系统的 NTP 授时服务,需要在系统内运行 NTPD 授时程序。 

重点:

(1)内置北斗卫星接收模块;

(2)串口输入到麒麟操作系统

(3)麒麟操作系统的时间同步

(4)麒麟系统的 NTP 授时服务

 

 

 

2、网络拓扑图

在中心机房配置 1 台麒麟系统 NTP 服务器,麒麟 NTP 服务器直接获取北斗卫星时间数据实现本地系统的时间同步,通过 NTP 网络时间同步协议对外提供授时服务。系统内的办公设备、堡垒机、防火墙、虚拟化集群、容灾备份系统、存储服务器及其他终端设备通过 NTP 时间协议同步到麒麟 NTP 服务器。麒麟 NTP 服务器和北斗卫星直接同步,这就保证了整个系统的时间准确、稳定和可靠性。

在实际的项目使用中,推荐使用 2 台或 3 台 NTP 服务器,在 NTP 客户端配置多个 NTP 服务器 IP 地址,NTP 实时访问各个 NTP 服务器,通过内部时间同步算法自动切换时间基准,任何一台 NTP 服务器故障不影响 NTP 客户端的时间同步,这种做法可以规避单点故障。

 

 

 

3、网络时间同步策略

 

 

 

NTP C/S 授时原理

网络时延:

     delay=(T4-T2)+(T3-T1)

客户端计算机时间偏差:

     offset = ((T3-T1)-(T4-T2) )/2

客户机修正时间为 T+offset

(Device A 为客户端,Device B 为 NTP 服务器)

Device A 发送一个 NTP 报文给 Device B,该报文带有它离开 Device A 时的时间戳,该时间戳为 10:00:00am(T1)。

当此 NTP 报文到达 Device B 时,Device B 加上自己的时间戳,该时间戳为 11:00:01am(T2)。

当此 NTP 报文离开 Device B 时,Device B 再加上自己的时间戳,该时间戳为 11:00:02am(T3)。

当 Device A 接收到该响应报文时,Device A 的本地时间为 10:00:03am(T4)。

至此,Device A 已经拥有足够的信息来计算两个重要的参数:

NTP 报文的往返时延 Delay=(T4-T1)-(T3-T2)=2 秒。

Device A 相对 Device B 的时间差 offset=((T2-T1)+(T3-T4))/2=1 小时。

4、客户端配置

大部分服务器在出厂时都安装了 NTP 协议,在 NTP 实施时只需将 NTP 源指向现有 NTP 服务即可。

AIX、Solaris、HP-UNIX 等 UNIX 和 Linux 系统使用系统自带的 NTP 服务。在原有配置文件(/etc/ntp.conf),增加如下语句,重新启动 NTP 进程即可。

server   主时钟 IP  minpoll 4 maxpoll 4    prefer

server   备时钟 IP  minpoll 4 maxpoll 4   

server   备时钟 IP  minpoll 4 maxpoll 4   

tinker   step 0 #linux 使用

其中, Linux 使用 tinker step 0 配置缓慢调整,Aix 使用 slewalways  yes 配置缓慢调整,缓慢调整可规避闰秒时间调整对系统产生的影响。 

备注:麒麟系统需包含串口的相关驱动程序!