定义

  1. 通过虚拟化技术将一台计算机虚拟为多态逻辑计算机。简单来说:虚拟化使得在一台物理的服务器上可以跑多台虚拟机
  2. 虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。
    1. 每台逻辑计算机可以运行不同的操作系统。
    2. 应用程序可以相互独立的运行在不同的空间内
  3. 物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)
  4. 显著提高资源使用率,和计算机工作效率

对比

虚拟化前 虚拟化后
每台主机一个操作系统 多个操作系统
软硬件结合,操作系统与硬件紧密结合 虚拟机独立于硬件,能在任何硬件上运行
死板 灵活

分类

  1. 全虚拟化:
    1. 完全虚拟化提供底层物理系统的全部抽象化,且创建一个新的虚拟系统,客户机操作系统可以在里面运行。不需要对客户机操作系统或者应用程序进行修改
    2. 客户机操作系统或者应用程序像往常一样运行,意识不到虚拟环境的存在——就是一个真实的物理环境一样
    3. 在虚拟机和硬件中间加了一层——Hypervisor,叫做虚拟监控器VMM
      1. 沟通 VM 和硬件,类似于一个翻译
      2. 可以运行在物理硬件之上——KVM;可以运行在另一个操作系统——QEMU WINE 全虚拟化
  2. 半虚拟化技术:
    1. 半虚拟化需要对运行在虚拟机上的客户机操作系统
    2. 这些客户机操作系统会意识到它们运行在虚拟环境里
    3. 进行修改并提供相近的性能,但半虚拟化的性能要比完全虚拟化更优越——因为在全虚拟化的基础上,增加了一个 API,将客户操作系统(GuestOS)发出的指令进行最优化,不需要 Hypervisor 消耗资源进行翻译。 半虚拟化

常见架构

  1. 寄居架构:在操作系统上运行虚拟化程序,依赖于操作系统
    1. 优点:简单,便于实现
    2. 缺点:依赖操作系统——操作系统不稳定,之上的GuestOS 再稳定也无用
    3. 例子:日常中几乎全是:WorkStation,VirtualBox
  2. 裸金属架构:直接在硬件上安装运行虚拟化程序,不依赖操作系统
    1. 优点:不依赖操作系统,灵活性更高
    2. 缺点:虚拟曾内核开发难度较大
    3. 例子:ESXI

参考

  1. https://www.bilibili.com/video/av67262505?p=3
  2. 半虚拟化和全虚拟化的区别