正如标题所述,我正在寻找一种通过libvirt API传递C样式文件描述符的方法(int,我的应用程序使用套接字对,并且我需要传递一个文件描述符)到启动的QEMU进程中
到目前为止,我发现了以下内容:
不幸的是,这些似乎对我没有帮助,因为它们仅用于图形,
遗憾的是,这些方法也无济于事,因为根据文档,它们仅适用于基于容器的虚拟化技术。
无论哪种方式,我都可以使用libvirt API将文件描述符传递给qemu以达到自己的目的。禁止这样做,我可能不得不为QEMU编写一个完全自定义的后端,但是我的应用程序已经投入使用libvirt的投资,并且更改将是重大的。
编辑:文件描述符将是一个套接字,QEMU不直接使用它,我有一个LD_PRELOAD版本的库,当qemu尝试读/写到该库时,它将使用此套接字来做一些就地破解特定的磁盘。 “黑客”在每台机器上以及每次运行时都不同,将这些信息写入每个VM的磁盘会给存储系统带来负担,并导致我无法承受的非常严重的速度下降。
答案 0 :(得分:1)
除了在virDomainOpenGraphics的特殊情况下,libvirt通常不会期望应用程序需要传递预打开的文件描述符。相反,应用程序会告诉libvirt QEMU需要访问哪些资源,如果合适,libvirt会打开资源并将其文件描述符传递给QEMU,而应用程序无需关心此底层细节。
问题并没有说明为什么需要通过FD-QEMU将使用哪种FD?因此,很难为下一步的工作提供任何指导。