gpt4 book ai didi

docker - 使用 docker 容器共享主机上可用的 PCIe 虚拟功能

转载 作者:行者123 更新时间:2023-12-03 21:24:52 26 4
gpt4 key购买 nike

我的主机在 SRIOV 模式下运行,并且有几个物理设备出现在 PCIe 总线上。每个物理功能都有 32 个虚拟功能的集合。我想与 docker 容器共享其中一个虚拟功能。这些是加密/压缩加速器,我为其中一个编写了驱动程序;所以当我处理启动虚拟机的裸机或 SRIOV 管理程序时,我很熟悉 SRIOV。但现在我正在尝试访问 docker 容器内的虚拟功能。

在主机上,我可以 lspci 并查看我的物理和虚拟设备。但是当我启动一个容器时,我从容器内部看到的只是物理功能。

我已经看到“docker run”的“--device”参数,但我认为它不适用于将虚拟函数传递给容器。

逻辑上,这是我在主机上看到的:

[localhost] config # lspci | grep "^85" | head -4
85:00.0 Co-processor: Intel Corporation DH895XCC Series QAT
85:01.0 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function
85:01.1 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function
85:01.2 Co-processor: Intel Corporation DH895XCC Series QAT Virtual Function
[localhost] config # lspci | grep "^85" | wc
33 295 2524

所以我们在 85:00.0 处有 1 个物理功能,以及 32 个虚拟功能。

但是当我启动容器并从容器内部进行相同的检查时,我所看到的是以下内容:

[localhost] config # lspci | grep QAT
04:00.0 Co-processor: Intel Corporation DH895XCC Series QAT
05:00.0 Co-processor: Intel Corporation DH895XCC Series QAT
85:00.0 Co-processor: Intel Corporation DH895XCC Series QAT

有人告诉我这可以工作:我可以将虚拟机发送到容器中,我的驱动程序可以完成剩下的工作。

我的问题:如何将虚拟函数从主机传递到容器中?

最佳答案

如评论中所述(但带有标志名称):

docker run -it --rm --cap-add=SYS_RAWIO ...

然后再次从容器内部尝试 lspci。

关于docker - 使用 docker 容器共享主机上可用的 PCIe 虚拟功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50609977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com