云祺Logo 云祺Logo

使用两种方法实现 Proxmox 磁盘直通

2026-07-10

Proxmox VE 是一款功能强大且开源的虚拟化平台,支持基于 KVM 的虚拟机和 Linux 容器。其中一项使 Proxmox 对高级用户极具灵活性的功能是磁盘直通(disk passthrough),即允许虚拟机直接访问物理磁盘。该功能对于某些特定应用场景至关重要,例如运行存储密集型应用、原生使用 ZFS,或将硬件 RAID 控制器直通给客户机系统。

什么是磁盘直通?

磁盘直通是一种技术,允许 Proxmox 中的虚拟机直接访问物理存储设备,绕过宿主机的存储栈。与存储在宿主机文件系统中的传统虚拟磁盘镜像不同,磁盘直通使虚拟机独占访问某块物理硬盘,从而带来多项优势,包括降低 I/O 开销,以及在虚拟机内实现原生硬件功能。

磁盘直通类型

1. 整盘直通:将整个物理磁盘不经过任何中间层直接传递给虚拟机。这使虚拟机获得对该磁盘的完全控制权,适用于 ZFS、RAID 配置或运行专用存储应用程序等场景。

2. 分区直通:您无需传递整个磁盘,而只需将特定分区传递给虚拟机。当您不希望独占整块磁盘时,这种方式可提供更精细的控制。

3. 硬件控制器直通:对于使用硬件 RAID 卡或专用控制器的配置,将整个存储控制器直通给虚拟机,可确保虚拟机原生管理连接至该控制器的所有磁盘。

磁盘直通的常见使用场景

磁盘直通通常应用于虚拟机需要直接访问物理存储设备的环境中。通过绕过虚拟化层,可提升特定工作负载的性能、兼容性以及存储管理的灵活性。以下是 Proxmox VE 中磁盘直通最常见的几种使用场景。

虚拟机中的 ZFS:ZFS 是一种流行的文件系统,具备快照和类似 RAID 的功能。将物理磁盘直通给虚拟机后,ZFS 可直接控制这些磁盘,从而提升性能,并支持数据完整性校验等高级功能。

存储直连型虚拟机:对于NAS、iSCSI目标设备或其他磁盘密集型应用,直接磁盘透传可最大限度减少虚拟化层通常导致的性能瓶颈。

硬件 RAID:如果您的服务器使用硬件 RAID 控制器,直通该控制器可确保虚拟机无需依赖软件模拟,即可完全访问 RAID 配置。

在 Proxmox VE 中,有两种方式直通硬盘:

方法1:通过命令映射单个硬盘直通;

方法2:添加PCI设备,直通SATA控制器。

第一种方法适用于将单个磁盘直接分配给虚拟机,而第二种方法则使虚拟机能够访问整个存储控制器及所有连接的驱动器,从而实现更高级、更灵活的磁盘管理。接下来,我们逐步介绍这两种方法的具体操作步骤。

方法1:通过命令映射单个硬盘直通

访问Proxmox VE系统的SSH,或直接进入PVE管理Web Shell。

1. 检查磁盘ID

ls -l /dev/disk/by-id/

注意:“ata、mmc”等表示接口类型。常见类型包括 ATA、SATA、SCSI、NVMe、eMMC 和 SASI。IDE 和 SATA 接口通常标记为“ata”,而 SCSI 和 SAS 接口则标记为“scsi”。

2. 导入虚拟机

qm set <vm_id> –<disk_type>[n] /dev/disk/by-id/<type>-$brand-$model_$serial_number

<disk_type>[n]:导入磁盘的总线类型及其编号。总线类型包括 IDE、SATA、VirtIO 块设备或 SCSI,编号从 0 开始。最大编号取决于总线接口类型:IDE 为 3,SATA 为 5,VirtIO 块设备为 15,SCSI 为 13。

/dev/disk/by-id/-品牌-品牌−型号_$序列号:磁盘ID的具体路径和名称。

例如,对于磁盘数据“ata-ST4000VX000-2AG166_ZGY163KG”,该磁盘将直通给虚拟机ID为102的虚拟机,总线类型接口为sata2(请根据Proxmox VE虚拟机设置总线编号)。

qm set 102 -sata2 /dev/disk/by-id/ata-ST4000VX000-2AG166_ZGY163KG

退货信息将显示如下:

update VM 102: -sata2 /dev/disk/by-id/ata-ST4000VX000-2AG166_ZGY163KG

这表示直通已成功。

方法二:添加PCI设备,直通SATA控制器

在Proxmox VE中直通SATA控制器时,将直通整个SATA总线,即南桥或北桥连接的SATA总线被直接直通。在某些主板上,这会导致所有SATA接口均被直通。

注意:如果您的PVE系统安装在SATA硬盘上,可能导致PVE系统无法启动。因此,在直通SATA控制器之前,请确认PVE系统的安装位置,或直接将系统安装在NVMe固态硬盘上。

开始之前,请确保已启用 IOMMU 硬件直通功能,然后继续添加 SATA 控制器。

1. 确认您的主板 CPU 是否支持 VT-d

如果不支持,您将无法执行直通操作。英特尔要求至少使用B75芯片组才能支持该功能。换言之,第四代及以后的英特尔酷睿处理器支持此功能。VT-D用于I/O虚拟化,而非VT-X。

