pve硬盘性能
物理机>直通>RDM直通>虚拟磁盘
虚拟磁盘 SCSI>SATA>IDE

pve7硬盘直通
磁盘控制器直通
PS: pve不是安装在sata中则可以直通sata控制器,否则直通会使系统无法启动
开启iommu
下载pve_source
通过pve_source脚本一键启动iommu
查找硬盘控制器
1. lspci 列出所有pci
其中 02:00.1 是一个sata控制器。一般来说,带SCSI SATA字样的都是磁盘控制器。
查找硬盘所属控制器
如果你有多块硬盘,且不知道硬盘属于哪个控制器,你可以通过下面命令查看。
ls -la /sys/dev/block/|grep -v loop |grep -v dm

如上面所示,pci0000:00是Pci桥,0000:00:02.4就是硬盘控制器,后面是硬盘的盘号,nvme0n1
如果不知道pve所在的硬盘。可以使用命令lsblk查看,有pve-root的,便是pve所在的硬盘。所在控制器是不能直通的。否则系统会gg。

直通对应pcie
网图,演示作用。勾选PCI-Express

RDM磁盘直通
直通某分区或某个硬盘。
scsi性能最好
# 查询硬盘id
ls /dev/disk/by-id
#rdm直通硬盘
#qm set <vmid> --sata/scsi/ide编号 /dev/disk/by-id/硬盘id
#例如你有一个虚拟机,虚拟机的vmid是101,--scsiX,这里的X是整数,不可重复
qm set 101 --scsi1 /dev/disk/by-id/nvme-Dahua_C900_PLUS_M.2_2280_NVMe_1TB_SSD_N8YM09A08A02115
qm set 101 --sata1 /dev/disk/by-id/nvme-Dahua_C900_PLUS_M.2_2280_NVMe_1TB_SSD_N8YM09A08A02115
qm set 101 --ide1 /dev/disk/by-id/nvme-Dahua_C900_PLUS_M.2_2280_NVMe_1TB_SSD_N8YM09A08A02115
#取消直通
#qm set <vmid> --delete scsiX
qm set 101 --delete scsi1直通NVME硬盘
Nvme作为一个PCIe设备,那么只需要按照PCIe方式进行直通。开启iommu,再去面板上添加即可。

从直通的硬盘中引导系统
在某些场景下,用户期望虚拟机直接从直通的硬盘中启动。
对于Windows来说,
1、确定硬盘里的系统是UEFI系统还是legacy系统。
如果是UEFI系统,请将虚拟机配置为OVMF,如果是legacy系统,请将虚拟机配置为Seabios
2、请将虚拟机的SCSI控制器设置为LSI 53C895A。将RDM磁盘设置为sata通道(因为sata在windows下免驱,scsi需要驱动,会导致无法启动windows系统)。
3、在虚拟机选项中,修改引导顺序,引导顺序为你的硬盘号。
对于linux来说,和Windows一样。
对于Nvme硬盘,
直通之后,选择Nvme启动,可能也会因为驱动的原因,导致无法启动系统。建议RDM直通,设置为sata模式,参考Windows步骤。由于Nvme的性能高,用sata模式可能会产生性能问题,建议先用sata模式启动系统后,安装好virtio-scsi驱动,再将Nvme设置为scsi,最后启动顺序,并启动虚拟机。