虚拟机时间同步

news2025/6/9 13:10:52

一、常见同步方式

常见的虚拟机同步方式有给虚拟机配置ntp、或者用平台提供的agent对时与虚拟机所在的宿主机。第一种依赖网络、第二种依赖平台的agent这个三方工具。

二、利用ptp_kvm.ko来直接和宿主机同步时间

关键组件
ptp_kvm驱动、chrony。
PTP_KVM同步原理

|----------------------------|              |--------------------------|
|       guest userspace      |              |          host            |
|ioctl -> /dev/ptp%d         |              |                          |
|       ^   |                |              |                          |
|----------------------------|              |                          |
|       |   | guest kernel   |              |                          |
|       |   V      (get host walltime/counter cycle)                   |
|      ptp_kvm -> hypercall - - - - - - - - - - ->hypercall service    |
|                         <- - - - - - - - - - - -                     |
|----------------------------|              |--------------------------|
 
1. time sync service in guest userspace call ptp device through /dev/ptp%d.
2. ptp_kvm module in guest recive this request then invoke hypercall to route
into host kernel to request host walltime/counter cycle.
3. ptp_kvm hypercall service in host response to the request and send data back.
4. ptp (not ptp_kvm) in guest copy the data to userspace.
 
This ptp_kvm implementation focuses itself to step 2 and 3 and step 2 works
in guest comparing step 3 works in host kernel.

该同步不需要依赖网络
测试验证准备
1.创建一台虚拟机,并关闭虚拟机的时间同步功能(如果还不放心可以直接停止虚拟机所在hyper上的compute_agent)。
2.检查当前虚拟机是否含有ptp_kvm驱动。
3.安装chrony。

配置相关参数
虚拟机内部

1.echo ptp_kvm > /etc/modules-load.d/ptp_kvm.conf。配置完成后重启虚拟机。
2.echo "refclock PHC /dev/ptp0 poll 1" >> /etc/chrony/chrony.conf。指定chrony的时钟源为ptp。
3.重启下chrony服务。
4.执行chronyc sources命令,能看到步骤2配置的时钟源,即配置成功。

测试
从上述“PTP_KVM同步原理”中的描述可以看到,对于宿主机没有做特别说明。那分别测试两个方面即物理机启动一个ptpd程序和物理机不启动一个ptpd程序。

经过测试,虚拟机所在物理机有无ptpd程序,虚拟机都可以正常同步物理机的时间到虚拟机内部。

1.用date 030112302023打乱虚拟机内部的local时间。

2.然后观察虚拟机内部时间能否自动恢复正常。经过观察能恢复正常,时间在5s左右。
总结
1.这种同步时间的方式不依赖网络,直接通过ptp_kvm驱动去从虚拟机所在的宿主机获取宿主机的时间,这个时候虚拟机把宿主机看作时间源。

2.这种ptp_kvm方式的同步。对应虚拟机必须要用ptp_kvm这个驱动。

3.当出现虚拟机和宿主机时间不一致时,能够在较短时间同步到一致状态(5s左右)。
说明
用这个配置,可以把同步时间缩短到2s左右
在这里插入图片描述
效果如下
在这里插入图片描述
验证过程中是停掉了compute_agent、 systemd-timesyncd服务的。
其它
/etc/chrony/chrony.conf

默认

makestep 1.0 3 # 只有在同步的第 3 次以内,系统时间偏差大于 1 秒时才允许 “跳变” 同步。之后如果你手动改了时间,它就不会纠正,而是退出或保持不同步状态。

改成

makestep 0.1 -1 # 如果系统时间与 NTP 时间相差超过 0.1 秒(100 毫秒),那么允许 立刻强制跳变(step)修正时间,-1 表示这种修正行为可以发生无限次(不限于前几次启动)。

参考

https://lwn.net/Articles/830643/
https://blog.51cto.com/u_16213579/9972962
http://blog.csdn.net/qq_24489251/article/details/126697188

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2405394.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件更新机制的测试要点与稳定性提升

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

