虚拟机直通硬盘在多数场景下能接近物理硬盘,但“媲美”有前提:直通的是整块PCIe或SATA控制器,而不是单盘映射;同时IOMMU、中断亲和、CPU调度和缓存策略都得调到位,单盘RDM或虚拟磁盘,通常和物理盘有明显差距。
虚拟机直通硬盘后性能真能媲美物理硬盘吗
直通、RDM和虚拟磁盘的IO路径差异
把硬盘交给虚拟机,常见有四种方式,性能差距,本质是IO路径长短不同。
- PCIe控制器直通:Guest直接加载nvme或sata驱动,DMA直达内存,IOMMU只做地址翻译,NVMe延迟可到几十微秒级,SATA SSD在百微秒级,HDD仍是毫秒级。
- SATA/HBA控制器直通:Guest看到完整控制器,支持NCQ、TRIM、SMART,机械盘和SATA SSD接近裸机。
- RDM或物理盘映射:Hypervisor仍参与SCSI命令翻译,队列深度和中断处理多一层。
- VMDK/qcow2:文件系统层、快照、缓存叠加,随机写放大明显,延迟最高。
| 模式 | IO路径 | SMART/TRIM | 迁移能力 | 性能接近物理盘 |
|---|---|---|---|---|
| PCIe控制器直通 | 最短 | 支持 | 差 | 很接近 |
| SATA控制器直通 | 短 | 支持 | 差 | 接近 |
| RDM/物理盘映射 | 中等 | 部分 | 较好 | 有差距 |
| VMDK/qcow2 | 长 | 依赖配置 | 好 | 差距明显 |
业内专家指出,IOMMU直通并非零成本,地址翻译和中断重映射仍会消耗CPU周期,只是相比虚拟磁盘栈,这部分开销小得多。
什么条件下直通硬盘能接近物理盘
想让虚拟机里的硬盘跑出物理盘的感觉,下面这些条件缺一不可。
- 整块HBA或PCIe NVMe直通,不和其他虚拟机共享。
- CPU开启VT-d或AMD-Vi,IOMMU分组干净。
- 中断亲和绑定到独立核心,避免和网络、存储中断抢CPU。
- Guest用原生驱动,不用virtio-scsi模拟。
- 关闭不必要的快照、内存气球和存储缓存。
- PCIe链路宽度足够,U.2盘别插在x1转接卡上。
什么条件下会明显掉速
- 单盘RDM跑高队列深度数据库。
- 宿主机和Guest争抢同一控制器。
- IOMMU分组太粗,直通整组设备影响宿主机。
- 虚拟磁盘启用了快照,随机写变成COW。
- 电源管理激进,盘频繁升降速。
- vCPU超分严重,中断处理被延迟。
VMware ESXi硬盘直通和RDM性能对比
ESXi三种方式怎么选
在ESXi里,直通和RDM是两套逻辑,选错方式,性能差一截。
- PCI Passthrough:vSphere Client进入主机,管理,硬件,PCI设备,切换直通,虚拟机添加PCI设备,预留全部内存。
- RDM:用
vmkfstools -z /vmfs/devices/disks/naa.xxx /vmfs/volumes/datastore/rdm.vmdk映射物理盘。 - VMDK:默认方式,适合快照、克隆、vMotion,但IO路径最长。
常用命令:
esxcli storage core device list esxcli hardware pci list vmkfstools -z /vmfs/devices/disks/naa.6000... /vmfs/volumes/ds1/rdm-disk.vmdk
性能差异关键点
- PCI直通绕过VMFS,RDM仍走VMFS元数据,但数据路径比VMDK短。
- 直通后vMotion受限,HA需谨慎设计。
- 物理兼容模式RDM不支持快照。
- 直通设备中断直接注入Guest,RDM由VMkernel处理。
实操:ESXi直通NVMe给Windows虚拟机
- BIOS开启VT-d或AMD-Vi。
- ESXi主机PCI设备切换直通。
- 虚拟机添加PCI设备,预留全部内存。
- 安装原生NVMe驱动。
- 根据断电保护决定是否关闭Windows写缓存。
- 验证:
Get-PhysicalDisk | fl。
这套流程下,顺序读写和4K QD1通常很接近物理机,但若NVMe和宿主机共享,延迟会上升。
家庭NAS虚拟机直通硬盘跑数据库延迟高怎么办
先定位瓶颈
家庭NAS跑数据库,直通后延迟高,先别急着换盘。
- 宿主机
iostat -x 1看%util和await。 - Guest内用
fio测随机读写。 - 检查IOMMU分组:
find /sys/kernel/iommu_groups/ -type l。 - 检查中断:
cat /proc/interrupts。
KVM/Proxmox调优步骤
- 内核参数:
intel_iommu=on iommu=pt。 - 绑定vfio:
vfio-pci ids=144d:a808。 - 直通整块NVMe:
qm set 100 -hostpci0 0000:01:00.0,pcie=1。 - 直通SATA控制器:
qm set 100 -hostpci0 0000:00:17.0。 - 单盘直通:
qm set 100 -scsi1 /dev/disk/by-id/ata-...。 - CPU绑定:
taskset -pc或cpuset。 - 中断亲和:
echo <mask> > /proc/irq/<irq>/smp_affinity。 - 数据库盘用XFS或ext4,挂载
noatime,nodiratime,io调度设为none。
数据库场景建议
- 日志盘和数据盘分开。
- 优先PCIe NVMe直通。
- 不要用qcow2跑高并发写入。
- 关闭内存气球和内存压缩对IO的干扰。
北京服务器租用环境下硬盘直通性能实测
租用前确认硬件与虚拟化权限
在北京服务器租用环境里,不是所有机型都允许直通,租之前要问清楚。
- 主板和BIOS是否开放VT-d或AMD-Vi。
- 是否允许独占PCIe槽和整块HBA。
- 是否提供IPMI或KVM over IP。
- 本地NVMe和网络存储混用时的延迟表现。
- 机房电力、散热对NVMe降频的影响。
常见部署路径
- 裸机安装Proxmox或ESXi,再开虚拟机。
- 云厂商裸金属服务器,确认支持PCI直通。
- 北京地区机房选择U.2 NVMe盘,避免SATA扩展卡瓶颈。
- 若只能RDM,数据库延迟会高于物理机。
验证清单
lspci -nnk查看驱动绑定。dmesg | grep -i iommu。- Guest内
smartctl -a /dev/nvme0。 - 对比物理机跑分,关注4K QD1和QD32。
二手企业级硬盘直通虚拟机划算吗
成本账
二手企业级硬盘价格低,直通给虚拟机后Guest能读SMART,方便监控,但无保修、通电时间长、掉盘风险高。
适用与不适用
- 适用:家庭NAS、实验环境、视频归档。
- 不适用:生产数据库、高频交易、唯一副本。
- 若做RAID,建议HBA直通,别用虚拟磁盘组RAID。
价格与云盘对比
长期大容量场景,二手盘加直通可能更省,短期、弹性、高可用场景,云盘更省心,电费、噪音、备份成本都要算进去。
虚拟机直通硬盘性能Q&A
虚拟机直通硬盘后,SMART和TRIM能用吗?
整块SATA或NVMe控制器直通时,Guest原生驱动可执行smartctl和fstrim,单盘RDM或虚拟磁盘,SMART通常不可见,TRIM取决于Hypervisor和磁盘格式。
为什么直通后跑分仍低于物理机?
IOMMU地址翻译、中断重映射、vCPU调度、内存预留不足都会带来开销,若宿主机同时访问同一控制器,或PCIe链路降速,差距更明显,行业共识认为,整块PCIe NVMe直通能把差距压到很小,但并非零成本。
虚拟机直通硬盘性能真能媲美物理硬盘吗?
在整块PCIe或SATA控制器直通、IOMMU分组干净、CPU和中断调优到位的条件下,顺序读写和大多数随机读写可以接近物理机;单盘映射、RDM、虚拟磁盘快照场景则难以媲美,是否值得,取决于你对迁移、快照、备份和成本的取舍。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/765832.html





