虚拟化实现方式

VMM(Virtual Machine Monitor 虚拟机监视器)

  • 运行在硬件平台 Xen
  • 运行在操作系统里 KVM

完全虚拟化:VMM虚拟现实存在的平台,客户机感觉不到,操作系统不用修改

Intel的VTx 在处理器上引入一个新的执行模式用于虚拟机,当虚拟机运行在这个模式中,它的任何特权操作都会被处理器截获并报告VMM.VMM运行在正常模式下,接收到处理器报告后,解码目标指令,找到相应的虚拟化模块进行模拟,并把效果反映在特殊模式的坏境中

类虚拟化

VMM虚拟现实不存在的平台,虚拟平台对客户机操作系统进行修改,客户机也会主动适应。通过在源代码级别修改指令来避免虚拟化漏洞,对呀X86中难以虚拟化的指令,修改内核来避免,并自定义基于事务的高度优化的I/O协议,达到近似物理机的性能

  • 动态迁移:

    • 将虚拟机从一个物理机快速移到另一个,程序和网络保持连接。在目的服务器建立相同配置的虚拟机,同步各种内部状态,难点是内存同步,有脏页。如果有VTd设备(网卡),需要使用Bonding Drive,一个网络接口绑定多个网卡和hotplug 热插拔
  • 虚拟机快照:

    • 保存虚拟机某一时刻的硬盘、内存、CPU等信息
  • 虚拟机克隆:

    • 把一个虚拟机的状态完全复制到另一个虚拟机 但要修改某些配置 如MAC 避免冲突
  • P2V( Physical to Virtual Machine):

    • 将物理机的操作系统、数据从物理硬盘移到虚拟机 降低服务器虚拟化的使用门槛
  • Xen:

    • 起源于剑桥 最初基于类虚拟化,修改linux内核来实现处理器和内存虚拟化,引入I/O的前端/后端驱动架构实现设备虚拟化,能达到接近物理机的效果。之后支持硬件完全虚拟化,如Intel的VT AMD-V