LLMs 系列科普文(11)

目前我们已经介绍了大语言模型训练的两个主要阶段。第一阶段被称为预训练阶段&#xff0c;主要是基于互联网文档进行训练。当你用互联网文档训练一个语言模型时&#xff0c;得到的就是所谓的 base 模型&#xff0c;它本质上就是一个互联网文档模拟器&#xff0c;我们发现这是个…

10万QPS高并发请求,如何防止重复下单

1. 前端拦截 首先因为是10万QPS的高并发请求&#xff0c;我们要保护好系统&#xff0c;那就是尽可能减少用户无效请求。 1.1 按钮置灰 很多用户抢票、抢购、抢红包等时候&#xff0c;为了提高抢中的概率&#xff0c;都是疯狂点击按钮。会触发多次请求&#xff0c;导致重复下…

Xilinx IP 解析之 Block Memory Generator v8.4 ——02-如何配置 IP(仅 Native 接口)

相关文章&#xff1a; Xilinx IP 解析之 Block Memory Generator v8.4 ——01-手册重点解读&#xff08;仅Native RAM&#xff09; – 徐晓康的博客 Xilinx IP 解析之 Block Memory Generator v8.4 ——02-如何配置 IP&#xff08;仅 Native RAM&#xff09; – 徐晓康的博客 V…

什么是高考?高考的意义是啥?

能见到这个文章的群体&#xff0c;应该都经历过高考&#xff0c;突然想起“什么是高考&#xff1f;意义何在&#xff1f;” 一、高考的定义与核心功能 **高考&#xff08;普通高等学校招生全国统一考试&#xff09;**是中国教育体系的核心选拔性考试&#xff0c;旨在为高校选拔…

Spring Cloud 多机部署与负载均衡实战详解

&#x1f9f1; 一、引言 为什么需要多机部署&#xff1f; 解决单节点性能瓶颈&#xff0c;提升系统可用性和吞吐量 在传统单机部署模式下&#xff0c;系统的所有服务或应用都运行在单一服务器上。这种模式在小型项目或低并发场景中可能足够&#xff0c;但随着业务规模扩大、用…

基于定制开发开源AI智能名片S2B2C商城小程序的首屏组件优化策略研究

摘要&#xff1a;在数字化转型背景下&#xff0c;用户对首屏交互效率的诉求日益提升。本文以"定制开发开源AI智能名片S2B2C商城小程序"为技术载体&#xff0c;结合用户行为数据与认知心理学原理&#xff0c;提出首屏组件动态布局模型。通过分析搜索栏、扫码入口、个人…

EasyRTC嵌入式音视频通信SDK音视频功能驱动视频业务多场景应用

一、方案背景​ 随着互联网技术快速发展&#xff0c;视频应用成为主流内容消费方式。用户需求已从高清流畅升级为实时互动&#xff0c;EasyRTC作为高性能实时音视频框架&#xff0c;凭借低延迟、跨平台等特性&#xff0c;有效满足市场对多元化视频服务的需求。 二、EasyRTC技术…

linux下gpio控制

linux下gpio控制 文章目录 linux下gpio控制1.中断命令控制/sys/class/gpio/export终端命令控制led 2.应用程序控制 3.驱动代码控制 1.中断命令控制 通用GPIO主要用于产生输出信号和捕捉输入信号。每组GPIO均可以配置为输出输入以及特定的复用功能。 当作为输入时&#xff0c;内…

Spring Boot 从Socket 到Netty网络编程(下):Netty基本开发与改进【心跳、粘包与拆包、闲置连接】

上一篇&#xff1a;《Spring Boot 从Socket 到Netty网络编程&#xff08;上&#xff09;&#xff1a;SOCKET 基本开发&#xff08;BIO&#xff09;与改进(NIO)》 前言 前文中我们简单介绍了基于Socket的BIO&#xff08;阻塞式&#xff09;与NIO&#xff08;非阻塞式&#xff0…

