virtualization - 如何使用 Samsung PM1733/1735 NVMe SSD 设置 SR-IOV

标签 virtualization nvme

Samsung PM1733/1735 NVMe SSD 声明支持 SR-IOV。并且希望用PM1735 SSD搭建一个NVMe SR-IOV环境。我的 SSD 的开发说明是/dev/nvme1。

但是,我尝试使用类似的命令 echo 4 >/sys/class/nvme/nvme1/device/sriov_numvfs

dmesg信息包含那个

[ 1239.732278] nvme nvme2: pci function 0000:86:00.1
[ 1239.732359] nvme 0000:86:00.1: enabling device (0000 -> 0002)
[ 1239.732365] pci 0000:86:00.2: [144d:a824] type 00 class 0x010802
[ 1239.733053] iommu: Adding device 0000:86:00.2 to group 164
[ 1239.733402] nvme nvme3: pci function 0000:86:00.2
[ 1239.733473] pci 0000:86:00.3: [144d:a824] type 00 class 0x010802
[ 1239.733477] nvme 0000:86:00.2: enabling device (0000 -> 0002)
[ 1239.734117] iommu: Adding device 0000:86:00.3 to group 165
[ 1239.734485] nvme nvme4: pci function 0000:86:00.3
[ 1239.734557] pci 0000:86:00.4: [144d:a824] type 00 class 0x010802
[ 1239.734782] nvme 0000:86:00.3: enabling device (0000 -> 0002)
[ 1239.735066] iommu: Adding device 0000:86:00.4 to group 166
[ 1239.735352] nvme nvme5: pci function 0000:86:00.4
[ 1239.735631] nvme 0000:86:00.4: enabling device (0000 -> 0002)
[ 1270.289730] nvme nvme2: Device not ready; aborting initialisation
[ 1270.289794] nvme nvme2: Removing after probe failure status: -19
[ 1270.293724] nvme nvme4: Device not ready; aborting initialisation
[ 1270.293727] nvme nvme5: Device not ready; aborting initialisation
[ 1270.293732] nvme nvme5: Removing after probe failure status: -19
[ 1270.293783] nvme nvme4: Removing after probe failure status: -19
[ 1270.297647] nvme nvme3: Device not ready; aborting initialisation
[ 1270.297703] nvme nvme3: Removing after probe failure status: -19

lspci | grep Non 可以发现

86:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a824
86:00.1 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a824
86:00.2 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a824
86:00.3 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a824
86:00.4 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a824

是否正确创建了 VF?

另一个问题是如何将命名空间与 VF 绑定(bind)。我使用 nvme-cli/dev/nvme 创建命名空间,但如何将这些命名空间与 VF 绑定(bind)?

最佳答案

使用 nvme cli 命令 nvme virt-mgmt 分配 VQ 和 VI,并启用该 Controller 并将该 vf 导出到 vm。

示例命令 nvme list-secondary/dev/nvme1n1 --> 所有辅助 Controller 列表的输出

nvme virt-mgmt/dev/nvme1n1 -c 1 -r 0 -n 2 --> 为二级 Controller 1分配2个VQ

nvme virt-mgmt/dev/nvme1n1 -c 1 -r 1 -n 2 --> 为二级 Controller 1分配2个VI

nvme virt-mgmt/dev/nvme1n1 -c -a 9 --> 启用辅助 Controller 1

nvme list-secondary/dev/nvme1n1 --> 检查第一个条目是否已更新,现在显示为在线。

现在将这个 vf 导出到 vm。

关于virtualization - 如何使用 Samsung PM1733/1735 NVMe SSD 设置 SR-IOV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65350988/

相关文章:

python - 使用 Python 进行 NVMe 吞吐量测试

c - 如何检查 malloc 地址是 QWord 对齐的?

angular - 如何将 cdk-virtual-scroll 与 ngx-infinite-scroll 一起使用

asp.net - 使用虚拟化进行 Web 开发的优势

windows-server-2003 - 确定您要连接的服务器是否是虚拟化的?

hardware - 为什么 RDTSC 是现代处理器上的虚拟化指令?

c - OPAL-SED 库 ioctl 用法?

amazon-ec2 - 断开和重新连接 nvme

delphi - 如何以编程方式探测CPU的硬件虚拟化能力?