简述虚拟化技术(一型裸金属、二型宿主型、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. 硬件辅助虚拟化:结合了全虚拟化的兼容性和半虚拟化的性能,是目前虚拟化技术的发展趋势。
In 1998, VMware figured out how to virtualize the x86 platform, once thought to be impossible, and created the market for x86 virtualization. The solution was a combination of binary translation and direct execution on the processor that allowed multiple guest OSes to run in full isolation on the same computer with readily affordable virtualization overhead. The savings that tens of thousands of companies have generated from the deployment of this technology is further driving the rapid adoption of virtualized computing from the desktop to the data center. As new vendors enter the space and attempt to differentiate their products, many are creating confusion with their marketing claims and terminology. For example, while hardware assist is a valuable technique that will mature and expand the envelope of workloads that can be virtualized, paravirtualization is not an entirely new technology that offers an “order of magnitude” greater performance. While this is a complex and rapidly evolving space, the technologies employed can be readily explained to help companies understand their options and choose a path forward. This white paper attempts to clarify the various techniques used to virtualize x86 hardware, the strengths and weaknesses of each, and VMware’s community approach to develop and employ the most effective of the emerging virtualization techniques. Figure 1 provides a summary timeline of x86 virtualization technologies from VMware’s binary translation to the recent application of kernel paravirtualization and hardware-assisted virtualization.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值