Chapitre 20. Partage de fichiers entre l'hôte et ses machines virtuelles
Il se peut que vous ayez souvent besoin de partager des données entre votre système hôte et les machines virtuelles (VM) qu'il exécute. Pour le faire rapidement et efficacement, vous pouvez configurer des partages de fichiers NFS sur votre système. Vous pouvez également utiliser le site virtiofs
pour partager des données avec vos machines virtuelles Linux et Windows.
20.1. Partage de fichiers entre l'hôte et ses machines virtuelles à l'aide de NFS Copier lienLien copié sur presse-papiers!
Pour un partage efficace des fichiers entre le système hôte RHEL 9 et les machines virtuelles (VM), vous pouvez exporter un partage NFS que les VM peuvent monter et auquel elles peuvent accéder.
Cependant, avec les VM Linux, il est généralement plus pratique d'utiliser la fonction virtiofs
fonctionnalité.
Conditions préalables
Le paquetage
nfs-utils
est installé sur l'hôte.dnf install nfs-utils -y
# dnf install nfs-utils -y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Un réseau virtuel de type
NAT
oubridge
est configuré pour connecter un hôte aux machines virtuelles. - Optional: Pour une meilleure sécurité, assurez-vous que vos machines virtuelles sont compatibles avec la version 4 ou ultérieure de NFS.
Procédure
Sur l'hôte, exportez un répertoire contenant les fichiers que vous souhaitez partager en tant que système de fichiers réseau (NFS) :
Partager un répertoire existant avec les machines virtuelles. Si vous ne souhaitez partager aucun des répertoires existants, créez-en un nouveau :
mkdir shared-files
# mkdir shared-files
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Obtenez l'adresse IP de chaque VM pour partager des fichiers à partir de l'hôte, par exemple, testguest1 et testguest2:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Modifiez le fichier
/etc/exports
sur l'hôte et ajoutez une ligne indiquant le répertoire que vous souhaitez partager, les adresses IP des machines virtuelles à partager et des options supplémentaires :/home/<username>/Downloads/<shared_directory>/ <VM1-IP(options)> <VM2-IP(options)> ...
/home/<username>/Downloads/<shared_directory>/ <VM1-IP(options)> <VM2-IP(options)> ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'exemple suivant partage le répertoire
/usr/local/shared-files
sur l'hôte avec testguest1 et testguest2, et permet aux machines virtuelles de modifier le contenu du répertoire :/usr/local/shared-files/ 192.0.2.2(rw,sync) 192.0.2.3(rw,sync)
/usr/local/shared-files/ 192.0.2.2(rw,sync) 192.0.2.3(rw,sync)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotePour partager un répertoire avec une VM Windows, vous devez vous assurer que le client NFS Windows dispose des droits d'écriture sur le répertoire partagé. Vous pouvez utiliser les options
all_squash
,anonuid
, etanongid
dans le fichier/etc/exports
./usr/local/shared-files/ 192.0.2.2(rw,sync,all_squash,anonuid=<directory-owner-UID>,anongid=<directory-owner-GID>)
<directory-owner-UID> et <directory-owner-GID> sont l'UID et le GID de l'utilisateur local qui possède le répertoire partagé sur l'hôte.
Pour d'autres options de gestion des autorisations des clients NFS, consultez le guide Sécuriser le service NFS.
Exporter le système de fichiers mis à jour :
exportfs -a
# exportfs -a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Démarrez le service
nfs-server
:systemctl start nfs-server
# systemctl start nfs-server
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Obtenez l'adresse IP du système hôte pour monter le répertoire partagé sur les machines virtuelles :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Notez que le réseau concerné relie l'hôte aux machines virtuelles pour le partage des fichiers. En général, il s'agit de
virbr0
.
Monter le répertoire partagé sur une VM Linux spécifiée dans le fichier
/etc/exports
:mount 192.0.2.1:/usr/local/shared-files /mnt/host-share
# mount 192.0.2.1:/usr/local/shared-files /mnt/host-share
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
192.0.2.1
: L'adresse IP de l'hôte. -
/usr/local/shared-files
: Chemin d'accès du système de fichiers au répertoire exporté sur l'hôte. /mnt/host-share
: Un point de montage sur la VMNoteLe point de montage doit être un répertoire vide.
-
Pour monter le répertoire partagé sur une VM Windows comme indiqué dans le fichier
/etc/exports
:- Ouvrez une invite PowerShell en tant qu'administrateur.
Installez le paquet
NFS-Client
sur Windows.Pour l'installation sur une version serveur, entrez :
Install-WindowsFeature NFS-Client
# Install-WindowsFeature NFS-Client
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour l'installer sur une version de bureau, entrez :
Enable-WindowsOptionalFeature -FeatureName ServicesForNFS-ClientOnly, ClientForNFS-Infrastructure -Online -NoRestart
# Enable-WindowsOptionalFeature -FeatureName ServicesForNFS-ClientOnly, ClientForNFS-Infrastructure -Online -NoRestart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Monter le répertoire exporté par l'hôte sur une VM Windows :
C:\Windows\system32\mount.exe -o anon \\192.0.2.1\usr\local\shared-files Z:
# C:\Windows\system32\mount.exe -o anon \\192.0.2.1\usr\local\shared-files Z:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple :
-
192.0.2.1
: L'adresse IP de l'hôte. -
/usr/local/shared-files
: Chemin d'accès au système de fichiers vers le répertoire exporté sur l'hôte. Z:
: La lettre du lecteur pour un point de montage.NoteVous devez choisir une lettre de lecteur qui n'est pas utilisée sur le système.
-
Vérification
Répertoriez le contenu du répertoire partagé sur la VM afin de pouvoir partager des fichiers entre l'hôte et la VM :
ls <mount_point>
$ ls <mount_point> shared-file1 shared-file2 shared-file3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Dans cet exemple, remplacez <mount_point> par un chemin d'accès au répertoire partagé monté.