有没有一种方法(非基于网络)使用 libvirt 与客户机(centos 7)共享主机(ubuntu)文件系统?

有没有一种方法(非基于网络)使用 libvirt 与客户机(centos 7)共享主机(ubuntu)文件系统?

我正在尝试使用 virsh 和域 xml 从 ubuntu 16.04 LTS 主机启动 Centos 7 客户机。我在域 xml 中使用的“文件系统”节点如下:

<filesystem type='mount' accessmode='passthrough'>
    <driver type='path' wrpolicy='immediate'/>
     <source dir='/opt/test'/>
     <target dir='testlabel'/>
</filesystem>

使用上述配置,“testlabel”在客户机中不可见,因此我无法安装它。我是否遗漏了什么?

我尝试在客户机中使用 9p 模块,但它们似乎在 centos 7 中不可用。需要重新编译内核 [现在正在尝试]。我了解到 virtio-vsock 将来会可用。所以,目前它不是一个选项。

我也不想使用基于网络的文件共享,如 SSHFS、NFS 或 glusterfs。

是否有其他文件系统驱动程序可以与 libvirt 的域 xml 的“文件系统”选项一起使用?

答案1

根据libvirt 文档,你可能只是需要调整你的target

文档提供了以下示例:

  <filesystem type='mount' accessmode='passthrough'>
    <driver type='path' wrpolicy='immediate'/>
    <source dir='/export/to/guest'/>
    <target dir='/import/from/host'/>
    <readonly/>
  </filesystem>
  <filesystem type='file' accessmode='passthrough'>
    <driver name='loop' type='raw'/>
    <driver type='path' wrpolicy='immediate'/>
    <source file='/export/to/guest.img'/>
    <target dir='/import/from/host'/>
    <readonly/>
  </filesystem>

似乎无需晚上 9 点即可工作。

不过对于centos来说,其实有一个现成的9p助手:

Available Packages
Name        : nfs-ganesha-mount-9P
Arch        : x86_64
Version     : 2.3.2
Release     : 1.el7
Size        : 11 k
Repo        : epel/x86_64
Summary     : a 9p mount helper
URL         : https://github.com/nfs-ganesha/nfs-ganesha/wiki
Licence     : LGPLv3+
Description : This package contains the mount.9P script that clients can use
            : to simplify mounting to NFS-GANESHA. This is a 9p mount helper.

答案2

目前,9p 是 libvirt 和 KVM 支持的唯一文件系统共享选项。遗憾的是,CentOS 禁用了对 9p 的支持,因为多年来它基本上没有得到上游的维护,并且包含许多安全漏洞 - 直到最近几个月,新的 9p 维护者才开始着手清理这个问题。不过,如果您重新编译 centos 内核,或者自己构建 9p 模块,应该可以让它工作。

在支持 NFS 的 virtio-vsock 出现之前,您无法使用其他非基于网络的选项。

相关内容