虚拟机 SSD 性能优化没有玄学,核心就三件事:选对虚拟磁盘类型、装好半虚拟化驱动、必要时做直通。 这三点是绝大多数虚拟机磁盘性能瓶颈的根源,先把基本功打扎实,再谈更激进的高速玩法。
虚拟机SSD设置方法第一步:把虚拟磁盘类型选对
很多人在创建虚拟机时,根本没注意磁盘配置页面的那几个选项,这才是性能差距的最大来源。
虚拟磁盘在宿主机上存放方式不同,直接影响读写路径的复杂度,不少朋友图省事,一路默认选项到底,结果 SSD 级别硬件跑出了机械盘的延迟。
精简置备和厚置备哪个好:性能与空间的取舍
这个问题在虚拟化圈子里讨论度很高,真实情况是:
-
厚置备(Thick Provision):创建时一次性把磁盘空间完整分配给虚拟机,文件系统元数据简单,写入时不需动态扩展,性能最稳定,随机写入延迟低。
-
精简置备(Thin Provision):按需分配空间,创建快,省存储,但代价是每次写入数据时,宿主机都要先执行“分配新空间”操作,当磁盘空间紧张时,性能衰减明显。
行业共识认为: 生产环境、数据库虚拟机、追求稳定延迟的用户,选择厚置备;个人测试、桌面虚拟机,省空间优先,可选用精简置备。
虚拟磁盘控制器:别让接口协议拖后腿
这个细节很容易被忽略,虚拟机的 SCSI 控制器和物理接口芯片一样,控制器类型决定单盘 IO 能否打满。
主流虚拟化平台通常提供三种虚拟控制器:
- IDE 控制器:最传统的模拟方式,CPU 开销大,IO 队列浅,只建议装老系统或做维护用,别指望它跑出 SSD 速度。
- LSI Logic SCSI:经典 SCSI 控制器,兼容性极好,Linux 和 Windows 都有默认驱动,但并发能力一般,多队列支持有限。
- PVSCSI:虚拟化平台专用的 SCSI 控制器,支持多队列、高并发,吞吐量远高于 LSI Logic,大部分场景下选择 PVSCSI,均能显著提升虚拟机 SSD 性能。
在 VMware 平台中,给虚拟机添加 SCSI 控制器时直接把类型改成 VMware Paravirtual,后续无需额外配置,微软 Hyper-V 平台则对应使用存储控制器类型中的 SCSI 控制器,系统会自动加载专用驱动。
虚拟机 SSD 设置三星驱动器类型
忘了在最底部勾选“SSD 仿真”或“Solid State Drives”的选项。
这个选项在 VMware 中名为 “设置 SSD 为闪存磁盘”,在 Proxmox VE 里叫 “SSD 仿真”,它不是玄学,而是让虚拟机感知到底层是固态硬盘。
开启后,虚拟机的操作系统会自动:
- 停止对系统盘的碎片整理计划
- 启用 TRIM 相关指令的透传
- 调整磁盘调度器参数,减少不必要的日志刷新
Windows 虚拟机不勾选这个选项,你就得手动关掉磁盘优化计划,否则系统每周自动对虚拟磁盘做一次碎片整理,瞬间产生大量随机写入,加速 SSD 磨损。
装好半虚拟化驱动,否则你根本没在用SSD的性能
磁盘类型选好后,下一个关键动作是装驱动,没装 VirtIO 驱动的虚拟机,硬盘性能能有数倍差距。
以 Proxmox VE 为例,给 Windows 虚拟机配置 NVMe 或 VirtIO SCSI 磁盘的实操路径是:
- 下载 Windows VirtIO 驱动 ISO(在 Fedora 项目官网可获取,包含全套设备驱动)
- 编辑虚拟机硬件,将硬盘总线改为 VirtIO Block 或 NVMe
- 挂载驱动 ISO 镜像,开机时会提示未识别的存储设备
- 手动从驱动 ISO 中安装 viostor 或 nvmefw 驱动
- 完成后关机,改用 SCSI VirtIO 控制器,重新开机即可生效
装好驱动前后,跑一轮 CrystalDiskMark 测试,4K 随机读取性能差距相当明显。简单说:没装 VirtIO 驱动,SSD 性能至少要打五折。
Linux 虚拟机的情况稍好,内核自带 virtio 模块,开虚拟机时把磁盘总线选为 VirtIO Block,启动后确认 /dev/vda 存在即可,系统盘建议用 NVMe 虚拟设备,新内核的 nvme 驱动已经内置,Trim 指令直接透传,效果更好。
虚拟机系统缓存策略:直写还是回写,别只盯着一个“快”字
磁盘缓存策略是另一个高收益设置点,但盲目追求回写缓存,可能换来数据损坏风险的上升。
虚拟化平台的磁盘缓存选项,通常分为:
- 直接 I/O(Direct):绕过宿主机页缓存,数据直接写到物理磁盘,最安全但性能拓展性最差。
- 回写(Write Back):数据先写入宿主机内存缓存,再由后台异步落盘,性能最好,但断电后缓存内数据可能丢失,容易导致虚拟机文件系统损坏。
- 直写(Write Through):数据写入宿主机页缓存的同时触发写入物理存储,读写性能均衡,安全性较高,适合单机应用和桌面虚拟机。
实操建议:虚拟机有独立 UPS、宿主机有独立缓存电池(如 RAID 卡的缓存保护),可开启回写;普通个人主机或数据较为重要的虚拟机,优先选择直写模式,很难出现灾难性数据丢失,也能获得较好的写入性能。
关闭虚拟机的文件系统日志屏障(write barrier)风险极大,但实际收益很低
,现代 SSD 的掉电保护设计早已胜任这类控制工作,靠关日志来提升性能的行为,属于火中取栗。
缓存与Trim指令配合动作
很多人在开启缓存后,会发现 Windows 虚拟机运行一段时间后磁盘空间“缩水”,原因在于:开启回写或直写缓存后,虚拟机下发的 Trim 指令无法正确穿透到宿主机存储层。
解决办法是,在宿主机层的虚拟磁盘配置中开启 Trim 透传(通常叫 Discard):
- VMware ESXi 中,编辑虚拟机的硬盘设置,打开“磁盘精简”和“闪存优化”,再启用 SCSI 控制器的高级属性中的 Trim 支持。
- Proxmox VE 中,磁盘选项勾选 Discard,并在虚拟机系统内执行
fstrim -av(Linux)或Optimize Drives(Windows)。
这套组合拳打完后,SSD 的垃圾回收机制可以正常工作,长期运行后写放大明显降低,性能衰减速度减慢,闪存寿命也延长了。
进阶玩法:SSD直通和SR-IOV,让性能贴着天花板跑
如果前面的基础设置全做完,但性能仍无法满足高负载场景,那就要把整块 SSD 发给虚拟机,这属于虚拟化高级玩法,普通用户可跳过,但如果你接触的是高性能计算或 OLTP 数据库虚拟机,这是绕不开的话题。
SSD直通和RDM怎么选
- RDM(Raw Device Mapping):ESXi 平台的老牌方案,把物理磁盘以映射方式暴露给虚拟机,配置灵活,支持快照,但存在一定虚拟化层开销。
- PCIe 直通(Passthrough):将宿主机上的 NVMe 控制器直接分配给单一虚拟机,虚拟机完全独占这块物理 SSD,无任何中间层开销,性能约等于原生物理机。
搜索“虚拟机SSD直通怎么设置”,几乎所有的论坛帖子都建议先打 VMware 的硬件兼容性清单。 如果你的 NVMe 硬盘不在兼容列表中,直通后可能遇到设备掉盘或不稳定,这时候 RDM 反而是更稳妥的方案。
SR-IOV:单块 SSD 多虚拟机共享
SR-IOV 技术允许物理 SSD 的控制器创建多个虚拟功能(VF),每个 VF 直接分配给不同的虚拟机,虚拟机通过 NVMe 驱动直接与 VF 通信,几乎无 CPU 开销,且每个 VF 分配独立的队列深度。
这块技术相对较新,需要宿主机 CPU、主板 BIOS 和 SSD 三方配合支持。只有在虚拟化集群、超融合架构中才建议尝试,单机场景配置 SR-IOV,性价比很低,且需要具备一定的内核编译和 BIOS 调优能力。
虚拟机SSD设置方法体检表
- 虚拟磁盘置备:生产环境选厚置备,个人虚拟机选精简置备
- 虚拟磁盘控制器:首选 PVSCSI 或 VirtIO SCSI,避免 IDE 和 LSI 兼容
- SSD 仿真/闪存标记:必须开启,关闭虚拟机内部碎片整理功能
- 半虚拟化驱动:Windows 装 VirtIO 驱动,Linux 用新内核即可
- 缓存策略:有断电保护选回写,普通场景选直写
- Trim 透传:开启 Discard,定期执行
fstrim或手动优化 - 高级应用:性能和稳定性冲突时,考虑 RDM 或 PCIe 直通
多数情况下,一台普通的 SATA 接口 SATA SSD,完成以上前六步设置后,虚拟机内部测试 4K 随机读 IOPS 能稳定在 30000-50000 之间,相比默认配置性能提升接近一倍,如果你仍在纠结是买内置 NVMe 还是外接 USB SSD 跑虚拟机,建议先把上述设置跑一遍,再考虑硬件升级。
SSD 性能优化这件事,虚拟化层和物理层一样,软件配置造成巨大性能差异。 拿来一台新虚拟机,先把基础项逐项做好,再上跑分工具验证,没有耐心做这些配置的,换再贵的固态也是暴殄天物。
今后你再看到别人晒虚拟机跑分、抱怨虚拟机磁盘慢的话题,大概率是从磁盘类型选错、VirtIO 驱动缺失这种基础问题开始的,设计良好的虚拟机 SSD 方案,需要的是把每一项系统配置从“默认”改成“正确”,而不是去超频闪存或做危险的内核参数调整。
Q&A:虚拟机SSD设置方法常见疑问
Q1:开启 SSD 直通后,宿主机还能用这块硬盘做快照吗?
不能,SSD 直通(Passthrough)模式下,虚拟机完全独占物理设备,宿主机无法访问该硬盘,也不能创建快照、做备份、迁移,需要快照功能的场景,请选择虚拟磁盘 + RDM 的方式。
Q2:虚拟磁盘精简置备和厚置备哪个好,为什么跑数据库还是卡?
不是置备方式的问题,你要先确认虚拟机系统是否能正确下发 Trim 指令、是否安装了半虚拟化驱动,以及虚拟磁盘是否设置了固态仿真,跑数据库的虚拟机,通常更重要的是随机写入队列深度,而非顺序读取速度,所以优先检查 SCSI 控制器的多队列支持和缓存策略是否开启直写,这是影响数据库事务延迟的常见瓶颈。
Q3:虚拟机系统盘使用 SSD 后,需要保留 Windows 的碎片整理计划吗?
不需要,Windows 在识别到 SSD 仿真磁盘后,会自动把碎片整理计划改为基于 TRIM 的“优化驱动器”,但至少要满足 SSD 仿真选项开启,若宿主机开启了虚拟磁盘的 Trim 透传,Windows 会推送 TRIM 命令,长期运行依旧能维持老将操盘的手感,不会越用越慢,也不需要手动关闭计划。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/765701.html