许多初学者错误地认为,只需在主板上启用虚拟化功能即可实现直通,但事实并非如此。必须启用 VT-D 才能实现 I/O 虚拟化。在 AMD 平台上,该功能称为 IOMMU;而在部分 OEM 主板上,则称为 SRIOV。请注意这一点。

2. 启用 IOMMU

编辑 grub 文件。请勿盲目修改,需根据您的实际环境进行设置。

vi /etc/default/grub

找到此行:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

如果使用英特尔 CPU,请将其修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

如果使用 AMD CPU,请将其修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

如果需要 GPU 直通,则建议添加以下额外一行:

video=vesafb:off video=efifb:off video=simplefb:off

添加此行后,PVE 将重启,并在进入内核后停在某个屏幕界面。

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt video=vesafb:off video=efifb:off video=simplefb:off"

修改后,直接更新 GRUB:

update-grub

注意:如果此方法未能启用 IOMMU,请修改“/etc/kernel/cmdline”文件,并使用“proxmox-boot-tool refresh”更新启动选项。

3. 加载必要的内核模块

echo vfio >> /etc/modulesecho vfio_iommu_type1 >> /etc/modulesecho vfio_pci >> /etc/modulesecho vfio_virqfd >> /etc/modules

更新内核参数

update-initramfs -k all -u

重启主机

reboot

4. 验证 IOMMU 是否已启用

重启后,在终端中输入以下命令:

dmesg | grep iommu

如果出现以下输出,则表示成功:

[ 1.341100] pci 0000:00:00.0: Adding to iommu group 0[ 1.341116] pci 0000:00:01.0: Adding to iommu group 1[ 1.341126] pci 0000:00:02.0: Adding to iommu group 2[ 1.341137] pci 0000:00:14.0: Adding to iommu group 3[ 1.341146] pci 0000:00:17.0: Adding to iommu group 4

此时,请输入:

find /sys/kernel/iommu_groups/ -type l

如果出现多个直通组,则表示成功。如果没有显示任何内容,则说明 IOMMU 未启用。

选择所需的 PVE 系统,点击“硬件” > “添加” > “PCI 设备” > 选择“SATA 控制器”,最后点击“添加”,将 SATA 控制器分配给相应系统。重启后,PVE 硬件直通设置即生效。

Vinchin 备份与恢复:Proxmox VE 的可靠备份解决方案

Vinchin 备份与恢复 是一款面向多平台环境的强劲虚拟机数据保护解决方案,全面支持 Proxmox 等主流虚拟化平台。其核心功能包括自动备份、重复数据删除和压缩技术,可帮助用户大幅节省存储空间。

此外,它还支持跨平台数据迁移,以及即时恢复和细粒度文件级恢复等高级功能,显著提升了恢复速度与效率。在 Proxmox 环境中,Vinchin 备份与恢复通过高效的备份加密与防护机制保障数据安全与可靠性,成为虚拟机环境不可或缺的解决方案。

使用 Vinchin 备份与恢复软件备份 Proxmox VE 虚拟机仅需 4 个步骤:

1. 选择备份对象

展开 Proxmox VE 资产树,并将目标虚拟机添加到备份任务列表中。

备份 Proxmox VE 虚拟机

2. 选择备份目标位置

接下来,请选择一个可用的存储位置,并确认相应的备份节点,以确保系统具备适当的访问权限和存储容量。

备份 Proxmox VE 虚拟机

3. 配置备份策略

选择备份模式(如完整备份或增量备份),定义调度规则(每日、每周或自定义间隔),并启用可选的优化功能(如压缩或去重)以提高效率。

备份 Proxmox VE 虚拟机

4. 审核并提交任务

最后,检查所有已配置的设置。确认无误后,为任务命名并提交配置,以创建并启用备份任务。

备份 Proxmox VE 虚拟机

点击下方按钮下载15天免费试用版,亲自体验更高级的功能!

Proxmox 磁盘直通常见问题解答

问题1:我能否在不关闭虚拟机的情况下,通过 Proxmox 磁盘直通热添加物理硬盘?

不行;直接添加物理磁盘需要先停止目标虚拟机,然后更新其配置,最后再重新启动。

问题2:Proxmox 磁盘直通是否支持 NVMe?

可以;既可以按上述类似步骤直通单个NVMe硬盘(通过直接映射 `/dev/nvme`),也可以直通整个NVMe控制器(通过PCIe)。

问题3:我可以将使用直通磁盘的 Proxmox 虚拟机转换为模板格式吗?

否;模板/克隆需要托管虚拟镜像——您必须先分离所有直通硬件,然后再创建不含这些映射的模板。

结论

Proxmox 磁盘直通是一项不可或缺的功能,适用于虚拟机需要原生磁盘访问的场景。无论您运行的是存储密集型应用、管理 ZFS 存储池,还是处理硬件 RAID 配置,对物理磁盘的直接访问均可显著提升性能与功能表现。

对于还需要在 Proxmox 环境中实现可靠备份与灾难恢复的用户,诸如Vinchin 备份与恢复的解决方案可帮助保障数据安全、简化虚拟机管理,并提升整体基础设施的韧性。

云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆

您可能感兴趣的新闻 换一批

现在下载,可享15天免费试用

立即下载

请添加好友为您提供支持
jia7jia_7

微信售后服务二维码

请拨打电话
为您提供支持

400-9955-698