KVM 直通磁盘分区 - 按标签或 UUID

KVM 直通磁盘分区 - 按标签或 UUID

通常,当我将磁盘传递到虚拟机时,我会使用整个磁盘。我正在尝试通过分割在 KVM 中。第一个问题是,这可能吗?看了这篇文档,我觉得这是可行的方法,这让我很惊讶。

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/virtualization_administration_guide/sect-virtualization-adding_storage_devices_to_guests-adding_hard_drives_and_other_block_devices_to_a_guest

重要的

不应授予客户虚拟机对整个磁盘或块设备 (例如,/dev/sdb) 的写访问权限。有权访问整个块设备的客户虚拟机可能能够修改卷标,这可用于危害主机物理机系统。使用分区(例如,/dev/sdb1)或 LVM 卷来防止此问题。

我的下一个问题是我已经阅读了如何通过 /dev/sdX 和 diskID 执行此操作,但 DiskID 似乎是整个磁盘,IE:

https://lime-technology.com/forums/topic/34659-hard-drive-passthrough/

<disk type='block' device='disk'>
        <source dev='/dev/disk/by-id/ata-Corsair_CSSD-F120GB2_1109650632000461003B' />
        <target dev='hdc' bus='virtio' />
</disk>

使用 by-id 的全部意义在于 /sdX 可以改变。我想知道我是否可以使用 LABEL 或 UUID?任何有经验的人,我都想提供一些意见。

谢谢

答案1

如果仔细查看磁盘符号链接,/dev/disk/by-id您会发现块设备上的每个分区也都有链接。例如:

ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN
ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN-part1
ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN-part2
ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN-part3
ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN-part5
ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN-part6
ata-INTEL_SSDSC2BB480G7_PHDV644200N5480BGN-part7

使用与所需分区相对应的分区。

答案2

您可以通过 /dev/disk/by-* 中的以下任意符号链接直通磁盘,例如:

cd /dev/disk/by-
by-id/        by-label/     by-partlabel/ by-partuuid/  by-path/      by-uuid/

答案3

这可以通过使用 ID 或按标签路径中的符号链接,然后将其用于分区来完成:

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

#After getting the id of the partition, use following
qm set  592  -scsi2 /dev/disk/by-id/ata-ST3000DM001-1CH166_Z1F41BLC-part3 

与此相关的解释非常清楚的答案可以在Proxmox 支持论坛关联。

相关内容