云计算虚拟化技术与开发-------虚拟化技术应用第二章内容(CPU虚拟机X86要解决的问题、VT-x、VMX、vCPU、EPT、VT-d)

这篇具有很好参考价值的文章主要介绍了云计算虚拟化技术与开发-------虚拟化技术应用第二章内容(CPU虚拟机X86要解决的问题、VT-x、VMX、vCPU、EPT、VT-d)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

第二章:虚拟化实现技术架构

CPU虚拟机要解决的问题(x86处理器结构漏洞)及软硬件解决方案

intel VT-x的技术特点,VMX(非根操作)的操作模式及操作流程

vCPU的组成和基本操作

内存虚拟化的地址映射问题

Intel EPT的基本概念及地址转换实现过程

Intel VT-d的技术特点以及DMA重映射过程

 TUN/TAP设备的工作原理

KVM的系统框架结构、QEMU和KVM的关系

KVM的初始化过程


  • 第二章:虚拟化实现技术架构

CPU虚拟机要解决的问题(x86处理器结构漏洞)及软硬件解决方案

        要解决的问题在x86体系结构中实现虚拟化,需要客户机系统一下加入虚拟化层,来实现物理资源的共享。因此,这个虚拟化层应该运行在 Ring0 级别,而客户机操作系统只能运行在 Ring0 的以上的级别。但是,客户机操作系统中的特权指令,如果不运行在 Ring0 级别,将会有不同的 语义,产生不同的效果,或者根本不起作用,这是处理器结构在虚拟化设计上存在的缺陷,这 些缺陷会直接导致虚拟化漏洞。为了弥补这种漏洞,在硬件还未提供足够的支持之前,在半虚拟化中,客户机操作系统和虚拟花平合必须兼容,否则虚拟机无法有效操 作宿主机。x86 系统结构下处理器虚拟化如图 2-1 所示。

        解决方法基于软件:基于软件的虚拟化技术就已经先给出了两种可行的解决方案:全虚拟化和半虚拟化。全虚拟化可以采 用二进制代码动态翻译技术(Dynamic Binary Translation)来解决客户机的特权指令问题,这 种方法的优点在于代码的转换工作是动态完成的,无须修改客户机操作系统,因而可以支持多 种操作系统。而半虚拟化通过修改客户机操作系统来解决虚拟机执行蛙权拼令的问题。被虚拟 化平台托管的客户机操作系统需要修改其操作系统,将所有敏感指令替换为对底层虚拟化平台的超级调用。

        解决方法基于硬件:目前,Intel和AMD公司分别推出了硬件辅助虚拟化技术Intel VT和AMD SVM来更高效,更容易的实现虚拟化.

intel VT-x的技术特点,VMX(非根操作)的操作模式及操作流程

 VT-x的技术特点:能够降低(甚至消除)多个虚拟机操作系统之间的资源争夺和限制,从硬件上极大地改善虚拟机的安全性和性能,有助于提高基于软件的虚拟化解决方案的灵活性与稳定性。. IntelVT-x技术可以消除VMM(VirtualMachineMonitor虚拟机监视器)参与虚拟机“中断”请求的处理与特定指令的执行.云计算虚拟化技术与开发-------虚拟化技术应用第二章内容(CPU虚拟机X86要解决的问题、VT-x、VMX、vCPU、EPT、VT-d)

 VMX的操作模式及操作流程:

        有两种VMX操作模式:VMX 根操作(root operation) 与VMX 非根操作(non-root operation)。操作流程如下:

  1. 通过CPUID指令判断VMX功能是否被当前处理器支持;
  2. 如果当前处理器支持VMX功能,那么通过设置CR4.VMXE [bit13] = 1来打开VMX功能;
  3. 通过VMXON指令开启VMX功能,并且激活VMM;
  4. 在VMX中可以通过VM Entry和VM Exit来进入客户虚拟机或者返回到VMM中,即切换到VMX非根操作模式或者切换到VMX根操作模式,也可以利用此操作来切换运行的客户虚拟机;
  5. 通过VMXOFF来关闭VMX功能,从而终止VMX的操作。

vCPU的组成和基本操作

         vCPU的组成部分一般可以分为两部分:一是VMCS结构,其中存储的是由硬件使用和更新的内容,这主要是虚拟寄存器;二是VMCS没有保存而由VMM使用和更新的内容,主要是VCMS以外的部分。

        vCPU的具体操作如下:

(1)vCPU 的创建:创建 VCPU 实际上是创建 vCPU 描述符。由于 vCPU 描述符是一个结构体,因  此创建 vCPU 描述符就是分配相应大小的内存。vCPU 描述符在创建之后,需要进一步初 始化才能使用。

( 2)vCPU 的运行:vCPU 创建并初始化好之后,就会被调度程序调度运行,调度程 序会根据一定的策略算法来选择 vCPU 运行。

