虚拟化概述

虚拟化简介

1、虚拟化是什么:虚拟化是一种技术,是一种能够将物理资源转变为灵活使用的资源的技术。使用虚拟化技术,咱们能够在一台物理服务器上模拟出多个独立的服务器来一般,应用程序须要安装在操做系统上,而一台物理服务器只能同时 运行一个操做系统,使用了虚拟化之后,这些模拟出来的每一个服务器均可以有本身独立的操做系统。这样,至关于在一台服务器服务器上同时能够运行多个操做系统了。器上模拟出多个独立的服务器来
常见虚拟化名词:
虚拟化概述前端

虚拟化技术的核心——Hypervisor(虚拟机监视器),也能够被称为 VMM(Virtual Machine Manager)
在一个 Host Machine 之上能够创建并运行多个 Guest Machine。windows

2、计算虚拟化的分类:
根据 Hypervisor 的不一样类型,咱们将虚拟化分为 I 型和 II 型两种后端

  • Ⅰ型是裸机型,直接运行在硬件设备上的服务器上直接部署Hypervisor,而后部署虚拟机,每一个虚拟机上跑操做系统Linux或者win.好比fusionsphare(华为),VMware EsxServer
  • Ⅱ型一种是主机托管型,运行在具备虚拟化功能的操做系统上的好比windows上的虚拟化软件就有VMware workstation(VMware公司),hyper-v(微软公司),MacBook上虚拟化软件:VMware fusion
    虚拟化概述
    Hypervisor (虚拟机监视器)主要实现两个基本功能:首先是识别、捕获和响应虚拟机所发出的 CPU 特权指令或保护指令;其次,它负责处理虚拟机队列和调度,并将物理硬件的处理结果返回给相应的虚拟机

3、虚拟化特色:不管是 I 型仍是 II 型虚拟化,都具有分区、隔离、封装和独立的特色。服务器

  • 分区:对物理机分区,可实如今单一物理机上同时运行多个虚拟机;
  • 隔离:同一物理机上多个虚拟机相互隔离相互不受影响
  • 封装:封装意味着将整个虚拟机(硬件配置、BIOS 配置、内存状态、磁盘状态、CPU 状态)储存在独立于物理硬件的一小的文件或文件夹中只需复制几个文件就能够随时随地根据须要复 制、保存和移动虚拟机。
  • 独立:虚拟机在封装为独立文件后,虚拟机迁移只须要把虚拟机设备文件和配 置文件或磁盘文件复制到另外一台主机上运行便可

4、cpu虚拟化
1)CPU的分级保护域:
虚拟化概述
CPU 架构分红 4 个层级——Ring0、Ring一、Ring2 和 Ring3,Ring0 的权限最高,Ring3 最低。
Ring0 的权限能够直接操做硬件,通常只有操做系统和驱动会容许拥有此权限。Ring3 的权限最低,全部的应用程序均可以拥有此权限
2)操做系统通常发出的命令分为两种类型:特权指令和普通指令架构

  • 特权指令:必须在Ring 0级别才能运行
  • 普通指令:在Ring 3 级别上就能运行
    在虚拟化的环境下还有一种指令叫作敏感指令。敏感指令是修改虚拟机的运行模式或宿主机状态的命令,也就是说是将 Guest OS 中本来须要在 Ring 0 模式下才能运行的特权指 令剥夺特权后,交给 VMM 所执行的指令。
    3)大型机的 CPU 虚拟化方式:大型机 CPU 虚拟化采起的是“特权解除”和“陷入模拟”方法,这种方法也被称为经典虚拟化方式即精简指令集 RISC 计算机架构。
    Risc架构:它的基本原理是,将 Guest OS 运行在非特权级(即特权解除),而将 VMM 运行于最高特权级(即彻底控制系统资源)
    若是虚拟机 Guest OS 发出特权操做指令怎么执行呢?由于所 有虚拟机的系统都被解除了特权,因而“陷入模拟”就发挥做用了,它解除了 Guest OS 的特 权后,Guest OS 的大部分指令仍能够在硬件上直接运行,只有当执行到特权指令时,才会陷入 到 VMM 模拟执行(陷入-模拟)。由 VMM 代替虚拟机向真正的硬件 CPU 发出特权操做指令
    虚拟化概述虚拟化概述
    4)x86() 架构的 CPU 指令集是不一样于 RISC 架构的 CISC 架构

