当前位置:   article > 正文

简述虚拟化技术(一型裸金属、二型宿主型、Ring与敏感指令、全虚拟化、半虚拟化、硬件辅助虚拟化)

硬件辅助虚拟化

什么是虚拟化?

将一种形式的资源, 抽象为另一种形式。解除硬件与 OS 间紧耦合关系。充分利用资源。

Hypervisor 与 VMM是什么?

实际两者描述的是一个概念,实现了虚拟化平台的基本功能的抽象层
VMM:Virtual Machine Monitor

一型和二型虚拟化

一型(裸金属型)

VMM直接位于硬件之上,不经过操作系统,或者它本身就是这个操作系统。VMM作为中间层,直接管理硬件资源,并在其上运行多个虚拟机。
因为直接与硬件交互,一型虚拟化提供了较好的性能和资源利用率。
VMware Esxi、Huawei FusionCompute的CNA采用的是这种架构。
这种架构的优势在于
在这里插入图片描述

二型(宿主机型)

这种虚拟化方式,VMM是作为一个应用软件架设在OS之上,是基于OS完成安装的,类比于正常的软件,管理虚拟机的创建和运行。
VMware Workstation、VirtualBox、早期的VmwareEsxServer就是这种类型。
因为经过了一层OS的翻译,性能相较于一型较差,所以业务场景一般采用的都是一型虚拟化
在这里插入图片描述

Ring与三类虚拟化

Ring环

早期OS在设计时,设计了一个Ring0-Ring3的权限环机制。其中只用到了Ring0和Ring3。
Ring0被称为内核态,即对硬件的敏感操作均在此;Ring3被称为用户态,一般应用软件的正常操作均在此。
Ring1-2是驱动层

关于内核态和用户态,可以自行查阅《操作系统》方面知识

当程序运行在用户模式(Ring 3)时,如果需要执行一个需要更高权限的指令,比如直接访问硬件设备,它会触发一个陷阱(trap),操作系统会捕获这个陷阱并决定是否允许该操作。如果允许,操作系统会将CPU切换到更高的特权级别(如Ring 0或1)来执行该指令
但在虚拟化环境中,
在这里插入图片描述

17条敏感指令

在传统的x86架构中,存在一些指令被认为是**“敏感”**的,因为它们能够影响系统的安全和稳定性。这些指令包括但不限于:

  1. 访问或修改控制寄存器的指令(如CR0, CR3, CR4)
  2. 访问或修改中断描述符表(IDT)
  3. 执行I/O操作
  4. 管理内存分页和分段机制
    这些指令在虚拟化环境中被称为“敏感指令”,因为它们不能由客户操作系统直接执行。
    但是在虚拟化之下,我们需要让虚拟机有能力完成这些敏感指令的操作,因此诞生了三种不同的虚拟化解决方案。

全虚拟化

这是VMware提出的解决方案: BT, Binary Translation 二进制翻译技术, 即将特权指令通过VMM翻译之后传出, 最后再把结果传回给虚拟机。
通过这样的方式, 就成功的欺骗了虚拟机, 让它以为自己在 0 环,即虚拟机不知道自己是虚拟机。
全虚拟化技术不需要修改客户操作系统,因此具有很好的兼容性和可移植性。
但这个方式有个问题,所有的指令都需要VMM进行翻译,性能折扣太高了
在这里插入图片描述

半虚拟化

半虚拟化指的是虚拟机知道自己是虚拟机
半虚拟化技术是将完全虚拟化技术做为底层支撑,通过修改虚拟机操作系统内核的方式,增加专用 API 接口,将处理敏感指令的方式进行修改,由VMM或其他的方式进行执行。

在这里插入图片描述
半虚拟实际运行时,要实现定制化的功能,首先要了解 API 的特性,并围绕 API 定制对应的功能,才能在已改变内核的操作系统中实现。
极具代表性的是Xen。它通过Domain0进行敏感指令的操作,如下图:虚拟机需要操作逻辑卷,通过发送请求到Domain0,由Domain0与硬件交互,再返回信息到虚拟机。
在这里插入图片描述
由于半虚拟化对于内核需要进行修改,这只能针对于开源的操作系统。因此Windows是不能在半虚拟化主机上进行虚拟化的。

硬件辅助虚拟化

以上两种都是在当初CPU不支持虚拟化时的解决方案,而如今的CPU大部分已经支持虚拟化,如Intel的VT-x或AMD的AMD-V。
CPU提供专门的硬件支持来帮助VMM更高效地管理虚拟化环境。这些技术允许VMM运行在一个新的模式(如VMX root mode),而虚拟机操作系统运行在VMX non-root mode,这样就能够更直接地执行特权指令,同时保持系统的安全性和隔离性,减少了对软件模拟的依赖,从而提高了性能。这些技术在硬件层面提供对虚拟化的支持,允许Hypervisor更高效地管理虚拟机
硬件辅助虚拟化结合了全虚拟化的兼容性和半虚拟化的性能优势,因为它允许未修改的操作系统运行,同时减少了虚拟化的软件开销。硬件辅助虚拟化大幅度提高了虚拟机的性能,特别是在处理大量的输入/输出操作时。
在这里插入图片描述

总结

  1. 一型虚拟化和二型虚拟化的区别在于是否直接架设在硬件之上。
  2. Ring:一种安全机制,用于分隔和保护操作系统及其运行的不同进程或任务。
  3. 全虚拟化:无需修改操作系统,兼容性好,但可能性能稍低。
  4. 半虚拟化:性能较高,但需要修改操作系统,应用范围受限。
  5. 硬件辅助虚拟化:结合了全虚拟化的兼容性和半虚拟化的性能,是目前虚拟化技术的发展趋势。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/681143
推荐阅读
相关标签
  

闽ICP备14008679号