20.2. Partage de fichiers entre l'hôte et ses machines virtuelles à l'aide de virtiofs


Avec virtiofs, vous pouvez partager des fichiers entre votre hôte et vos machines virtuelles (VM) sous la forme d'une arborescence de répertoires qui fonctionne de la même manière que la structure du système de fichiers local. Vous pouvez utiliser virtiofs pour effectuer les tâches suivantes :

20.2.1. Partage de fichiers entre l'hôte et ses machines virtuelles à l'aide de virtiofs

Lorsque vous utilisez RHEL 9 comme hyperviseur, vous pouvez partager efficacement des fichiers entre votre système hôte et ses machines virtuelles (VM) à l'aide de la fonctionnalité virtiofs.

Conditions préalables

  • La virtualisation est installée et activée sur votre hôte RHEL 9.
  • Un répertoire que vous souhaitez partager avec vos machines virtuelles. Si vous ne souhaitez partager aucun de vos répertoires existants, créez-en un nouveau, par exemple nommé shared-files.

    # mkdir /root/shared-files
  • La VM avec laquelle vous souhaitez partager des données utilise une distribution Linux comme système d'exploitation invité.

Procédure

  1. Pour chaque répertoire de l'hôte que vous souhaitez partager avec votre VM, définissez-le comme système de fichiers virtiofs dans la configuration XML de la VM.

    1. Ouvrez la configuration XML de la VM visée.

      # virsh edit vm-name
    2. Ajoutez une entrée similaire à la suivante à la section <devices> de la configuration XML de la VM.

      <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>

      Cet exemple définit le répertoire /root/shared-files sur l'hôte pour qu'il soit visible en tant que host-file-share par la VM.

  2. Configurez la mémoire partagée pour la VM. Pour ce faire, ajoutez la mémoire partagée à la section <domain> de la configuration XML :

    <domain>
     [...]
     <memoryBacking>
       <access mode='shared'/>
     </memoryBacking>
     [...]
    </domain>
  3. Démarrer la VM.

    # virsh start vm-name
  4. Monter le système de fichiers dans le système d'exploitation invité. L'exemple suivant monte le répertoire host-file-share précédemment configuré avec un système d'exploitation invité Linux.

    # mount -t virtiofs host-file-share /mnt

Vérification

  • Assurez-vous que le répertoire partagé est devenu accessible sur la VM et que vous pouvez maintenant ouvrir les fichiers stockés dans le répertoire.

Problèmes et limites connus

  • Les options de montage du système de fichiers liées au temps d'accès, telles que noatime et strictatime, ne sont pas susceptibles de fonctionner avec les virtiofs, et Red Hat déconseille leur utilisation.

Résolution de problèmes

  • Si virtiofs n'est pas optimal pour votre cas d'utilisation ou n'est pas pris en charge par votre système, vous pouvez utiliser NFS à la place.

20.2.2. Partage de fichiers entre l'hôte et les machines virtuelles Windows à l'aide de virtiofs

Lorsque vous utilisez RHEL 9 comme hyperviseur, vous pouvez partager efficacement des fichiers entre votre système hôte et les machines virtuelles (VM) Windows à l'aide de la fonctionnalité virtiofs et du paquetage virtio-win.

Note

Vous pouvez exécuter le service virtiofs en mode insensible à la casse sur une VM Windows à l'aide de la commande virtiofs.exe et du paramètre -i.

Conditions préalables

Procédure

  1. Sur votre VM Windows, installez WinFsp. Pour ce faire, montez l'image ISO virtio-win, lancez le programme d'installation MSI winfsp et suivez les instructions.

    Dans la fenêtre Custom Setup de l'assistant d'installation, sélectionnez les fonctionnalités que vous souhaitez installer sur la VM.

  2. Démarrer le service virtiofs :

    # sc start VirtioFsSvc
  3. Naviguez jusqu'à This PC:

    File Explorer This PC

    Virtiofs doit être disponible sur la VM Windows en tant que première lettre de lecteur disponible, en commençant par z: et en remontant. Par exemple, my_viofs (Z:).

    Important

    Vous devez redémarrer le service virtiofs après chaque redémarrage de la VM pour accéder au répertoire partagé.

  4. Optional: Pour mettre en place des instances virtiofs supplémentaires :

    1. Arrêter le service virtiofs :

      # sc stop VirtioFsSvc
      # sc config VirtioFsSvc start=demand
    2. Configurer le service WinFSP.Launcher pour mettre en place plusieurs instances virtiofs :

      # "C:\Program Files (x86)\WinFsp\bin\fsreg.bat" virtiofs "<path to the binary>\virtiofs.exe" "-t %1 -m %2"
    3. Monter les instances virtiofs sur les lecteurs.

      Par exemple, pour monter virtiofs avec l'étiquette mount_tag0 sur le lecteur Y::

      "C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" start virtiofs viofsY mount_tag0 Y:
    4. Répétez l'étape précédente pour monter toutes vos instances virtiofs.
    5. Pour démonter l'instance virtiofs :

      "C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" stop virtiofs viofsY

