【问题标题】:Is there a way to share host (ubuntu) file system with guest (centos 7)?有没有办法与来宾(centos 7)共享主机(ubuntu)文件系统?
【发布时间】:2017-03-17 13:42:31
【问题描述】:

我正在尝试使用 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”在来宾中不可见,因此我无法安装它。我有什么遗漏的吗?

我尝试在 guest 中使用 9p 模块,但它们似乎在 centos 7 中不可用。

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

【问题讨论】:

  • 目标是能够在这些主机之间复制文件还是其他任何东西?
  • @dmi 。是的,目的是能够从主机和来宾访问同一组文件。最终目标是让客人创建一些文件并将其放在共享文件夹中,以便主人以后可以使用它。
  • 在这种情况下,也许 SSH 或 FTP 可能有用。许多现代文件管理器允许以类似于文件系统的方式使用 SSH 连接。
  • @dmi。是的我同意。但是,要使用 SSH 或 FTP,需要在访客和主机之间打开防火墙。当多个运营商使用同一主机时,这需要作为对主机的特殊要求。这构成了安全威胁,然后我们必须研究 TLS 和其他安全强化选项,这使得解决方案相当复杂。我希望有一个简单的文件共享选项。
  • 是的,任何主机间通信方式都需要一定的连接,因此需要防火墙规则:)。也许在某些自定义端口(即 80 或 445)上使用 SSH 将是解决此问题的方法。

标签: linux centos7 libvirt virsh


【解决方案1】:

RHEL-7(因此 CentOS-7)明确不支持 9p 文件系统。它在来宾内核构建中被禁用,并且在 RHEL 主机的 QEMU 构建中也被禁用。原因是 QEMU 中的 9p 支持在上游基本上没有得到维护,QEMU 社区对其安全性或性能没有信心。

如果您想共享文件系统位置,几乎唯一的选择就是使用传统的网络文件系统,无论是 NFS、SAMBA 还是像 SSHFS 这样的隧道。

支持一项名为 virtio-vsock 的新技术的工作正在进行中,该技术将允许运行 NFS-over-vsock,绕过网络需求 - 将其视为类似于 UNIX 套接字上的 NFS。不过,它还没有准备好使用,因此对于 Ubuntu/RHEL-7 对来说是不可能的。

【讨论】:

  • 感谢@DanielB 的回复。是的,几天前我读到了有关 virtio-vsock 的信息。目前看来不是一个选择。但是,我仍然想知道是否绝对没有办法让域 XML 的“文件系统”选项(在我原来的问题中提到)在没有 9p 文件系统的情况下工作? “文件系统”节点是完全依赖 9pfs 还是可以使用其他 FS 驱动程序?
  • XML 格式是通用的,但 9p 是当前可用于 QEMU 的唯一驱动程序
【解决方案2】:

使用来自 CentOSPlus 存储库 Wiki CentOSPlus 的来宾 (CentOS 7) 内核。 CentOSPlus 内核内置了 9p 文件系统支持。您可以使用

安装“kernel-plus”内核
yum --enablerepo=centosplus install kernel-plus

使用“kernel-plus”内核启动客户机,然后

mount -t 9p -o trans=virtio {sharetarget} {mountpoint}

有效。我在 CentOS 7 来宾系统上使用这种方式。

【讨论】:

    猜你喜欢
    • 2014-04-14
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 2015-02-15
    • 2017-12-10
    相关资源
    最近更新 更多