Xen Hypervisor域间通信

时间:2013-08-19 09:53:34

标签: virtual-machine xen hypervisor

在xen中,我们可以使用libvchan实现域间通信。

但是,在domU中,当开始通信时,它显示以下错误:

  

libxenvchan _ * _.init:没有这样的文件或目录。

为此,我尝试使用xenfs挂载/ proc / xen /。它给出了错误

  

未知文件系统“xenfs”

如何解决上述错误以及如何实现域间通信?

2 个答案:

答案 0 :(得分:4)

看起来" libxenvchan _ * _。init:没有这样的文件或目录错误"是一个常见的问题。我没有找到进行网络搜索的解决方案。

对我来说,Linux系统(CentOS 6.5)来宾VM的解决方案是加载xen内核模块 libvchan服务器的xen_gntalloc和xen_evtchn。对于libvchan客户端,它应该是xen_gntalloc和xen_gntdev。显然这意味着您的来宾VM必须运行xen linux内核。请注意,我使用的是xen 4.2.2,内核是3.4.53-8.el6.centos.alt.x86_64。

我通过向libxenctrl和libxenvchan库的源添加print语句找到了具体问题,直到我找到了无法找到的文件,结果是/ dev / xen / gntalloc(服务器和客户端),/ dev / xen / evtchn(服务器),/ dev / xen / gntdev(客户端)。

答案 1 :(得分:0)

确保正确安装了vchan所需的库。您可以在vchan-client二进制文件上使用ldd命令查看它是否可以成功加载所需的库。

在我的来宾VM(Debian 8.4.0 64-Bit)中构建和安装Xen工具(制作构建工具和制作安装工具)并在之后执行ldconfig足以让vchan示例程序运行。

我还必须加载上一个答案中提到的Xen内核模块。

编辑:

您可以在此处找到说明+示例代码: https://github.com/tolgauen/Xen-VCHAN-Guide