(3)vCPU 的退出:和进程一样,vCPU 作为调度单位不可能永远运行,总会因为各种原因退出,例如执行了特权指令、发生了物理中断等,这种退出在 VT-x 中表现为发生 VM-Exit。对 vCPU 退出的处理是 VMM 进行 CPU虚拟化的核心,例如模拟各种特权指令。

(4)vCPU 的再运行:指 VMM 在处理完 vCPU 的退出后,会负责将 vCPU 投入再运行。

内存虚拟化的地址映射问题

 包含了两个问题:

(1)实现地址空间的虚拟化,维护宿主机物理地址和客户机物理地址之间的映射关系。

(2)解惑宿主机对客户及物理地址的访问,并根据所记录的映射关系,将其转换成宿主机物理地址。

解决方案:解决第一个问题inert公司提供了EPT技术,AMD公司提供了AMD NPT技术直接在硬件上支持GVA到GPA到HPA的两次地址转换,大大降低了内存虚拟化的难度。解决第二个问题最简单的解决方法就是让客户及对宿主机物理地址空间的每一次访问都触发异常,由VMM查询地址传唤表模仿其访问,但是这种性能很差

Intel EPT的基本概念及地址转换实现过程

云计算虚拟化技术与开发-------虚拟化技术应用第二章内容(CPU虚拟机X86要解决的问题、VT-x、VMX、vCPU、EPT、VT-d)

 

 Intel EPT的基本概念:EPT是intel为内存虚拟化而设计的一种硬件机制,主要是是为了实现Guest对于物理内存的访问控制

为了简化内存虚拟化的实现,以及提升内存虚拟化的性能,Intel推出了EPT(Enhanced Page Table)技术,即在原有的页表基础上新增了EPT页表实现另一次映射。这样,GVA-GPA-HPA两次地址转换都由CPU硬件自动完成。

转换实现过程:

通过EPT的GVA和HPA大概翻译的过程:

  1. 处于非根模式的CPU加载guest进程的gCR3;
  2. gCR3是GPA,cpu需要通过查询EPT页表来实现GPA->HPA;
  3. 如果没有,CPU触发EPT Violation, 由Hypervisor截获处理;
  4. 假设客户机有m级页表,宿主机EPT有n级,在TLB均miss的最坏情况下,会产生MxN次内存访问,完成一次客户机的地址翻译;

Intel VT-d的技术特点以及DMA重映射过程

         Intel VT-d是IOMMU技术在intel上的实现,全称是Intel Virtualization Technology for Direct I/O,它是Intel虚拟化技术的一部分,主要针对的是I/O子系统,它的实现主要是通过在硬件上引入重定向单元,该硬件重定向单元用于对I/O子系统的DMA操作和中断传递进行重定向,从而辅助VMM(Virtual Machine Monitor)实现I/O子系统的虚拟化。

        DMA重映射过程:云计算虚拟化技术与开发-------虚拟化技术应用第二章内容(CPU虚拟机X86要解决的问题、VT-x、VMX、vCPU、EPT、VT-d)

 TUN/TAP设备的工作原理

 Tun/Tap驱动程序工作原理 在计算机网络中,TUN与TAP是 操作系统内核 中的虚拟 网络设备 。 不同于普通靠硬件网路 板卡 实现的设备,这些虚拟的 网络设备 全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。

KVM的系统框架结构、QEMU和KVM的关系

KVM的系统框架结构如下:

1.  kvm 驱动  现在已经是Linux内核的一个模块了,它的作用主要是负责虚拟机的创建,虚拟内存的分配 虚拟CPU寄存器的读写和虚拟cpu的运行

2.  另一个组件是 Qemu    QEMU是一个通用的开源机器模拟器和虚拟器,其主要的功能是用于模拟虚拟机的用户空间组件,提供io 设备模型,访问外设的途径
云计算虚拟化技术与开发-------虚拟化技术应用第二章内容(CPU虚拟机X86要解决的问题、VT-x、VMX、vCPU、EPT、VT-d)

QEMU和KVM的关系:

 从QEMU角度来看,虚拟机运行期间,QEMU通过KVM模块提供的系统调用接口进行内核设置,由KVM模块负责将虚拟机置于处理器的特殊模式运行。

KVM的初始化过程

 (1)初始化 CPU 硬件。KVM 是基于硬件进行虚拟化,CPU 必须支持虚拟化技术。 KVM 会首先检测当前系统的 CPU,确保 CPU 支持虚拟化。当 KVM 模块被加载时,KVM 模块会先初始化内部数据结构。KVM 的内核部分是作为可动态加载内核模块运行在宿主 机中的,其中一个模块是和平台无关的实现虚拟化核心基础架构的 kvm 模块,另一个是 与硬件平台相关的 kvm_intel 模块或者是 kvm_amd 模块。

( 2)打开 CPU 控制寄存器 CR4 中的虚拟化模式开关,并通过执行特定指令将宿主机 操作系统置于虚拟化模式中的根模式。

