细说「计算虚拟化技术」

Posted Cloud云说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了细说「计算虚拟化技术」相关的知识,希望对你有一定的参考价值。

虚拟化,曾经是一个技术人员最不喜欢的词,因为对于一个搞工程科学的人来说,实在、量化、数据逻辑才是工作进行的根本。 但是现在,最前沿的 IT 技术工程师们狂热的爱上了这个词,因为它代表着一系列先进的技术和产品,掀起信息科学界又一轮技术的高潮。究竟什么是虚拟化?


通俗的定义来说,虚拟化就是把物理资源转变为逻辑上可以管理的资源,以打破物理结构之间的壁垒。未来,所有的资源都透明地运行在各种各样的物理平台上,资源的管理都将按逻辑方式进行,完全实现资源的自动化分配,而虚拟化技术就是实现它的理想工具。用一比喻来说,虚拟化技术的绝妙之处在于,终端用户在信息化应用中,感觉不到物理设备的差异、物理距离的远近以及物理数量的多少,按照自己正常习惯操作,进行需要的信息资源调用和交互。


针对不同的资源,虚拟化主要包含三个方面的内容:计算虚拟化、存储虚拟化和网络虚拟化,接下来咱们就一起认识下计算虚拟化技术。


计算虚拟化的分类

计算资源的虚拟化,可以归结为三个方面:

(1)CPU 虚拟化:由于多个 VM 共享 CPU 资源,需要对 VM 中的敏感指令进行截获并模拟执行。

(2)内存虚拟化:由于多个 VM 共享同一物理内存,需要相互隔离

(3)I/O 虚拟化:由于多个 VM 共享一个物理设备,如磁盘、网卡,一般借用 TDMA 的思想,通过分时多路技术进行复用。

【延伸知识】哪些资源需要受控?

  • CPU:多个 VM 共享 CPU 资源,对 VM 中的敏感指令进行截获并模拟执行

  • 内存:多个 VM 共享同一物理内存,需要相互隔离

  • I/O 设备:多个 VM 共享一个物理设备,如磁盘、网卡,通过分时多路技术进行复用


CPU 虚拟化

虚拟机 VM 共享 CPU,利用与原始操作系统类似的机制—通过定时器中断,在中断触发时陷入 VMM,从而根据调度机制进行调度。CPU 的虚拟化技术是一种硬件方案,支持虚拟技术的 CPU 带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM 会很容易提高性能,相比软件的虚拟实现方式会很大程度上提高性能。虚拟化技术可提供基于芯片的功能,借助兼容 VMM 软件能够改进纯软件解决方案。


由于虚拟化硬件可提供全新的架构,支持操作系统直接在上面运行,从而无需进行二进制转换,减少了相关的性能开销,极大简化了 VMM 设计,进而使 VMM 能够按通用标准进行编写,性能更加强大。另外,在纯软件 VMM 中,目前缺少对 64 位客户操作系统的支持,而随着 64 位处理器的不断普及,这一严重缺点也日益突出。而 CPU 的虚拟化技术除支持广泛的传统操作系统之外,还支持 64 位客户操作系统。

  • 对于 X86 处理器来说,其保护模式下一共有 4 个不同优先级,分别从 Ring 0 直到 Ring3。这些 Ring 的优先级随其所执行功能的不同也有所不同。其中 Ring 0 用于操作系统内核,优先级最高,拥有最高的「特权」,Ring 1 和 Ring 2 用于操作系统服务,优先级次之,Ring 3 用于应用程序,优先级最低;


  • 经典的虚拟化方法主要使用「特权解除」 (Privilege deprivileging) 和「陷入-模拟」 (Trap-and-Emulation) 的方式。即:将 Guest OS 运行在非特权级(特权解除),而将 VMM(Virtual Machine Monitor)运行于最高特权级(完全控制系统资源)。解除了 Guest OS 的特权后,Guest OS 的大部分指令仍可以在硬件上直接运行,只有当执行到特权指令时,才会陷入到 VMM 模拟执行(陷入-模拟)。


为便于理解,用一张图直观的了解 CPU 虚拟化技术。主要还是介绍X86架构的CPU虚拟化,作为虚拟化层最核心部分,其他内存和I/O虚拟化都依赖于CPU虚拟化实现。

细说「计算虚拟化技术」


内存虚拟化

内存虚拟化:把物理机的真实物理内存统一管理,包装成多份虚拟的内存给若干虚拟机使用。

细说「计算虚拟化技术」


I/O 虚拟化

  • 现实中的外设资源是有限的,为了满足多个客户机操作系统的需求,VMM 必须通过 I/O 虚拟化的方式来复用有限的外设资源

  • VMM 截获客户操作系统对设备的访问请求,然后通过软件的方式来模拟真实设备的效果


I/O 虚拟化-前后端驱动模型

  • 前端设备驱动将数据通过 VMM 提供的接口转发到后端驱动

  • 后端驱动对 VM 的数据进行分时分通道进行处理

细说「计算虚拟化技术」


Intel 硬件虚拟化技术

细说「计算虚拟化技术」

  • VT-x:处理器具有两种操作模式,VMX root operation 和 VMX non-root operation。VMM 自己运行在 VMX root operation 模式,VMX non-root operation 模式则由 Guest OS 使用。两种操作模式都支持 Ring 0 ~ Ring 3 这 4 个特权级,因此 VMM 和 Guest OS 都可以自由选择它们所期望的运行级别。主要在处理器中实现,允许虚拟机直接执行某些指令,减少 VMM 负担,以获得更稳定、快速的虚拟机。

  • VT-d:VT for Direct I/O,主要在芯片组中实现,允许虚拟机直接访问 I/O 设备,以减少 VMM 和 CPU 的负担。

  • VT-c:VT for Connectivity,主要在网卡上实现,包括两个核心技术:VMDq 和 VMDc。 

  • VMDq:通过网卡上的特定硬件将不同虚拟机的数据包预先分类,然后通过 VMM 分发给各虚拟机,以此减少由 VMM 进行数据包分类的 CPU 开销 。

  • VMDc:允许虚拟机直接访问网卡设备。Single Root I/O Virtualization(SR-IOV)是 PCI-SIG 规范,可以将一个 PCIe 设备分配给多个虚拟机来直接访问。

  • 「可信执行技术 (TXT)」,通过使用这种高级的 TXT 模块芯片,可以有效确保用户计算机免受各种安全威胁。 主要是通过硬件内核和子系统来控制被访问的计算机资源。Intel TXT 可确保虚拟机器监控程序 (virtual machine monitor) 具备更强的抗攻击能力,可发现目前传统软件信息安全解决方案无法侦测到的攻击。透过这种硬件防护隔离指定的内存,系统能保护各分隔虚拟环境下的数据,避免其它分隔环境内的软件进行未经授权的存取。


讲完了计算虚拟化技术,下次和大家分享存储虚拟化技术......


  • 虚拟化技术知识体系架构图


以上是关于细说「计算虚拟化技术」的主要内容,如果未能解决你的问题,请参考以下文章

云计算虚拟化技术和容器技术详解

云计算底层技术剖析——虚拟化技术

云计算底层技术之虚拟化技术

2.云计算主流技术

云计算开发者必会的虚拟化技术入门

(12)虚拟化技术之虚拟化技术简介