Orthanc:轻量级PACS服务器与DICOMweb支持的技术详解

🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用…

量子计算导论课程设计 之 PennyLane环境搭建

文章目录 具体配置conda 虚拟环境配置Pennylane 正所谓&#xff0c;磨刀不误砍柴工&#xff0c;想要进行量子计算导论的课程设计&#xff0c;首先就是搭建好平台&#xff0c;推荐大家就是本地搭建&#xff0c;那么下面有三种选择 QiskitTensorFlow QuantumPennylane 具体配置…

GAN优化与改进:从条件生成到训练稳定性

摘要 本文聚焦生成对抗网络&#xff08;GAN&#xff09;的核心优化技术与改进模型。系统解析 条件生成对抗网络&#xff08;CGAN&#xff09; 的可控生成机制、深度卷积GAN&#xff08;DCGAN&#xff09; 的架构创新&#xff0c;揭示GAN训练崩溃的本质原因&#xff0c;并介绍W…

linux库(AI回答)

STL POSIX关系 DeepSeek-R1 回答完成 搜索全网22篇资料 STL&#xff08;标准模板库&#xff09;和 POSIX&#xff08;可移植操作系统接口&#xff09;是两种不同领域的技术标准&#xff0c;它们在 C/C 开发中各有侧重&#xff0c;但可以协同使用。以下是它们的关系和区别&…

CoordConv: CNN坐标感知特征适应

传统卷积 vs CoordConv 详细对比 传统卷积对空间位置不敏感&#xff0c;CoordConv通过显式添加坐标信息解决这个问题在特征图中嵌入(x, y)坐标和可选的径向距离r使模型能够感知空间位置关系 1. 传统卷积的"空间位置不敏感"问题 传统卷积的特点&#xff1a; 输入: …

opencv学习笔记2:卷积、均值滤波、中值滤波

目录 一、卷积概念 1.定义 2.数学原理 3.实例计算 &#xff08;1&#xff09; 输入与卷积核 &#xff08;2&#xff09;计算输出 g(2,2) 4.作用 二、针对图像噪声的滤波技术——均值滤波 1.均值滤波概念 &#xff08;1&#xff09;均值滤波作用 &#xff08;2&#…

在 Android Studio 中使用 GitLab 添加图片到 README.md

1. 将图片文件添加到项目中 在项目根目录下创建一个 images 或 assets 文件夹 将你的图片文件&#xff08;如 screenshot.png&#xff09;复制到这个文件夹中 2. 跟提交项目一样&#xff0c;提交图片到 GitLab 在 Android Studio 的 Git 工具窗口中&#xff1a; 右键点击图片…

HarmonyOS:如何在启动框架中初始化HMRouter

应用启动时通常需要执行一系列初始化启动任务&#xff0c;如果将启动任务都放在应用主模块&#xff08;即entry类型的Module&#xff09;的UIAbility组件的onCreate生命周期中&#xff0c;那么只能在主线程中依次执行&#xff0c;不但影响应用的启动速度&#xff0c;而且当启动…

Web3 借贷与清算机制全解析:链上金融的运行逻辑

Web3 借贷与清算机制全解析&#xff1a;链上金融的运行逻辑 超额抵押借款 例如&#xff0c;借款人用ETH为抵押借入DAI&#xff1b;借款人的ETH的价值一定是要超过DAI的价值&#xff1b;借款人可以任意自由的使用自己借出的DAI 稳定币 第一步&#xff1a;借款人需要去提供一定…

【Vue3】(三)vue3中的pinia状态管理、组件通信

目录 一、vue3的pinia 二、【props】传参 三、【自定义事件】传参 四、【mitt】传参 五、【v-model】传参&#xff08;平常基本不写&#xff09; 六、【$attrs】传参 七、【$refs和$parent】传参 八、provide和inject 一、vue3的pinia 1、什么是pinia&#xff1f; pinia …