Skip to main content

31 虚拟机

  • 资源大小不灵活:不需要太大资源,但无法申请很小的资源。
  • 资源申请不灵活:申请资源周期长。
  • 资源复用不灵活:不同的进程共享资源可能会产生冲突。

虚拟化方式

完全虚拟化(Full virtualization)

虚拟化软件模拟 CPU、内存、网络、硬盘,慢。

硬件辅助虚拟化(Hardware-Assisted Virtualization)

Intel 的 VT-x 和 AMD 的 AMD-V 从硬件层面弄一个新的标志位,表示当前是在虚拟机状态下,还是在真正的物理机内核下。

对于虚拟机内核,只要将标志位设为虚拟机状态,就可以直接在 CPU 上执行大部分的指令,不需要虚拟化软件在中间转述,除非遇到特别敏感的指令,才需要将标志位设为物理机内核态运行,大大提高效率。

查看物理 CPU 标志位是否打开:

Intel:grep "vmx" /proc/cpuinfo

AMD:grep "svm" /proc/cpuinfo

半虚拟化

优化资源访问

  • 虚拟化的本质是用 qemu 的软件模拟硬件,但是模拟方式比较慢,需要加速;
  • 虚拟化主要模拟 CPU、内存、网络、存储,分别有不同的加速办法;
  • CPU 和内存主要使用硬件辅助虚拟化进行加速,需要配备特殊的硬件才能工作;
  • 网络和存储主要使用特殊的半虚拟化驱动加速,需要加载特殊的驱动程序。