VMware虚拟机原理
·
文章目录
VMware 属于 Type‑2 虚拟化(宿主型虚拟机),运行在 Windows/macOS/Linux 主机操作系统之上,不是直接裸跑硬件;核心是把一台物理计算机的CPU、内存、磁盘、网卡等硬件,抽象虚拟出一套完整虚拟硬件,让客户机操作系统(虚拟机里的系统)以为自己在操作真实硬件。
一、核心组件
- VMware Workstation(上层应用)
用户交互界面,负责创建虚拟机、配置硬件、读写vmx配置文件,调度VMware内核驱动。 - VMware 内核驱动(vmmon、vmnet)
Windows下是内核驱动,Linux是内核模块,这是虚拟化真正核心,直接访问物理硬件资源,脱离宿主应用层,完成CPU虚拟化、内存虚拟化、IO虚拟化。 - VMX 文件:虚拟机配置,记录虚拟CPU、内存、磁盘、网卡参数。
- VMDK 文件:虚拟机虚拟磁盘,本质主机上的一个/多个文件,虚拟机硬盘全部存在这里。
- 客户操作系统(Guest OS):虚拟机内部的Windows/Linux,完全独立,不知道自己运行在虚拟机。
- VMware Tools:虚拟机内部驱动套件,优化显卡、鼠标、剪贴板共享、文件拖拽、时间同步。
二、四大资源虚拟化原理
1.CPU虚拟化
- 现代CPU支持 Intel‑VT‑x / AMD‑V 硬件虚拟化扩展(必须开启BIOS虚拟化开关)。
- VMware 创建多个虚拟CPU(vCPU),把物理CPU时间片切分,多个vCPU轮流调度跑在物理CPU核心。
- GuestOS的指令不会直接跑在硬件,通过CPU虚拟化扩展做特权指令捕获翻译;没有硬件虚拟化时使用二进制翻译(老版本,性能很差)。
注意:vCPU不是独占物理核心,是分时复用,虚拟机开太多会卡顿。
2.内存虚拟化(最容易踩坑)
三层内存:
- 物理主机物理内存(HW‑RAM)
- 宿主操作系统虚拟内存
- 虚拟机客户机虚拟内存
VMware引入影子页表/EPT(Intel) NPT(AMD):
虚拟机OS以为自己拥有一整块完整内存;VMware维护映射,把虚拟机的虚拟内存地址映射到主机真实内存。
重要:给虚拟机分配的内存,主机物理内存必须尽量够用。如果主机内存不足,会使用主机交换分区,虚拟机性能暴跌。
3.磁盘虚拟化
虚拟机看到的硬盘,就是主机上的.vmdk文件。
- 动态增长磁盘:vmdk初始很小,虚拟机往硬盘写数据,文件才慢慢变大,最大上限是你设置的磁盘大小。
- 预分配磁盘:直接一次性占用全部主机磁盘空间,IO性能更好。
IO请求:虚拟机发起读写虚拟磁盘 → VMware驱动拦截请求 → 转换为主机对vmdk文件读写。
4.网络虚拟化(vmnet虚拟交换机)
VMware自带虚拟交换机vmnet0/vmnet1/vmnet8
- 桥接模式(vmnet0):虚拟网卡和物理网卡桥接,虚拟机同局域网独立IP,如同局域网一台真实电脑。
- 仅主机模式(vmnet1):只有主机和虚拟机互相访问,不能访问外网。
- NAT模式(vmnet8 默认):虚拟机通过主机IP做地址转换上网,虚拟机内部独立网段,外部不能主动访问虚拟机。
三、Type‑2 和 Type‑1 的区别
- Type‑2(VMware Workstation/VirtualBox):跑在普通操作系统上,适合个人学习,有一层宿主OS开销。
- Type‑1(VMware ESXi、KVM裸金属):直接安装在物理硬件上,没有宿主系统,服务器虚拟化,性能更高。
补充:KVM属于内核集成的Type‑1/2混合虚拟化;VMware workstation底层也是用硬件VT‑x,和KVM原理相近,只是封装在宿主应用。
四、关键特点
- 隔离性:虚拟机之间、虚拟机和主机完全隔离,虚拟机中毒不会直接感染主机。
- 可迁移:整套虚拟机就是vmx+vmdk文件,可以拷贝到另一台电脑直接打开运行。
- 快照:保存vmdk状态,可以随时回滚到过去状态,原理是写时复制COW,变更的数据写入新差分文件。
五、性能损耗来源
- 内存交换(主机内存不够用)
- 磁盘IO:vmdk文件在机械硬盘上
- vCPU分配过多,超过物理核心,大量CPU调度切换
- 没有安装VMware‑Tools,使用通用兼容驱动
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)