Skip to content

Latest commit

 

History

History
54 lines (40 loc) · 2.65 KB

virtualization.md

File metadata and controls

54 lines (40 loc) · 2.65 KB

kata涉及到的虚拟化技术 [1]

vm-to-tech

虚拟化介绍 [2]

  • 全虚拟化: guest中执行特权指令时,VMM trap 异常, 由VMM模拟执行并返回。 不需要修改GuestOS操作系统
  • 半虚拟化(Paravirtualization): 修改客户操作系统代码,将原来在物理机上执行的一些特权指令,修改成可以和VMM直接交互的方式。
  • 硬件辅助虚拟化(Hardware-assistant full virtualization): Intel的VT-x和AMD的AMD-V, 引入新的指令和运行模式,使VMM 和Guest OS分别运行在不同模式(ROOT模式和非ROOT模式)下,且Guest OS运行在Ring 0下。

IO虚拟化介绍 [4]

虚拟化技术发展主线是解决CPU、内存虚拟化问题; 其次重要的就是IO虚拟化问题, 也衍生出如下分类

io-virtualization

virtio [3]

  • why? 如上面全虚拟化介绍,如果IO操作全由QEMU拟效率不高,可以在Guest中使用半虚拟化驱动提升IO性能
  • what?IO半虚拟化通用方案, Guest需要知道自己运行在虚拟化环境中,进而根据Virtio标准和Hypervisor协作,从而提高IO性能。目前主流Linux和windows都支持virtio。
  • how?
    • 前端driver 位于Guest 内核的驱动程序模块
    • 后端driver 在Host 用户空间的QEMU中实现
    • 前后端消息传输层, vring, 逻辑层

virtio-arch

  • 不同的IO设备虚拟化需求 对应不同的virtio模块:
    • virtio_net[7]是虚拟以太网卡, 是virtio迄今为止支持的最复杂的设备
      • virtio网络的演化之路: virtio ---> vhost-net ---> vhost-user [8]
    • virtio_fs
    • vsock
    • virtio-blk
    • virtio-balloon/mem

vfio

  • 需要硬件支持
  • PCI设备pass-through到Guest,不经过VMM; virtio要经过VMM这一层
  • 安全容器GPU,vfio-pci到虚机 云原生GPU
  • vfio vs. virtio(Intel 82599ES iperf测试对比) [5]

SR-IOV

  • 一个物理设备(PF)拆分成多个VF,将VF pass-through VMM 到Guest
  • vfio vs. SR-IOV [6], 解决使用vfio设备被单个实例独占的问题