第 19 章 在主机及其虚拟机间共享文件


您可能需要在主机系统和其运行的虚拟机(VM)之间共享数据。要快速高效地完成此操作,您可以使用 virtio 文件系统(virtiofs)。

通过使用 virtio 文件系统(virtiofs),您可以在主机和虚拟机(VM)之间共享文件,作为与本地文件系统结构相同的目录树。

当使用 RHEL 10 作为 hypervisor 时,您可以使用 virtiofs 功能在主机系统及其虚拟机(VM)间共享文件。

先决条件

  • 虚拟化 已在 RHEL 10 主机上安装并启用
  • 可用于与虚拟机共享的目录。如果您不想共享任何现有目录,请创建一个新目录,例如: shared-files

    # mkdir /root/shared-files
    Copy to Clipboard Toggle word wrap
  • 要共享文件的虚拟机使用 Linux 发行版作为其客户机操作系统。

流程

  1. 对于您要与虚拟机共享的主机的每个目录,请在虚拟机 XML 配置中将其设置为 virtiofs 文件系统。

    1. 打开预期虚拟机的 XML 配置。

      # virsh edit vm-name
      Copy to Clipboard Toggle word wrap
    2. 在虚拟机 XML 配置的 <devices> 部分添加类似于以下内容的条目。

      <filesystem type='mount' accessmode='passthrough'>
        <driver type='virtiofs'/>
        <binary path='/usr/libexec/virtiofsd' xattr='on'/>
        <source dir='/root/shared-files'/>
        <target dir='host-file-share'/>
      </filesystem>
      Copy to Clipboard Toggle word wrap

      本例设置主机上的 /root/shared-files 目录,使其作为 host-file-share 呈现给虚拟机。

  2. 为虚拟机设置共享内存。为此,请将共享内存支持添回到 XML 配置的 <domain> 部分:

    <domain>
     [...]
     <memoryBacking>
       <access mode='shared'/>
     </memoryBacking>
     [...]
    </domain>
    Copy to Clipboard Toggle word wrap
  3. 引导虚拟机。

    # virsh start vm-name
    Copy to Clipboard Toggle word wrap
  4. 在客户端操作系统中挂载文件系统。以下示例使用 Linux 客户机操作系统挂载之前配置的 host-file-share 目录。

    # mount -t virtiofs host-file-share /mnt
    Copy to Clipboard Toggle word wrap

验证

  • 确保共享目录可在虚拟机上访问,且您现在可以打开文件存储在 目录中。

限制和已知问题

  • 与访问时间相关的文件系统挂载选项(如 noatimestrictatime )可能不适用于 virtiofs,红帽不建议使用它。

您可以使用 RHEL web 控制台使用 virtiofs 功能在主机系统及其虚拟机(VM)之间高效地共享文件。

先决条件

  • Web 控制台 VM 插件 安装在您的系统上
  • 要与虚拟机共享的目录。如果您不想共享任何现有的目录,请创建一个新目录,例如,名为 centurion

    # mkdir /home/centurion
    Copy to Clipboard Toggle word wrap
  • 您要与之共享数据的虚拟机使用 Linux 发行版作为其客户机操作系统。

流程

  1. Virtual Machines 接口中,点击您要共享文件的虚拟机。

    这时将打开一个新页面,其中有一个 Overview 部分,其中包含有关所选虚拟机和 Console 部分的基本信息。

  2. 滚动到 Shared directories

    Shared directory 部分显示由该虚拟机共享的主机文件和目录的信息,以及用来 添加删除 共享目录的选项。

  3. 单击 Add shared directory

    此时会显示 与客户机共享 主机目录对话框。

  4. 输入以下信息:

    • Source path - 您要共享的主机目录的路径。
    • Mount tag - 虚拟机用来挂载目录的标签。
  5. 设置其它选项:

    • Extended attributes - 设置是否在共享文件和目录上启用扩展属性 xattr
  6. 单击 Share

    所选目录与虚拟机共享。

验证

  • 确保共享目录可在虚拟机上访问,并且您现在可以打开存储在该目录中的文件。

您可以使用 RHEL web 控制台使用 virtiofs 功能删除主机系统及其虚拟机(VM)之间共享的文件。

先决条件

流程

  1. Virtual Machines 接口中,点击您要从中删除共享文件的虚拟机。

    这时将打开一个新页面,其中有一个 Overview 部分,其中包含有关所选虚拟机和 Console 部分的基本信息。

  2. 滚动到 Shared directories

    Shared directories 部分显示与该虚拟机共享的主机文件和目录的信息,以及用于 添加或删除 共享目录的选项。

  3. 点击您要与虚拟机解除共享的目录旁边的 Remove

    Remove filesystem 对话框已被清除。

  4. 点击 Remove

    所选目录与虚拟机解除共享。

验证

  • 确保共享目录不再可用,并在虚拟机上访问。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat