首页/云/云平台与虚拟化速查/全虚拟化 Full Virtualization
虚拟化基础63 条

全虚拟化 Full Virtualization

全虚拟化下客户机操作系统无需修改即可运行:敏感指令由硬件辅助(VT-x/AMD-V)或二进制翻译接管,guest 感知不到自己运行在虚拟环境中。

云平台与虚拟化速查云更新于 2026-10-13

全虚拟化是什么

全虚拟化指 guest 操作系统无需任何修改就能运行在虚拟化层之上:敏感指令由 hypervisor 拦截处理,早期实现依赖二进制翻译,现代实现依赖 CPU 硬件辅助(Intel VT-x、AMD-V)。它的优点是兼容性最好,现成的物理机系统镜像可以直接迁移;代价是虚拟化本身带来的调度与 I/O 开销。

基本信息

guest 改动无需修改内核或安装专用驱动
依赖硬件辅助(VT-x/AMD-V)或二进制翻译
典型实现ESXi、Hyper-V、KVM + 硬件辅助
优点兼容性好,物理机镜像可直接迁移
局限缺少硬件辅助时性能显著下降,仅适合实验

典型使用场景

  • 同一台宿主上并行运行不同内核版本或不同发行版的系统
  • 物理机迁移上云(P2V/V2V),尽量不改动原系统
  • 搭建开发与实验环境,快速克隆多套系统
  • 运行厂商不提供半虚拟化驱动的老系统

确认硬件辅助可用

确认硬件辅助可用
grep -m1 -oE 'vmx|svm' /proc/cpuinfo   # vmx = Intel VT-x;svm = AMD-V
ls -l /dev/kvm                        # 存在且可读写才说明可以使用 KVM 加速
kvm-ok                                # Debian/Ubuntu 上的检查工具(kvmtool 包)
# BIOS/UEFI 中需开启虚拟化选项,否则 CPU 标志不会出现

虚拟化方式对比

方式guest 是否需改典型实现
全虚拟化不需要修改ESXi、Hyper-V、KVM + 硬件辅助
半虚拟化需要(前端驱动/改内核)Xen PV、virtio 系列设备
硬件辅助虚拟化不需要修改VT-x / AMD-V 扩展,常与全虚拟化叠加使用
缺少硬件辅助时 QEMU 可用 TCG 纯软件模拟运行,但性能通常只相当于物理机的一小部分,仅适合实验与临时环境。
嵌套虚拟化需要在宿主显式开启(如 KVM 的 nested 模块参数);公有云实例是否开放 VT-x 取决于厂商与实例规格,购买前确认。

判断与选型要点

  • 看 guest 是否需要改内核:不需要改的基本属于全虚拟化路径
  • 看宿主 CPU 标志:没有 vmx/svm 就只能靠软件模拟,性能不可用于生产
  • 看 I/O 路径:磁盘与网卡是否走 virtio 等优化驱动,直接决定实际吞吐
  • 看迁移需求:全虚拟化的镜像通用性好,跨平台搬运成本最低
全虚拟化与半虚拟化并非互斥:现代 KVM 常见组合是 CPU 走硬件辅助全虚拟化,磁盘与网卡使用 virtio 半虚拟化驱动以获得更好的 I/O 性能。

易错点

  • 在云主机里做虚拟化实验前未确认实例规格是否开放 VT-x,KVM 加速起不来
  • 把「全虚拟化」与「无性能损耗」画等号,忽略虚拟化自身的调度与 I/O 开销
  • 在 BIOS/UEFI 中未开启虚拟化开关,宿主看不到 vmx/svm 标志,误判为硬件不支持
  • 虚机内未安装对应厂商的优化驱动(如 VirtIO、VMware Tools),磁盘与网络性能明显偏低

数据来源与参考

  • Intel 虚拟化技术文档(VT-x)
  • Linux 内核文档 Documentation/virt/kvm
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