一种KVM下多虚拟机时间同步系统的制作方法

文档序号:16581974发布日期:2019-01-14 18:02阅读:2198来源:国知局
一种KVM下多虚拟机时间同步系统的制作方法

本发明涉及网络通信系统领域,尤其涉及到一种kvm下多虚拟机时间同步系统。



背景技术:

ptp的典型应用领域是测量和控制系统、工业自动化、电力系统以及分布式运动控制系统。时间统一,是分布在不同位置的设备和系统协同工作的基础。ptp是精确网络时钟同步协议,当网卡硬件支持ptp的时候,能达到微秒级的对时精度,比ntp要更加的精确。但是虚拟化环境,希望运行在宿主机上的所有的虚拟机能从宿主机获取高精度的时间,这引入了kvm下多虚拟机间ptp高精度时间同步,kvm下多虚拟机时间同步系统是指kvm虚拟化宿主机通过ieee1588精确时间同步ptp协议获取精确的系统时间,kvm之上的多个虚拟机通过和宿主机系统时间快速同步,从而达到精确对时的功能,。目前kvm通过pcie直通的方式一个虚拟机只能绑定一个网卡,该网卡不能为其他虚拟机使用,所以不能使用ptp网卡的硬件时钟直接来为多个虚拟机提供时间同步。chrony是开源的,它能保持系统时钟与时钟服务器同步,让时间保持精确。chronyd是一个后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步,它确定计算机增减时间的比率,并对此进行补偿。



技术实现要素:

针对现有技术中的缺陷和应用上的需求,本发明提供一种kvm下多虚拟机时间同步系统,本发明将ptp协议引入云操作系统中,实现高精度时间同步。本发明提出宿主机的系统时间通过硬件ptp对时得到微秒级别的精度,然后多个虚拟机通过chronyd同步软件和系统调用(hypercal)方式和宿主机进行同步,可以得到微秒级的同步精度,该方法适用于linux和vxworks系统。

本发明是根据以下技术方案实现的:

一种kvm下多虚拟机时间同步系统,其特征在于,包括:

输入模块:其用于接收ptp服务器端发过来的同步报文;

处理模块:进行ptp网卡对时协议处理;

输出模块:为虚拟机chronyd提供系统调用接口获取宿主机系统时间。

上述技术方案中,所述输入模块包括rj45接口和10/100/1000mb的物理层phy芯片,通过媒体独立接口或者千兆以太网接口与intelptp网卡相连,用于和远端ptp主设备收发报文的物理链路;网络驱动作为tcp/ip报文的收发接口,同时为对时协议栈提供读写硬件时间戳寄存器配置接口。

上述技术方案中,所述处理模块根据ieee1588v2实现的ptp协议栈的linuxptp,包括linuxptp:ptp4l和linuxptp:phc2sys,其中linuxptp:ptp4l实现边界时钟和普通时钟,将ptp硬件时钟和远端主时钟进行同步,其中ptp配置为从模式和udp4层报文传输;linuxptp:phc2sys实现系统时间和网卡时间的同步。

上述技术方案中,所述输出模块是ptp_kvm.ko,作为内核驱动模块,用于获取宿主机实时时间的函数接口,在kvm虚拟化ptp驱动和hypercal系统调用下,在一个主机上的所有虚拟机都将ptp网卡时间作为时间源。

由于采用了上述技术方案,与现有技术相比,本发明具有如下的有益效果:

本发明将ptp高精度对时系统的使用从单机环境扩展到多虚拟机间的时间同步,解决了虚拟机采用ntp时间同步精度在毫秒级别精度差的问题,为高性能计算和云服务等时间要求严格的服务提供准确时间保障。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的一种kvm下多虚拟机时间同步系统的框架图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

本发明在linux系统上利用linuxptp开源ieee1588v2软件和chrony时间同步工具搭建先用linuxptp:ptp4l同步网卡时间,然后用linux:phc2将网卡时间同步给系统时间,虚拟机中chronyd工具以/dev/ptpx作为时间源进行同步,利用系统调用hypercall访问宿主机的系统时间,整个软件流程实现了高精度的时间同步,可以达到微秒级别的对时精度。

如图1所示,本发明的一种kvm下多虚拟机时间同步系统,包括:

输入模块:其用于接收ptp服务器端发过来的同步报文;

处理模块:进行ptp网卡对时协议处理;

输出模块:为虚拟机chronyd提供系统调用接口获取宿主机系统时间。

其中,输入模块包括rj45接口和10/100/1000mb的物理层phy芯片,通过媒体独立接口或者千兆以太网接口与intelptp网卡相连,用于和远端ptp主设备收发报文的物理链路;网络驱动作为tcp/ip报文的收发接口,ptp驱动为对时协议栈提供读写硬件时间戳寄存器配置接口。ptp网络驱动是通用linux网卡驱动,例如ixgbe.ko;支持硬件ptp,可以用“ethtool–teth0”来检查网卡eth0是否支持该ptp功能。

其中,处理模块根据ieee1588v2实现的ptp协议栈的linuxptp,包括linuxptp:ptp4l和linuxptp:phc2sys,其中linuxptp:ptp4l实现边界时钟和普通时钟,将ptp硬件时钟和远端主时钟进行同步,,其中ptp配置为从模式和udp4层报文传输;linuxptp:phc2sys实现系统时间和网卡时间的同步。系统实时时钟就是系统时钟,它的时钟源就是主板的晶振。

其中,输出模块是ptp_kvm.ko,作为内核驱动模块,用于获取宿主机实时时间的函数接口,在kvm虚拟化ptp驱动和hypercal系统调用下,在一个主机上的所有虚拟机都将ptp网卡时间作为时间源,即通过添加参考时钟/dev/ptpx到chrony配置文件且配通过命令chronycsourcesp配置ptp设备为时间同步源。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。



技术特征:

技术总结
本发明提供了一种KVM下多虚拟机时间同步系统,其特征在于,包括:输入模块:其用于接收PTP服务器端发过来的同步报文;处理模块:进行PTP网卡对时协议处理;输出模块:为虚拟机提供时间同步后台守护进程(chronyd)获取宿主机系统时间。本发明将PTP高精度对时系统的使用从单机环境扩展到多虚拟机间的时间同步,解决了虚拟机采用NTP时间同步精度在毫秒级别精度差的问题,为高性能计算和云服务等时间要求严格的服务提供准确时间保障。

技术研发人员:王浩;余新胜;宣志祥;于楠;张南;顾燕飞
受保护的技术使用者:华东计算技术研究所(中国电子科技集团公司第三十二研究所)
技术研发日:2018.08.13
技术公布日:2019.01.11
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1