(3)KVM 模块创建特殊设备文件/devkvm,并等待来自用户空间的命令(例如,是 否创建虚拟客户机,创建什么样的虚拟客户机等)。文章来源地址https://www.toymoban.com/news/detail-442626.html

到了这里,关于云计算虚拟化技术与开发-------虚拟化技术应用第二章内容(CPU虚拟机X86要解决的问题、VT-x、VMX、vCPU、EPT、VT-d)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【云计算学习教程】云计算虚拟化技术和容器技术详解_云计算虚拟化技术与容器技术

    这跟交通网络很相似,连接两个城市的交通网络具备的第一个功能就是汽车从一个城市到达另一个城市;第二个功能是控制到底走哪条线路最好。前者就是由公路组成的交通网络,后者就是交通控制系统。 下面我们再来看看传统的网络设备(比如一台路由器)的逻辑分层结构

    2024年04月22日
    浏览(55)
  • 虚拟化技术 — 虚拟机计算

    NUMA CPU 的主要优势是: 高内存带宽 :每一个 NUMA Node 内部有专用的内存总线访问本地内存,而所有 NUMA Nodes 之间使用共享总线访问远端内存。假设:一个具有 4 个 NUMA Nodes 的系统,每一个 Node 内部有 1GB/s 的存储带宽,同时共享总线也具有 1GB/s 的带宽。如果所有的 Core 总是使

    2024年02月04日
    浏览(57)
  • 云计算与虚拟化技术详解

    1、云计算资源类型 下图所示为计算机科学的虚拟化层次: 节点和网络物理硬件通过多层虚拟化的逻辑简化过程形成弹性化的计算、存储和网络带宽三者整合的虚拟资源池,也就是所讲的云计算模式。 可见云计算的概念是对最底层的物理硬件经过多次虚拟化抽象而形成的,这

    2024年01月17日
    浏览(43)
  • 《虚拟化与云计算技术》实训

    1.《虚拟化与云计算技术》 课程综合实训是计算机信息管理专业的一门重要的实践课程。通过实训,考核自身对云计算技术的理解,利用云服务器去部署各种环境的的能力;培养自身解决实际问题的职业综合能力,具备收集信息、制定计划、实施计划和自我评价的能力,锻炼

    2024年02月03日
    浏览(45)
  • 云计算资源虚拟化技术实现原理

    说到云计算,我们通常会看到这样的描述,“通过虚拟化技术实现”,不难看出,在云计算的概念中,虚拟化是非常基础,但又相当重要的一环,也是实现云计算的隔离性、扩展性、安全性等诸多问题的关键。 云计算的基础是虚拟化,但虚拟化只是云计算的一部分,云计算是

    2024年02月08日
    浏览(56)
  • 云计算——ACA学习 虚拟化技术概述

    作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。  公众号:网络豆云计算学堂  座右铭:低头赶路,敬事如仪 个人主页:  网络豆的主页​​​​​     本系列将会持续更新云计算阿里云ACA的学习,了解云计算及网络安全相关从业的基础知识,以

    2024年02月05日
    浏览(52)
  • 云计算虚拟化技术分析及其演进路线

    作者:禅与计算机程序设计艺术 云计算(Cloud Computing)是一种新的计算方式,它把计算能力从中心服务器扩展到一系列网络端点上。随着云计算的发展,越来越多的人将注意力集中在如何利用云资源来提高效率、节约成本以及加强竞争力上。因此,云计算技术的最新研究也就

    2024年02月08日
    浏览(44)
  • 云计算与虚拟化技术【课堂笔记】

    鲲鹏产业学院 云计算与虚拟化技术 课堂笔记 目录 一、云计算系统及演进 云计算的定义 云计算的三个阶段 云计算的三种服务模式 云计算的四种部署模型 二、未完待续 总结          云计算的本质是一种服务提供模型 ,通过这种模型可以随时、随地、按需地通过网络访

    2024年02月01日
    浏览(42)
  • 云计算采用的各种虚拟化技术比较

    KVM 是一个全虚拟化的解决方案。可以在 x86 架构的计算机上实现虚拟化功能。但 KVM 需要 CPU 中虚拟化功能的支持,只可在具有虚拟化支持的 CPU 上运行,即具有 VT 功能的 Intel CPU 和具有 AMD-V 功能的 AMD CPU。 Xen 也是 Linux 下的一个虚拟化解决方案,也将很快被编入内核中。Xen

    2024年02月01日
    浏览(42)
  • 虚拟化技术和云计算的关系

    1、云计算底层就是虚拟化技术。 (1)常见的虚拟化技术:VMware(闭源的,需要收费)、XEN、KVM (2)大部分公司用的虚拟化方案:XEN、KVM 2、虚拟化的历史 (1)1999年VMware首先推出了X86架构虚拟化产品 (2)2002年XEN开源了 (3)2006年以色列公司qumaranet开发了KVM虚拟化 (4)

    2024年02月03日
    浏览(100)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包