CISC 架构的 CPU 指令集的特权指令和敏感指令并不彻底重合,具体来 说,基于 x86 的 CISC 指令集有 19 条敏感指令不属于特权指令的范畴,这部分敏感指令运行在 CPU 的 Ring 1 用户态上。这部分的命令不属于特权命令所以没法被VMM捕获,所以x86 没法使用“特权解除陷入模拟”的虚拟化技术。
虚拟化概述
所以架构师提出了三种新方法:全虚拟化、半虚拟化、硬件辅助虚拟化
全虚拟化(Vmware提出):将全部虚拟机发出的操做系统请求转发到虚拟机监视器(VMM)虚拟机监视器对指令进行二进制翻译若是指令是特权指令或敏感指令则进入VMM模拟执行,而后调度到 CPU 特权级别Ring0上执行,若是只是应用程序指令则直接在 CPU 非特权级别上执行
虚拟化概述
半虚拟化(Xen提出):经过修改虚拟机操做系统Guest OS 虚拟机操做系统会使用”(Hypercall)超级调用来替换虚拟化中的敏感指令 若是虚拟机发出的指令是这些用Hypercall 那就直接交给虚拟机监视器VMM ,虚拟机监视器在调度指令到硬件CPU上执行
虚拟化概述
硬件辅助虚拟化:即CPU 直接支持虚拟化功能,而且能够识别敏感指令
目前主流的 x86 主机的 CPU 都支持硬件虚拟化技术,Intel 研发VT-x 的 CPU,AMD 推出 AMD-V 的 CPU这两种技术都为 CPU 增长了新的执行模式 root 模式,可让虚拟化监视器 VMM 运 行在 root 模式下,而 root 模式位于 CPU 指令级别 Ring 0 的下面。特权和敏感指令自动在 Hypervisor 上执行
虚拟化概述ide

5、内存虚拟化:
一般状况下物理主机在使用内存地址空间时都是按照
一、内存地址都是从物理地址0开始的 二、内存地址空间都是连续分配的
引入虚拟化后出现了问题:首先是要求内存地址空间都从物理地址 0 开始,显然物理地址为0的内存地址空间只有一个,没法同时知足全部虚拟机内存使用都要从 0 开始的要求; 其次,地址连续分配问题。即便能够为虚拟机分配连续的物理地址,可是内存使用效率不高,缺少灵活性。
因此引入内存虚拟化技术,。内存虚拟化就是把物理机的真实物理 内存统一管理,包装成多份虚拟的内存给若干虚拟机使用。内存虚拟化技术的核心在于引入一层 新的地址空间——客户机物理地址空间,客户机(Guest)觉得本身运行在真实的物理地址空间 中,实际上它是经过 VMM 访问真实的物理地址的,在 VMM 中保存客户机地址空间和物理机 地址空间之间的映射表,
虚拟化概述操作系统

6、I/O虚拟化:
一、全虚拟化:经过 VMM 为虚拟机模拟出一个与真实设备相似 的虚拟 I/O 设备,当虚拟机对 I/O 设备发起 I/O 请求时,VMM 截获虚拟机下发的 I/O 访问请 求,再由 VMM 将真实的访问请求发送到物理设备进行处理
二、半虚拟化:它须要创建一个特权级别的 虚拟机,即特权虚拟机。半虚拟化方式要求各个虚拟机运行前端驱动程序,当须要访问 I/O 设备 时,虚拟机经过前端驱动程序把 I/O 请求发送给特权虚拟机,由特权虚拟机的后端驱动收集每一个 虚拟机所发出的 I/O 请求,再由后端驱动对多个 I/O 请求进行分时分通道处理。特权虚拟机运行 真实的物理 I/O 设备驱动,将 I/O 请求发送给物理 I/O 设备,I/O 设备处理完成后再将结果返回 给虚拟机。即主动让虚拟机把 I/O 请求发送给特权虚拟机,再由特权虚 拟机访问真实的 I/O 设备
虚拟化概述
Domain 0 就是特权虚拟机,Domain U 则为用户虚拟机翻译

3.硬件辅助虚拟化:硬件辅助虚拟化不一样于前面两种方式,它是直接将 I/O 设备驱动直接 安装在虚拟机操做系统中3d

7、主流的计算虚拟化:主流的虚拟化技术有不少,通常咱们会使用开源和闭源来进行分类。开源的包含 KVM 和 Xen,闭源的包括微软的 Hyper-v、VMware 的 vSphere、华为的 FusionSphere
虚拟化概述blog

相关文章
相关标签/搜索