Vérification

  1. Sur votre VM Windows, accédez à This PC:

    File Explorer This PC

    • Si vous n'avez pas spécifié de point de montage lors de la configuration du service virtiofs, celui-ci utilisera la première lettre de lecteur disponible, en commençant par z: et en remontant.
    • Si vous avez configuré plusieurs instances virtiofs, elles apparaîtront comme des lecteurs avec les lettres que vous avez attribuées aux instances.

20.2.3. Partager des fichiers entre l'hôte et ses machines virtuelles en utilisant virtiofs dans la console web

Vous pouvez utiliser la console web RHEL pour partager efficacement des fichiers entre votre système hôte et ses machines virtuelles (VM) à l'aide de la fonctionnalité virtiofs.

Conditions préalables

  • Le plug-in VM de la console web est installé sur votre système.
  • Un répertoire que vous souhaitez partager avec vos machines virtuelles. Si vous ne souhaitez partager aucun de vos répertoires existants, créez-en un nouveau, par exemple nommé centurion.

    # mkdir /home/centurion
  • La VM avec laquelle vous souhaitez partager des données utilise une distribution Linux comme système d'exploitation invité.

Procédure

  1. Dans l'interface Machines virtuelles, cliquez sur la VM avec laquelle vous souhaitez partager des fichiers.

    Une nouvelle page s'ouvre avec une section Overview contenant des informations de base sur la VM sélectionnée et une section Console.

  2. Faites défiler jusqu'à Répertoires partagés.

    La section Shared directories affiche des informations sur les fichiers et les répertoires de l'hôte partagés avec cette VM et des options pour Add ou Remove un répertoire partagé.

    Image displaying the directories shared with the selected VM.
  3. Cliquez sur Ajouter un répertoire partagé.

    La boîte de dialogue Share a host directory with the guest apparaît.

    Image displaying the Share a host directory with the guest dialog box.
  4. Saisissez les informations suivantes :

    • Source path - Le chemin d'accès au répertoire hôte que vous souhaitez partager.
    • Mount tag - La balise que la VM utilise pour monter le répertoire.
  5. Définir des options supplémentaires :

    • Extended attributes - Permet d'activer ou non les attributs étendus, xattr, sur les fichiers et répertoires partagés.
  6. Cliquez sur Partager.

    Le répertoire sélectionné est partagé avec la VM.

Vérification

  • Assurez-vous que le répertoire partagé est accessible sur la VM et vous pouvez maintenant ouvrir les fichiers stockés dans ce répertoire.

20.2.4. Utilisation de la console web pour supprimer les fichiers partagés entre l'hôte et ses machines virtuelles à l'aide de virtiofs

Vous pouvez utiliser la console web RHEL pour supprimer les fichiers partagés entre votre système hôte et ses machines virtuelles (VM) à l'aide de la fonctionnalité virtiofs.

Conditions préalables

Procédure

  1. Dans l'interface Machines virtuelles, cliquez sur la VM dont vous souhaitez supprimer les fichiers partagés.

    Une nouvelle page s'ouvre avec une section Overview contenant des informations de base sur la VM sélectionnée et une section Console.

  2. Faites défiler jusqu'à Répertoires partagés.

    La section Shared directories affiche des informations sur les fichiers et les répertoires de l'hôte partagés avec cette VM et des options pour Add ou Remove un répertoire partagé.

    Image displaying the directories shared with the selected VM.
  3. Cliquez sur Supprimer en regard du répertoire que vous souhaitez annuler le partage avec la VM.

    La boîte de dialogue Remove filesystem apparaît.

    Image displaying the remove a filesystem dialog box.
  4. Cliquez sur Supprimer.

    Le répertoire sélectionné n'est pas partagé avec la VM.

Vérification

  • Le répertoire partagé n'est plus disponible et accessible sur la VM.
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.