产品
产品中心
< 返回主菜单
产品

交换机

交换机所有产品
< 返回产品
交换机
查看交换机首页 >

无线

无线所有产品
< 返回产品
无线
查看无线首页 >

云桌面

云桌面所有产品
< 返回产品
云桌面
查看云桌面首页 >

安全

安全所有产品
< 返回产品
安全
查看安全首页 >
产品中心首页 >
行业
行业中心
< 返回主菜单
行业
行业中心首页 >

云桌面时钟虚拟化技术白皮书

【时钟虚拟化技术】本文档从时钟原理、时钟的意义以及虚拟化时钟对虚拟机的影响等方面,基于时钟补偿原理阐述了时钟虚拟化技术。

  • 发布时间:2020-04-29

  • 点击量:

  • 点赞:

分享至

我想评论

摘要

通过本文能够让读者快速明白时钟虚拟化技术对虚拟机的重要性以及实现的难点。本文档从时钟原理、时钟的意义以及虚拟化时钟对虚拟机的影响等方面,基于时钟补偿原理阐述了时钟虚拟化技术。

关键字

时钟虚拟化、时钟中断、时钟漂移、时钟补偿

术语清单

缩略语/术语

说明

RTC

实时时钟

VMM

虚机监视器

VMCS

虚机控制块,用来控制虚机的行为

IPI

处理器间中断,CPU相互通知的手段

时钟漂移

虚拟机的时间与真实时间不一致的现象

 

 

 

 

  1. 概述

时钟是计算机运行的基础,虚拟机正常运行并调度任务的必要条件就是对时钟中断的虚拟化。

虚拟化技术中可以大致分为CPU虚拟化、内存虚拟化、I/O虚拟化三个部分,中断虚拟化属于CPU虚拟化的范畴。中断是处理器提供给系统程序的重要功能,是CPU和外设之间的一种交互方式。而时钟虚拟化是基于中断模拟的基础上,通过中断让计算机意识到时间。时钟虚拟化的关键是正确的模拟时钟中断。

时钟中断所代表的时间间隔会在操作系统初始化的时候由软件和硬件协商好。如果模拟时钟中断的准确度不足,会发生什么?

对用户直观的影响是:

  1. 影响虚拟机的实时性,如应用卡顿、程序调度等:假设在电脑上播放视频,原先一帧的画面播放1S时间,用户能正常观看视频,但是时钟中断响应不及时,操作系统认知的1S是实际的2S,此时一帧画面实际停留了2S时间,此时对于用户来说感觉到的就是视频播放卡顿。
  2. 时钟漂移:当时钟中断处理不及时,实际经过3S的时间才注入一个时钟中断,此时虚拟机只认为经过了1S,长此以往,虚拟机中的时间就会比实际的时间慢,即可能出现实际已经是10:00,而虚拟机中才8:00的现象。

针对上述问题现象,锐捷云桌面提供了时钟补偿策略来修正时钟偏移现象,并改善虚拟化的实时性。保证了虚拟机内部的时间与物理机时间的一致性。

  1. 技术介绍
    1. 基础知识
      1. 计算机硬件时钟的原理

计算机是如何感知到时间的呢?如同被困荒岛中人使用“正”字来记录在荒岛上经过的时间,每一天写一笔,对笔画的计数就能够知道时间一样,计算机通过硬件的“振荡器+计数器”来实现计时的。总结来说就是通过对固定频率的事务统计次数就能够知道经过的时间。

如图 2.1?1 振荡器的电路所示,振荡器在通电的情况下,连通的电路使得电磁铁把金属开关拉了下来,此时电路不再连通,电磁铁不再具有磁性,金属开关又弹回原位,不断反复。可以看到一旦通电,振荡器就不需要人干涉,可以完全自发的工作,这就是计算机通电后自动运行的基础。(现在使用的是晶体振荡器,原理类似)。

2.1?1 振荡器的电路

振荡器也被称为时钟(clock),是产生时钟中断的依据。振荡器的输出在0和1之间按照固有规律交替变化,将这种输出信号称为时钟信号。振荡器的频率是固定的。

2.1?2 时钟信号

此时对振荡器的输出信号进行计数,能够知道经过时间间隔了,最后硬件再通过中断机制将该间隔告知给PC。

综上所述,时钟硬件每经过一个时间间隔时产生一个中断告知计算机,这个中断就称为时钟中断。因此当计算机接收到时钟中断,就知道一段的时间过去了。

      1. 传统的时钟虚拟化

传统时钟虚拟化在中断模拟的基础上,通过软件定时器设置周期性任务,实现定时产生时钟中断的功能。

时钟中断的模拟需要实现生成、采集和注入的整个过程。中断的生成一般是由各个模拟设备产生,采集和注入则是由模拟的中断控制器完成。中断控制器的两大功能:检测是否有中断产生和将中断注入虚拟机。

虚机在运行过程中不断地在GuestOS与HostOS之间切换,如图 2.1?3 VM entry和VM exit所示,从主机(VMM)到虚机称为VM Entry,从虚机切换到主机称为VM Exit。VMXON和VMXOFF是用来开启/退出VMX操作模式的指令。虚机中断模拟机制是在VM Entry的时候向虚机注入中断的信息。

 

2.1?3 VM entryVM exit

当模拟的时钟硬件产生中断后,就依据图 2.1?4 中断注入流程将中断注入到虚拟机中。首先将中断交给中断控制器,中断控制器根据中断的优先级将中断注入虚机,中断是通过vCPU从VMM切换到虚机运行环境时注入的。所以vCPU如果在运行中,就需要通过IPI来使得vCPU退出到VMM中。

2.1?4 中断注入流程

      1. 传统时钟虚拟化的问题

在PC中,时钟中断的优先级是很高的,通过高优先级来保证中断的及时处理;但是虚拟化中通过软件实现中断,此时的优先级就自然被降低了,软中断无法保证自身被及时处理。现在假设一个时钟中断代表1S的间隔(实际中,时钟中断代表的时间间隔是毫秒级的),如果模拟的中断响应不及时,就会导致前一个中断还未注入虚拟机就又产生了一个新的时钟中断,而中断控制器只能处理一个相同的中断,所以产生的两个中断实际只注入一个到虚拟机中,虚拟机只接受到一个中断认为经过了1S的时间,但是实际上已经经过了2S。此时虚拟机对时间的感知就与真实时间出现了偏差。

因此影响了时钟的准确性以及服务的实时性,从而导致了概述中的问题。

    1. 锐捷云桌面的时钟虚拟化技术

针对上述问题现象,锐捷云桌面在传统时钟虚拟化的基础上提出了时钟补偿方案。

时钟补偿机制在中断模拟的基础上增加了包括两个方面内容:监控模块的模拟、补偿时钟设备的模拟。

      1. 监控管理模块

虚拟机完成中断服务之后,会设置中断控制器的标志位。监控模块根据中断控制器标志位来判断时钟中断是否成功注入虚拟机中,若注入失败,便记录注入失败的中断数量,并唤醒补偿的时钟设备。

      1. 时钟补偿设备

除了传统时钟设备的功能,时钟补偿设备还实现以下功能:

(1)设备初始化的时候截获虚拟机操作系统所设定的时钟中断的频率;

(2)设备根据截获的频率和监控模块所记录的中断数量,来设定不同频率(比操作系统设定的频率快)的软件定时器来执行周期性任务:时间一到便产生一个时钟中断,传递给中断控制器;

(3)监测需要补偿的时钟中断的数量,当时钟中断数量为0时,取消定时任务。

综上所述,监控模块统计时钟中断的注入情况,记录注入失败的时钟中断数;将需要补偿的时钟中断告知给时钟设备,时钟设备以更快的频率产生时钟中断,最后中断控制器将时钟中断注入虚拟机,保障了虚拟机时钟正常。

  1. 结束语

时钟虚拟化是云桌面的关键技术之一,而锐捷云桌面的时钟补偿机制保证了云桌面时间的准确性,改善了实时性,解决了视频卡顿与时钟漂移的问题。

 

相关推荐:

相关标签:

点赞

更多技术博文

任何需要,请联系我们

返回顶部

请选择服务项目
关闭咨询页
售前咨询 售前咨询
售前咨询
售后服务 售后服务
售后服务
意见反馈 意见反馈
意见反馈
更多联系方式