Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
elearning:workbooks:redhat:rh134:l107 [2024/09/26 13:31] – created adminelearning:workbooks:redhat:rh134:l107 [2024/11/21 15:28] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
- 
-Version : **2023.01** 
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
  
-======LCF608 Présentation, Installation et Configuration de KVM======+======RH13408 Gestion du Stockage en Réseau======
  
 =====Contenu du Module===== =====Contenu du Module=====
  
-  * **LCF608 Présentation, Installation et Configuration de KVM**+  * **RH13408 Gestion du Stockage en Réseau**
     * Contenu du Module     * Contenu du Module
-    * Présentation +    * Présentation du Network File System (NFS) 
-    * LAB #1 - Installation de KVM +      * NFSv3 
-      * 1.1 - Installation des Paquets Requis +        * Les Services et Processus Principaux du Serveur NFSv3 
-      * 1.2 - Activation et Démarrage du Service libvirtd  +        * Options d'un Partage NFSv3 
-      * 1.Modules du Noyau +        * Commandes de Base de NFSv3 
-    * LAB #- Configuration de KVM        +      * NFSv4 
-      * 2.1 - Configuration du Pare-feu +        * Différences entre NFSv4 et NFSv3 
-      * 2.2 - Configuration du Réseau des VMs +    * LAB #1 - Configuration du Serveur NFSv4 
-      2.3 - Configuration du Stockage+      * 1.1 - Désactivation de NFSv3 
 +      * 1.2 - Définition d'un Partage 
 +    * LAB #2 - Configuration du Client 
 +      * 2.- Montage Éphémère 
 +      * 2.Montage Persistant 
 +    * LAB #- Configuration de NFSv4 avec Automounter 
 +      * Présentation 
 +      * Le Service autofs 
 +      * 3.1 - Création d'un Fichier de Mappage Indirect 
 +        * Configuration du Serveur 
 +        * Configuration du Client 
 +      * 3.2 - Création d'un Fichier de Mappage Indirect 
 +        * Configuration du Serveur 
 +        * Configuration du Client
  
-=====Présentation=====+=====Présentation du Network File System (NFS)=====
  
-====La Virtualisation====+Le Network File System (NFS) est un protocole Internet standard que Linux, UNIX et d'autres systèmes d'exploitation similaires utilisent comme système de fichiers réseau natif. NFS est une norme ouverte qui prend en charge 
 +les permissions Linux natives et les attributs du système de fichiers.
  
-Le système de base hébergeant les machines virtuelles est appelé l'**hôte** tandis que les machines virtuelles sont appelées les **invités**.+Par défaut, Red Hat 9 utilise la version 4.2 de NFS. RHEL prend entièrement en charge les protocoles NFSv3 et NFSv4. NFSv3 peut utiliser un protocole de transport TCP ou UDP, mais NFSv4 n'autorise que les connexions TCP.
  
-Il existe différentes méthodes de virtualisation :+Les serveurs NFS exportent des répertoires. Les clients NFS montent les répertoires exportés dans un répertoire local existant. Les clients NFS peuvent monter les répertoires exportés de plusieurs manières :
  
-  * **Virtualisation au niveau du système d'exploitation ou //L'Isolation//** +  * Manuellement en utilisant la commande mount, 
-    **Description** : Les systèmes invités utilisent le même noyau et une partie du système de fichiers de l'hôte. +  De manière persistante au démarrage en configurant des entrées dans le fichier /etc/fstab, 
-    * **L'avantage principal** : Économise des ressources. +  À la demande, en configurant une méthode de d'Automount.
-    * **L'inconvénient principal** : Les OS des invités ont besoin d'être modifiés pour fonctionner en tant que machine virtuelle. L'hôte et les invités doivent utiliser le même OS. +
-    * **Logiciels concernés** : %%OpenVZ%%, Linux %%VServer%%, BSD Jails, LXC (Linux Containers), Solaris Zones, Docker.+
  
-{{ :elearning:workbooks:centos:6:senior:inheritedpackageszones.png?nolink&300 |}}+Les méthodes d'Automount, comprennent :
  
-  * **Paravirtualisation ou //Hyperviseur de type 1//** +  * le service autofs, 
-    **Description** : Le système hôte met à disposition une machine virtuelle dans laquelle les autres invités s'exécutentLes systèmes invités sont modifiés et communiquent directement avec l'hyperviseur. +  systemd.automount.
-    * **L'avantage principal** : Efficacité. +
-    * **L'inconvénient principal** : Les OS des invités ont besoin d'être modifiés pour fonctionner en tant que machine virtuelle. +
-    * **Logiciels concernés** : Xen, VMWare(tm) ESX, Microsoft(tm) Hyper-V.+
  
-{{ :elearning:workbooks:centos:6:senior:hyperviseur1.png?nolink&300 |}}+Il convient d'installer le paquet **nfs-utils** afin d'obtenir les outils clients pour le montage manuel, ou pour le montage automatique, des répertoires exportés.
  
-  * **Virtualisation complète ou //Hyperviseur de type 2//** +Red Hat 9 prend également en charge le montage de répertoires partagés à partir de systèmes Microsoft Windows(Ren utilisant les mêmes méthodes que pour le protocole NFSen utilisant les protocoles **Server Message Block** (SMB) ou 
-    * **Description** : Le programme simule du matériel virtuel qui apparaît du point de vue de l'invité comme du matériel réellement existant. Un **hyperviseur** ou **VMM** //Virtual Machine Manager// contrôle l'invité et remplace certaines opérations par d'autres afin de gérer le processeur, le disque dur, la mémoire, les processus etc.. +**Common Internet File System** (CIFS). Les options de montage sont spécifiques au protocole et dépendent de la configuration du Windows ou du Samba.
-    * **L'avantage principal** : Les OS des invités n'ont pas besoin d'être modifiés pour fonctionner en tant que machine virtuelle. +
-    * **L'inconvénient principal** : La lenteur. +
-    * **Logiciels concernés** : VMWare(tmFusion, VMWare(tm) Player, VMWare(tm) Server, VMWare(tm) Fusion, Parallels Desktop, Parallels Server, Sun/Oracle %%VirtualBox%%, Microsoft(tm) VirtualPC, Microsoft(tm) VirtualServer, QEMU, BOCHS.+
  
-{{ :elearning:workbooks:centos:6:senior:hyperviseur2.png?nolink&300 |}}+====NFSv3====
  
-  * **Paravirtualisation avec prise en charge de matériel** +Le protocole NFS a changé de manière significative entre NFSv3 et NFSv4La méthode d'interrogation pour afficher les exportations disponibles est différente pour chaque version du protocoleNFSv3 utilise le protocole RPCqui nécessite un serveur de fichiers prenant en charge les connexions NFSv3 pour exécuter le service rpcbindUn client NFSv3 se connecte au service rpcbind sur le port 111 du serveur pour demander le service NFS. Le serveur répond en indiquant le port actuel du service NFSLa commande **showmount** est utilisée pour interroger les exportations disponibles sur un serveur NFSv3 basé sur RPC.
-    * **Description** : Les processeurs Intel-VT et AMD-V contiennent des instructions matérielles pour faciliter la virtualisationPour déterminer si le processeur dispose des fonctionnalités de virtualisation matérielles, soit Intel-VT, soit AMD-V, lancez la commande **# egrep '^flags.*(vmx|svm)' /proc/cpuinfo [Entrée]**. Dans le cas où vous ne voyez rienle processeur ne dispose **pas** de fonctionnalités de virtualisation matérielles. Par contre, même dans le cas de la prise en charge, vérifiez que les fonctionnalités soient activées dans le BIOS de la machine. +
-    * **L'avantage principal** : Efficacité liée au fait que la plupart des OS des invités n'ont pas besoin d'être modifiés pour fonctionner en tant que machine virtuelle. +
-    * **L'inconvénient principal** : Nécessite un processeur spécial. +
-    * **Logiciels concernés** : Xen, KVM+
  
-{{ :elearning:workbooks:centos:6:senior:xen-schema.png?nolink&300 |}}+===Les Services et Processus Principaux du Serveur NFSv3===
  
-====Xen====+La version NFSv3 utilise les services suivants :
  
-  * **[[http://www.xenproject.org/|Xen]]** a vu le jour en 2001 à l'**[[http://www.cl.cam.ac.uk/research/srg/netos/xen/index.html|Université de Cambridge]]**+^ Services ^ Fonction ^ 
-  Xen est un produit en licence GPL, +| **nfsd** | Démarre le service NFS ainsi que les processus RPC pour recevoir et traiter les demandes des clients | 
-  Il existe des systèmes de virtualisation commerciaux à base de Xen dont le plus connu est actuellement **Citrix %%XenServer%%**, +**nfslock** | Démarre les processus RPC qui permettent aux clients de verrouiller les fichiers sur le serveur  | 
-  * Xen est un système de virtualisation principalement destiné à la virtualisation de serveurs, +**portmap** | Gestion des réservations des ports pour les services RPC locaux afin que les services RPC distants puissent se connecter |
-  Xen est un système de **paravirtualisation** qui nécessite un noyau Linux modifié, +
-  * Xen ne peut pas lancé donc un système non-modifié tel Windows(tm) en mode paravirtualisation, +
-  * Xen peut lancer des systèmes non modifiés dans des **HVM** ( //Hardware Virtual Machine// ) depuis sa version 3 en utilisant une partie du code de QEMU combinée avec l'utilisation d'un processeur de virtualisation+
  
-====KVM====+===Options d'un Partage NFSv3===
  
-**[[http://www.linux-kvm.org|KVM]]** ou **K**ernel based **V**irtual **M**achine :+Certaines options, appliquées à un partage, modifient le comportement du serveur NFSv3 pour le partage concerné lors de son démarrage :
  
-  est un hyperviseur libre sous Linux+^ Option ^ Comportement ^ 
-  * ne fonctionne que sur les architectures x86 disposant des extensions Intel-VT ou AMD-V+**ro** | Accès en lecture seule | 
-  * est un projet issu de QEMU.+| **rw** | Accès en lecture / écriture | 
 +| **sync** | Ecriture synchrone ( écriture immédiate sur disque ) | 
 +| **async** | Ecriture asynchrone ( écriture sur disque en utilisant une cache ) | 
 +| **root_squash** | Root perd ses prérogatives sur le partage concerné | 
 +| **no_root_squash** | Root garde ses prérogatives sur le partage concerné | 
 +| **no_lock** | Pas de verrous sur les fichiers accédés | 
 +| **all_squash** | Force la mapping de tous les utilisateurs vers l'utilisateur **nobody** | 
 +| **anonuid** | Fixe l'UID de l'utilisateur anonyme | 
 +| **anongid** | Fixe le GID de l'utilisateur anonyme | 
 + 
 +<WRAP center round important> 
 +**Important** : Si plusieurs options sont spécifiéescelles-ci doivent être séparées par des virgules. 
 +</WRAP> 
 + 
 +===Commandes de Base de NFSv3=== 
 + 
 +Plusieurs commandes permettent de gérer et de s'informer sur l'activité du serveur NFSv3 : 
 + 
 +^ Commande ^ Comportement ^ 
 +**exportfs** | Affiche les partages actifs sur le serveur courant | 
 +| **nfsstat** | Affiche les statistiques de l'activité NFS | 
 +| **rpcinfo** | Affiche les démons gérés en effectuant une requête RPC sur le serveur courant | 
 +| **showmount** | Affiche les partages actifs sur un serveur distant | 
 +| **mount** | Permet de monter un partage distant sur un répertoire local | 
 + 
 +====NFSv4==== 
 + 
 +===Différences entre NFSv4 et NFSv3==== 
 + 
 +Le protocole NFSv4 a éliminé l'utilisation de l'ancien protocole RPC pour les transactions NFS. L'utilisation de la commande showmount sur un serveur qui ne prend en charge que NFSv4 s'interrompt sans recevoir de réponse car le service rpcbind n'est pas exécuté sur le serveur. Cependant, l'interrogation d'un serveur NFSv4 est plus simple que d'interroger un serveur NFSv3. 
 + 
 +NFSv4 a introduit une arborescence d'exportation qui contient tous les chemins d'accès aux répertoires exportés par le serveur. Pour afficher tous les répertoires exportés, il convient de monter la racine (/) de l'arborescence d'exportation du serveur. Le montage de la racine de l'arborescence d'exportation permet de parcourir les chemins d'accès de tous les répertoires exportés, en tant qu'enfants du répertoire racine de l'arborescence mais ne monte aucun des répertoires exportés. 
 + 
 +Le format de cette commande est le suivant : 
 + 
 +<code> 
 +# mkdir /mountpoint 
 + 
 +# mount -t nfs -o rw,sync server:/export /mountpoint 
 +</code>
  
 <WRAP center round important 60%> <WRAP center round important 60%>
-Important : Le module KVM est intégré dans le noyau Linux depuis la version 2.6.20 et permet la paravirtualisation depuis le noyau **2.6.25**.+**Important** L'option **-o sync** spécifie que toutes les transactions vers le système de fichiers exporté sont effectuées de manière synchrone, ce qui est fortement recommandée pour tous les montages réseau de production où les transactions doivent réussir sous peine d'être renvoyées en cas d'échec. Notez que seul, root, peut procéder aux montages.
 </WRAP> </WRAP>
  
-**KVM** appartient à la société **Red Hat**.+Pour monter une exportation NFSv4 tout en parcourant l'arborescence de l'exportation montée, il convient de changer de répertoire pour prendre un chemin d'accès au répertoire exporté. Il est aussi possible utiliser la commande mount avec le nom complet du chemin d'accès d'un répertoire exporté pour monter un seul répertoire exporté
  
-KVM permet de virtualiser :+A noter que, les répertoires exportés qui utilisent la sécurité Kerberos n'autorisent pas le montage ou l'accès à un répertoire lorsque vous parcourez une arborescence d'exportation, même si vous pouvez voir le chemin d'accès à l'exportation. Le montage de partages protégés par Kerberos nécessite une configuration supplémentaire du serveur et l'utilisation des informations d'identification de l'utilisateur Kerberos. Ce cas, ne fait pas partie de la certification RH134 mais est couvert dans la formation **RH362 - Red Hat SecurityIdentity Management and Active Directory Integration**.
  
-  * Windows(tm) à partir de Windows(tm) 2000, +=====LAB #1 - Configuration du Serveur NFSv4=====
-  * Toutes les distributions Linux, +
-  * La majorité des Unix BSD, +
-  * Solaris(tm) et openSolaris, +
-  * Minux, Hurd, QNX, +
-  * MSDOS.+
  
-KVM offre un support du matériel suivant :+Vérifiez l'état des machines virtuelles :
  
-  * USB, +<code> 
-  * Ethernet, +[root@redhat9 ~]# virsh list --all 
-  * PCI Hotplug, + Id   Name      State 
-  * Carte Son, +------------------------- 
-  * **Virtuo** - un périphérique disque paravirtualisé.+ 5    testvm1   running 
 + 8    testvm2   running 
 +</code>
  
-Les avantages de KVM par rapport à Xen sont :+Connectez-vous à machine virtuelle **testvm2** et activez et démarrez le service **nfs-server** :
  
-  * l’utilisation de noyaux non-modifiés au niveaux des invités+<code> 
-  * l'intégration direct dans le noyau Linux.+[root@redhat9 ~]# virsh console testvm2 
 +Connected to domain 'testvm2' 
 +Escape character is ^] (Ctrl + ]) 
 +[Enter] 
 +[root@testvm2 ~]# systemctl enable --now nfs-server 
 +Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service. 
 +[root@testvm2 ~]# systemctl status nfs-server 
 +● nfs-server.service - NFS server and services 
 +     Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; prese> 
 +     Active: active (exited) since Mon 2024-10-28 12:08:12 CET; 3s ago 
 +       Docs: man:rpc.nfsd(8) 
 +             man:exportfs(8) 
 +    Process: 5309 ExecStartPre=/usr/sbin/exportfs -r (code=exitedstatus=0/SUC> 
 +    Process: 5310 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS) 
 +    Process: 5329 ExecStart=/bin/sh -c if systemctl -q is-active gssproxy; then> 
 +   Main PID: 5329 (code=exited, status=0/SUCCESS) 
 +        CPU: 31ms
  
-=====LAB #- Installation de KVM=====+Oct 28 12:08:12 testvm2.ittraining.loc systemd[1]: Starting NFS server and serv> 
 +Oct 28 12:08:12 testvm2.ittraining.loc systemd[1]: Finished NFS server and serv> 
 +</code>
  
-====1.1 - Installation des Paquets Requis====+====1.1 - Désactivation de NFSv3====
  
-Avant d'installer KVM, il convient de savoir si le processeur de l'hôte supporte les extensions de virtualisation. Les extensions necessaires sont soit **vmx** soit **svm** selon que le processeur du système hôte soit de la marque Intel(tm) ou AMD(tm) +Le serveur NFS fonctionne en mode mixte NFSv3/NFSv4. Ceci est visible grâce à la sortie de la commande **nfsstat** : 
-         + 
-<code>         +<code> 
-[root@centos8 ~]# egrep '(vmx|svm)' /proc/cpuinfo | wc -l  +[root@testvm2 ~]# nfsstat 
-8+Server rpc stats: 
 +calls      badcalls   badfmt     badauth    badclnt 
 +0          0          0          0          0       
 </code> </code>
  
-La majorité des paquets necéssaires pour la virtualisation sous KVM ont été regroupés dans un **module** dénommé **virt**. Il convient donc de l'installer avec la commande **dnf** :+Pour désactiver le serveur NFSv3, éditez la section **[nfsd]** du fichier **/etc/nfs.conf** :
  
-<code>  +<code> 
-[root@centos8 ~]# dnf module install virt -y +[root@testvm2 ~]# cat /etc/nfs.conf 
 +... 
 +[nfsd] 
 +# debug=0 
 +# threads=8 
 +# host= 
 +# port=0 
 +# grace-time=90 
 +# lease-time=90 
 +# udp=n 
 +# tcp=y 
 +# vers3=y 
 +# vers4=y 
 +# vers4.0=y 
 +# vers4.1=y 
 +# vers4.2=y 
 +rdma=y 
 +rdma-port=20049 
 +...
 </code> </code>
  
-Si vous souhaitez utiliser l'interface graphique (non-recommandée) pour administrer les machines virtuelles, vous devez installer le paquet **virt-viewer** :+<code> 
 +[root@testvm2 ~]# vi /etc/nfs.conf 
 +[root@testvm2 ~]# cat /etc/nfs.conf 
 +... 
 +[nfsd] 
 +# debug=0 
 +# threads=8 
 +# host= 
 +# port=0 
 +# grace-time=90 
 +# lease-time=90 
 +# udp=n 
 +# tcp=y 
 +vers3=n 
 +# vers4=y 
 +# vers4.0=y 
 +# vers4.1=y 
 +vers4.2=y 
 +rdma=y 
 +rdma-port=20049 
 +... 
 +</code>
  
-<code>  +Désactivez tous les services NFSv3 :  
-[root@centos8 ~]# dnf install virt-install virt-viewer -y   + 
 +<code> 
 +[root@testvm2 ~]# systemctl mask --now rpc-statd.service rpcbind.service rpcbind.socket 
 +Created symlink /etc/systemd/system/rpc-statd.service → /dev/null.ervice rpcbind.socket 
 +Created symlink /etc/systemd/system/rpcbind.service → /dev/null. 
 +Created symlink /etc/systemd/system/rpcbind.socket → /dev/null.
 </code> </code>
  
-Le paquet **bridge-utils** est requis pour la gestion des bridges réseau. Installez donc celui-ci :+Redémarrez le service **nfs-server** : 
  
 <code> <code>
-[root@centos8 ~]# dnf install epel-release -y   +[root@testvm2 ~]# systemctl restart nfs-server
-[root@centos8 ~]# dnf install bridge-utils -y +
 </code> </code>
  
-Dernièrement, les outils dont vous aurez besoin se trouvent dans les paquets **virt-top** et **libguestfs-tools** :+Vérifiez la désactivation de NFSv3 en consultant le fichier **/proc/fs/nfsd/versions** :
  
-<code>  +<code> 
-[root@centos8 ~]# dnf install virt-top libguestfs-tools -y+[root@testvm2 ~]# cat /proc/fs/nfsd/versions 
 +-3 +4 +4.1 +4.2
 </code> </code>
  
-====1.2 Activation et Démarrage du Service libvirtd====+Créez ensuite le fichier **/etc/systemd/system/nfs-mountd.service.d/v4only.conf** :
  
-Activez et démarrez le service **libvirtd** pour démarrer KVM. Notez l'utilisation de l'option **--now** qui permet de faire les deux actions en une seule ligne de commande :+<code> 
 +[root@testvm2 ~]# mkdir /etc/systemd/system/nfs-mountd.service.d 
 + 
 +[root@testvm2 ~]# vi /etc/systemd/system/nfs-mountd.service.d/v4only.conf 
 + 
 +[root@testvm2 ~]# cat /etc/systemd/system/nfs-mountd.service.d/v4only.conf 
 +[Service] 
 +ExecStart= 
 +ExecStart=/usr/sbin/rpc.mountd --no-tcp --no-udp 
 +</code> 
 + 
 +Rechargez le service **nfs-mountd** :
  
 <code> <code>
-[root@centos8 ~]# systemctl enable --now libvirtd+[root@testvm2 ~]# systemctl daemon-reload 
 + 
 +[root@testvm2 ~]# systemctl restart nfs-mountd 
 + 
 +[root@testvm2 ~]# systemctl status nfs-mountd 
 +● nfs-mountd.service - NFS Mount Daemon 
 +     Loaded: loaded (/usr/lib/systemd/system/nfs-mountd.service; static) 
 +    Drop-In: /etc/systemd/system/nfs-mountd.service.d 
 +             └─v4only.conf 
 +     Active: active (running) since Mon 2024-10-28 12:44:22 CET; 10s ago 
 +       Docs: man:rpc.mountd(8) 
 +    Process: 1410 ExecStart=/usr/sbin/rpc.mountd --no-tcp --no-udp (code=exited> 
 +   Main PID: 1412 (rpc.mountd) 
 +      Tasks: 1 (limit: 11096) 
 +     Memory: 940.0K 
 +        CPU: 6ms 
 +     CGroup: /system.slice/nfs-mountd.service 
 +             └─1412 /usr/sbin/rpc.mountd --no-tcp --no-udp 
 + 
 +Oct 28 12:44:22 testvm2.ittraining.loc systemd[1]: Starting NFS Mount Daemon... 
 +Oct 28 12:44:22 testvm2.ittraining.loc rpc.mountd[1410]: mountd: No V2 or V3 li> 
 +Oct 28 12:44:22 testvm2.ittraining.loc rpc.mountd[1412]: Version 2.5.4 starting 
 +Oct 28 12:44:22 testvm2.ittraining.loc systemd[1]: Started NFS Mount Daemon.
 </code> </code>
  
-Vérifiez le statut du service avant de poursuivre :+====1.2 - Définition d'un Partage==== 
 + 
 +Créez le répertoire **/mountpoint** :
  
 <code> <code>
-[root@centos8 ~]# systemctl status libvirtd +[root@testvm2 ~]# mkdir /mountpoint 
-● libvirtd.service - Virtualization daemon +</code>
-   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) +
-   Active: active (running) since Wed 2021-09-01 10:19:05 EDT; 11s ago +
-     Docs: man:libvirtd(8) +
-           https://libvirt.org +
- Main PID: 7502 (libvirtd) +
-    Tasks: 19 (limit: 32768) +
-   Memory: 49.3M +
-   CGroup: /system.slice/libvirtd.service +
-           ├─1942 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper +
-           ├─1943 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper +
-           └─7502 /usr/sbin/libvirtd --timeout 120+
  
-Sep 01 10:19:05 centos8.ittraining.loc systemd[1]: Starting Virtualization daemon... +Modifez les permissions et le groupe du répertoire 
-Sep 01 10:19:05 centos8.ittraining.loc systemd[1]: Started Virtualization daemon. + 
-Sep 01 10:19:06 centos8.ittraining.loc dnsmasq[1942]: read /etc/hosts - 2 addresses +<code> 
-Sep 01 10:19:06 centos8.ittraining.loc dnsmasq[1942]: read /var/lib/libvirt/dnsmasq/default.addnhosts 0 addresses +[root@testvm2 ~]# chmod 2770 /mountpoint 
-Sep 01 10:19:06 centos8.ittraining.loc dnsmasq-dhcp[1942]read /var/lib/libvirt/dnsmasq/default.hostsfile+ 
 +[root@testvm2 ~]# chgrp users /mountpoint 
 + 
 +[root@testvm2 ~]# ls -ld /mountpoint/ 
 +drwxrws---. 2 root users 6 Oct 28 13:05 /mountpoint/
 </code> </code>
  
-====1.3 - Modules du Noyau====+Créez ensuite les fichiers **test1.txt** et **test2.txt** dans le répertoire **/mountpoint** :
  
-Votre VM présente aux système hôte un processeur de type Intel(tm). Pour que KVM puisse fonctionner dans cet environnement il a besoin que deux modules soient chargés :+<code> 
 +[root@testvm2 mountpoint1]# cd /mountpoint
  
-  * **kvm** +[root@testvm2 mountpoint]# touch test1.txt test2.txt 
-  * **kvm-intel** + 
-   +[root@testvm2 mountpoint1]# cd ~ 
-Vérifiez donc le bon chargement des modules concernés :+</code> 
 + 
 +Editez ensuite le fichier **/etc/exports** afin d'exporter le répertoire **/mountpoint** :
  
 <code> <code>
-[root@centos8 ~]# modinfo kvm +[root@testvm2 ~]# vi /etc/exports 
-filename:       /lib/modules/4.18.0-305.7.1.el8.i2tch.x86_64/kernel/arch/x86/kvm/kvm.ko.xz + 
-license:        GPL +[root@testvm2 ~]# cat /etc/exports 
-author:         Qumranet +/mountpoint     192.168.56.0/24(rw)     2001:db8::/32(rw)
-rhelversion:    8.4 +
-srcversion:     0B52FB25C4DD9865FC4FABA +
-depends:        irqbypass +
-intree:         Y +
-name:           kvm +
-vermagic:       4.18.0-305.7.1.el8.i2tch.x86_64 SMP mod_unload modversions  +
-sig_id:         PKCS#+
-signer:         CentOS kernel signing key +
-sig_key:        38:77:B1:DF:46:4F:B7:5C:99:8B:B9:BF:70:A4:10:85:91:7F:50:C1 +
-sig_hashalgo:   sha256 +
-signature:      24:2A:F9:57:2C:FB:D8:B1:3B:4B:FA:70:3B:FC:7E:23:E1:AC:06:5B: +
-                8D:0B:83:15:A5:56:43:04:23:FD:89:B1:BD:2C:8B:D0:0D:99:8C:9B: +
-                16:E5:E8:BB:C2:32:EE:62:18:E2:38:F9:2D:9D:1A:68:CA:63:3C:3B: +
-                B1:02:2E:46:FF:DF:6C:28:33:79:6D:FA:63:0A:B3:BA:DC:C7:FC:1D: +
-                FF:14:21:6C:AC:4B:67:2E:EC:A3:B8:96:A0:02:8C:BB:34:CA:CE:23: +
-                BD:34:10:B0:87:B6:55:7C:A9:24:1C:3A:94:9B:05:66:0D:E5:EE:28: +
-                CF:EE:74:9C:D3:CD:96:07:92:F6:D0:6C:FF:94:67:7A:C2:BB:26:BD: +
-                A9:AA:04:7C:19:64:1C:3D:9D:20:EE:1F:12:C1:D2:64:D3:36:62:22: +
-                CD:3D:F7:45:0F:E3:09:89:AC:11:54:AA:C5:56:E7:FE:CA:0C:AD:2A: +
-                FB:60:47:5A:70:6D:AF:F2:4D:6B:60:53:EA:95:4B:E9:BB:F0:F7:71: +
-                19:6A:60:F5:12:6D:C9:E3:86:37:AF:41:88:E3:08:47:F0:C1:C4:76: +
-                90:FE:47:81:36:3C:CE:BD:C9:44:30:99:B8:44:3E:F6:85:B3:44:9A: +
-                D9:76:64:92:3A:49:5A:67:91:35:B1:C7:E0:82:AF:8F:05:2C:CB:18: +
-                50:F1:4F:4E:B0:C3:D4:AE:37:9F:1B:FF:E9:AC:4C:7B:23:65:DA:0E: +
-                FE:98:1B:5A:D3:AB:6B:6A:EA:3C:7B:EC:54:84:CB:DB:EE:CD:F1:43: +
-                40:F0:A3:DB:9B:0A:F2:0A:1F:59:5C:88:3C:3C:CB:CF:3D:60:54:50: +
-                60:CC:C1:41:6A:C6:8B:7E:23:F6:D8:1B:5F:A1:73:98:D4:F8:1E:C7: +
-                D0:F5:F0:DF:E7:2A:79:A1:E6:A1:EE:B4:69:4C:15:DC:A8:A1:40:54: +
-                EC:9D:86:AF:B2:1D:DB:33:F8:63:5D:CD:58:12:F9:C2:FB:B6:19:EE: +
-                7F:CC:6E:6E +
-parm:           tdp_mmu:bool +
-parm:           nx_huge_pages:bool +
-parm:           nx_huge_pages_recovery_ratio:uint +
-parm:           flush_on_reuse:bool +
-parm:           ignore_msrs:bool +
-parm:           report_ignored_msrs:bool +
-parm:           min_timer_period_us:uint +
-parm:           kvmclock_periodic_sync:bool +
-parm:           tsc_tolerance_ppm:uint +
-parm:           lapic_timer_advance_ns:int +
-parm:           vector_hashing:bool +
-parm:           enable_vmware_backdoor:bool +
-parm:           force_emulation_prefix:bool +
-parm:           pi_inject_timer:bint +
-parm:           halt_poll_ns:uint +
-parm:           halt_poll_ns_grow:uint +
-parm:           halt_poll_ns_grow_start:uint +
-parm:           halt_poll_ns_shrink:uint+
 </code> </code>
 +
 +Configurez SELinux en mode **permissive** et arrêtez le service **firewalld** :
  
 <code> <code>
-[root@centos8 ~]# modinfo kvm_intel +[root@testvm2 ~]# setenforce permissive 
-filename:       /lib/modules/4.18.0-305.7.1.el8.i2tch.x86_64/kernel/arch/x86/kvm/kvm-intel.ko.xz + 
-license:        GPL +[root@testvm2 ~]systemctl stop firewalld
-author:         Qumranet +
-rhelversion:    8.4 +
-srcversion:     E25F50CB67CEEDD925DE618 +
-alias:          cpu:type:x86,ven*fam*mod*:feature:*0085* +
-depends:        kvm +
-intree:         Y +
-name:           kvm_intel +
-vermagic:       4.18.0-305.7.1.el8.i2tch.x86_64 SMP mod_unload modversions  +
-sig_id:         PKCS#+
-signer:         CentOS kernel signing key +
-sig_key:        38:77:B1:DF:46:4F:B7:5C:99:8B:B9:BF:70:A4:10:85:91:7F:50:C1 +
-sig_hashalgo:   sha256 +
-signature:      7A:B3:78:ED:6D:A0:85:21:C0:5B:21:FC:7D:54:A1:04:99:38:11:3B: +
-                11:A3:D6:05:DF:C2:DE:46:CE:CB:86:DD:1D:0E:7F:D5:6B:44:BC:DA: +
-                91:EC:0C:D8:F1:BA:60:BF:B1:D5:3A:DE:A7:DA:9B:F0:16:FD:B1:37: +
-                BB:DC:28:39:0D:99:92:45:1D:9B:19:42:9D:F7:9F:79:BB:31:86:8C: +
-                E4:00:18:B8:40:85:96:D2:F3:91:11:9A:8A:CD:90:1F:2A:A6:99:3A: +
-                2B:B1:D7:A5:52:D5:DA:5A:C9:57:23:42:7B:36:91:F1:CD:21:DC:87: +
-                56:53:C9:2F:23:9E:E3:F2:C7:17:46:90:F0:A5:46:C4:C7:46:8A:09: +
-                3B:17:34:8F:EB:C8:42:1C:06:E8:21:AB:D5:BA:66:3E:71:9C:0E:A1: +
-                6C:51:7B:19:DF:02:F5:39:8A:8D:09:87:8E:F0:61:04:5E:A7:01:76: +
-                51:E6:7A:C7:56:D5:AF:29:02:C1:0D:13:28:C1:5C:01:D9:13:44:3C: +
-                D0:B9:58:0C:46:AF:ED:9E:BE:C2:70:48:35:5F:DE:77:F4:29:16:FA: +
-                25:E2:FC:93:A4:8A:CC:69:DC:C1:11:0B:3A:24:D0:81:A2:2A:B8:E7: +
-                97:4F:EB:EF:AB:75:85:63:4D:DA:C9:45:D1:AE:86:A3:B2:66:97:48: +
-                7D:4D:2A:59:B6:AC:F7:CF:14:2A:5B:9D:40:5A:AF:DC:62:A7:EC:55: +
-                AC:4D:5F:E6:C1:EA:51:2B:EF:59:30:67:91:39:C1:E9:9D:A9:70:30: +
-                2E:25:37:A3:F2:3E:5A:5B:98:A6:EA:75:E7:AE:42:31:62:C1:A5:6A: +
-                8D:CA:7F:28:A3:52:C4:65:6F:6D:BA:D1:BA:47:1A:AC:25:E0:CB:58: +
-                D7:27:D2:85:88:45:3D:4A:AB:39:5E:FE:42:22:43:79:B4:AC:7C:39: +
-                A3:5E:8B:8E:81:6B:18:DB:4F:F3:A4:D8:72:6D:97:9B:85:D2:18:35: +
-                E6:C7:D9:84 +
-parm:           enable_shadow_vmcs:bool +
-parm:           nested_early_check:bool +
-parm:           vpid:bool +
-parm:           vnmi:bool +
-parm:           flexpriority:bool +
-parm:           ept:bool +
-parm:           unrestricted_guest:bool +
-parm:           eptad:bool +
-parm:           emulate_invalid_guest_state:bool +
-parm:           fasteoi:bool +
-parm:           enable_apicv:bool +
-parm:           nested:bint +
-parm:           pml:bool +
-parm:           dump_invalid_vmcs:bool +
-parm:           preemption_timer:bool +
-parm:           allow_smaller_maxphyaddr:bool +
-parm:           ple_gap:uint +
-parm:           ple_window:uint +
-parm:           ple_window_grow:uint +
-parm:           ple_window_shrink:uint +
-parm:           ple_window_max:uint +
-parm:           pt_mode:int +
-parm:           enlightened_vmcs:bool+
 </code> </code>
  
-=====LAB #2 Configuration de KVM======+Redémarrez le service **nfs-server** :
  
-====2.1 Configuration du Pare-feu====+<code> 
 +[root@testvm2 ~]# systemctl restart nfs-server
  
-Si vous souhaitez vous connecter aux machines virtuelles créées sous KVM en utilisant le protocole VNCvous devez ouvrir le port **5900/tcp** dans le système hôte :+[root@testvm2 ~]# systemctl status nfs-server 
 +● nfs-server.service - NFS server and services 
 +     Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; prese> 
 +     Active: active (exited) since Mon 2024-10-28 13:10:35 CET; 10s ago 
 +       Docs: man:rpc.nfsd(8) 
 +             man:exportfs(8) 
 +    Process: 1475 ExecStartPre=/usr/sbin/exportfs -r (code=exitedstatus=0/SUC> 
 +    Process: 1476 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS) 
 +    Process: 1486 ExecStart=/bin/sh -c if systemctl -q is-active gssproxy; then> 
 +   Main PID: 1486 (code=exited, status=0/SUCCESS) 
 +        CPU: 30ms 
 + 
 +Oct 28 13:10:34 testvm2.ittraining.loc systemd[1]: Starting NFS server and serv> 
 +Oct 28 13:10:35 testvm2.ittraining.loc systemd[1]: Finished NFS server and serv> 
 +</code> 
 + 
 +Ajoutez le groupe et l'utilisateur **trainee** :
  
 <code> <code>
-[root@centos8 ~]# firewall-cmd --permanent --add-port=5901/tcp +[root@testvm2 ~]# groupadd trainee && useradd trainee -c Trainee -d /home/trainee -g trainee -G users -/bin/bash 
-success+</code>
  
-[root@centos8 ~]# firewall-cmd --reload +Définissez le mot de passe **trainee** pour l'utilisateur **trainee** : 
-success+ 
 +<code> 
 +[root@testvm2 ~]# passwd trainee 
 +Changement de mot de passe pour l'utilisateur trainee. 
 +Nouveau mot de passe : trainee 
 +MOT DE PASSE INCORRECT : Le mot de passe comporte moins de 8 caractères 
 +Retapez le nouveau mot de passe : trainee 
 +passwd : mise à jour réussie de tous les jetons d'authentification.
 </code> </code>
  
-====2.2 - Configuration du Réseau des VMs====+=====LAB #2 - Configuration du Client NFSv4=====
  
-Lors de l'installation de KVM un pont a été créé ayant le nom **virbr0** et l'adresse IP **192.168.122.1/24** :+Déconnectez-vous de la machine virtuelle **testvm2** :
  
-  * La plage des adresses IP disponible pour les machines virtuelles KVM va de **192.168.122.2/24** à **192.168.122.254/24**,  +<code> 
-  * Ce pont met en place une connectivité de type **NAT** pour les machines virtuelles,  +[root@testvm2 ~]# [CTRL]+[VERR MAJ]+[5] 
-  * Une interface réseau fictive, **virbr0-nic** et appelée une esclave, a été ajoutée à ce pont principalement pour fournir une adresse MAC stable,  +[root@redhat9 ~]#  
-  * Normalement au fur et au mesure que d'autres VMs soient créées, d'autres interfaces fictives seraient ajoutées, une par VM. +</code> 
-   + 
-Les configurations ci-dessus peuvent être visualisées grâce à la commande **ip a ** :+Connectez-vous à la machine virtuelle **testvm1** :
  
 <code> <code>
-[root@centos8 ~]# ip a +[root@redhat9 ~]# virsh console testvm1 
-... +Connected to domain 'testvm1' 
-4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 +Escape character is ^] (Ctrl + ]) 
-    link/ether 52:54:00:79:02:66 brd ff:ff:ff:ff:ff:ff +[Enter] 
-    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 +[root@testvm1 /]#
-       valid_lft forever preferred_lft forever +
-5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000 +
-    link/ether 52:54:00:79:02:66 brd ff:ff:ff:ff:ff:ff+
 </code> </code>
-   + 
-Dans le cas où on ne souhaite pas ou on ne peut pas utiliser le pont créé par défaut, il convient de créer un autre pont. Dans notre cas, l'hôte KVM possède deux interfaces **ens18** et **ens19**. Nous allons donc dédier l'interface **ens19** au trafic réseau des machines virtuelles. Actuellement cette interface ne possède pas d'adresse IP +Installez le paquet **nfs-utils** :
  
 <code> <code>
-[root@centos8 ~]# ip a show ens19 +[root@testvm1 /]# dnf install -y nfs-utils
-3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 +
-    link/ether 46:de:37:c0:55:6c brd ff:ff:ff:ff:ff:ff+
 </code> </code>
  
-Elle n'est pas visible dans la sortie de la commande **nmcli c show** : +Ajoutez le groupe et l'utilisateur **trainee** :
-   +
-<code>   +
-[root@centos8 ~]# nmcli c show +
-NAME     UUID                                  TYPE      DEVICE  +
-ip_fixe  0f48c74d-5d16-4c37-8220-24644507b589  ethernet  ens18   +
-virbr0   d330b8f4-d08b-4b15-93cc-45c61e26ca6a  bridge    virbr0  +
-ens18    fc4a4d23-b15e-47a7-bcfa-b2e08f49553e  ethernet  --   +
-</code>  +
  
-Créez donc une adresse IP de 192.168.56.2/24 pour l'interface **ens19** :+<code> 
 +[root@testvm1 /]# groupadd trainee && useradd trainee -c Trainee -d /home/trainee -g trainee -G users -s /bin/bash 
 +</code> 
 + 
 +Définissez le mot de passe **trainee** pour l'utilisateur **trainee** :
  
 <code> <code>
-[root@centos8 ~]# nmcli connection add con-name ip_kvm ifname ens19 type ethernet ip4 192.168.56.2/24 gw4 192.168.56.1 +[root@testvm1 /]# passwd trainee 
-Connection 'ip_kvm' (afc8b175-f2cb-47b2-baca-66454058c36f) successfully added+Changement de mot de passe pour l'utilisateur trainee
-[root@centos8 ~]# nmcli c show +Nouveau mot de passe : trainee 
-NAME     UUID                                  TYPE      DEVICE  +MOT DE PASSE INCORRECT : Le mot de passe comporte moins de 8 caractères 
-ip_fixe  0f48c74d-5d16-4c37-8220-24644507b589  ethernet  ens18   +Retapez le nouveau mot de passe : trainee 
-ip_kvm   afc8b175-f2cb-47b2-baca-66454058c36f  ethernet  ens19   +passwd : mise à jour réussie de tous les jetons d'authentification.
-virbr0   d330b8f4-d08b-4b15-93cc-45c61e26ca6a  bridge    virbr0  +
-ens18    fc4a4d23-b15e-47a7-bcfa-b2e08f49553e  ethernet  -- +
 </code> </code>
  
-Utilisez la commande **ip** pour vérifier la prise en compte de la configuration :+===2.1 - Montage Ephémère=== 
 + 
 +Montez le partage **192.168.56.100:/mountpoint** sur le répertoire **/mnt** :
  
 <code> <code>
-[root@centos8 ~]# ip a show ens19 +[root@testvm1 /]# mount -t nfs -o rw,sync 192.168.56.100:/mountpoint /mnt 
-3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 +[172524.919003] FS-Cache: Loaded 
-    link/ether 46:de:37:c0:55:6c brd ff:ff:ff:ff:ff:ff +[172525.206140] Key type dns_resolver registered 
-    inet 192.168.56.2/24 brd 192.168.56.255 scope global noprefixroute ens19 +[172525.606078] NFS: Registering the id_resolver key type 
-       valid_lft forever preferred_lft forever +[172525.606089] Key type id_resolver registered 
-    inet6 fe80::4b01:d543:147:dd6d/64 scope link noprefixroute  +[172525.606090] Key type id_legacy registered
-       valid_lft forever preferred_lft forever+
 </code> </code>
  
-Notez que cette configuration a été stockée dans le fichier **/etc/sysconfig/network-scripts/ifcfg-ip_kvm** :+Vérifiez que le montage a été effectué :
  
 <code> <code>
-[root@centos8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ip_kvm  +[root@testvm1 /]# mount | grep mountpoint 
-TYPE=Ethernet +192.168.56.100:/mountpoint on /mnt type nfs4 (rw,relatime,sync,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.56.50,local_lock=none,addr=192.168.56.100)
-PROXY_METHOD=none +
-BROWSER_ONLY=no +
-BOOTPROTO=none +
-IPADDR=192.168.56.+
-PREFIX=24 +
-GATEWAY=192.168.56.+
-DEFROUTE=yes +
-IPV4_FAILURE_FATAL=no +
-IPV6INIT=yes +
-IPV6_AUTOCONF=yes +
-IPV6_DEFROUTE=yes +
-IPV6_FAILURE_FATAL=no +
-IPV6_ADDR_GEN_MODE=stable-privacy +
-NAME=ip_kvm +
-UUID=afc8b175-f2cb-47b2-baca-66454058c36f +
-DEVICE=ens19 +
-ONBOOT=yes+
 </code> </code>
  
-Vérifiez maintenant que vous pouvez communiquer avec la passerelle par défaut **192.168.56.1/24** :+Essayez de vous placer dans le répertoire **/mnt** :
  
 <code> <code>
-[root@centos8 ~]# ping 192.168.56.1 +[root@testvm1 /]# ls -l /mnt 
-PING 192.168.56.1 (192.168.56.1) 56(84) bytes of data. +lsimpossible d'ouvrir le répertoire '/mnt'Permission non accordée
-64 bytes from 192.168.56.1icmp_seq=1 ttl=64 time=14.6 ms +
-64 bytes from 192.168.56.1icmp_seq=2 ttl=64 time=0.209 ms +
-64 bytes from 192.168.56.1: icmp_seq=3 ttl=64 time=0.160 ms +
-^C +
---- 192.168.56.1 ping statistics --- +
-3 packets transmitted, 3 received, 0% packet loss, time 2002ms +
-rtt min/avg/max/mdev = 0.160/4.990/14.601/6.796 ms+
 </code> </code>
  
-Pour pouvoir gérer l'esclave par le pont qui va être créé, il faut modifier le fichier  **/etc/sysconfig/network-scripts/ifcfg-ip_kvm** :+L'utilisateur **root** ne peut pas se placer dans /mnt parce que root ne fait pas partie du groupe **users**. Devenez donc l'utilisateur **trainee** et lister le contenu du répertorie **/mnt** :
  
 <code> <code>
-[root@centos8 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ip_kvm  +[root@testvm1 /]# su trainee 
-[root@centos8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ip_kvm  + 
-TYPE=Ethernet +[trainee@testvm1 ~]$ ls -/mnt 
-BOOTPROTO=none +total 0 
-NAME=ip_kvm +-rw-r--r--. 1 root users 0 28 oct.  13:59 test1.txt 
-UUID=afc8b175-f2cb-47b2-baca-66454058c36f +-rw-r--r--. 1 root users 0 28 oct.  13:59 test2.txt
-DEVICE=ens19 +
-ONBOOT=yes +
-BRIDGE=virbr0+
 </code> </code>
  
-Pour créer le pont, il convient de créer le fichier **/etc/sysconfig/network-scripts/ifcfg-virbr0** :+Créez maintenant le fichier **/mnt/test3.txt** :
  
 <code> <code>
-[root@centos8 ~]# ls -l /etc/sysconfig/network-scripts/ifcfg-virbr0 +[trainee@testvm1 ~]$ touch /mnt/test3.txt
-ls: cannot access '/etc/sysconfig/network-scripts/ifcfg-virbr0': No such file or directory+
  
-[root@centos8 ~]# vi /etc/sysconfig/network-scripts/ifcfg-virbr0 +[trainee@testvm1 ~]$ ls -/mnt 
-[root@centos8 ~]# cat /etc/sysconfig/network-scripts/ifcfg-virbr0 +total 0 
-TYPE=BRIDGE +-rw-r--r--. 1 root    users 0 28 oct 13:59 test1.txt 
-DEVICE=virbr0 +-rw-r--r--1 root    users 0 28 oct 13:59 test2.txt 
-BOOTPROTO=non +-rw-r--r--1 trainee users 0 28 oct 14:06 test3.txt
-ONBOOT=yes +
-IPADDR=192.168.56.2 +
-NETMASK=255.255.255.0 +
-GATEWAY=192.168.56.1+
 </code> </code>
  
-<WRAP center round important 60%> +====2.2 - Montage Permanent====
-**Important** : Notez que le nom du pont est identique au pont existantCeci n'a pas d'importance. Notez aussi que l'adresse IP, le masque du réseau ainsi que la passerelle sont configurés dans le fichier décrivant le pont. +
-</WRAP>+
  
-Pour que la configuration puisse fonctionner, il est necéssaire d'activer le routage entre les interfaces dans l'hôte KVM :+Démontez le point de montage **/mnt** :
  
 <code> <code>
-[root@centos8 ~]# echo net.ipv4.ip_forward = 1 >> /usr/lib/sysctl.d/60-libvirtd.conf  +[root@testvm1 /]# umount /mnt 
-[root@centos8 ~]# cat /usr/lib/sysctl.d/60-libvirtd.conf  + 
-# The kernel allocates aio memory on demand, and this number limits the +[root@testvm1 /]# mount | grep mountpoint 
-number of parallel aio requests; the only drawback of a larger limit is + 
-# that a malicious guest could issue parallel requests to cause the kernel +[root@testvm1 /]ls /mnt 
-# to set aside memory.  Set this number at least as large as +
-#   128 * (number of virtual disks on the host) +
-# Libvirt uses a default of 1M requests to allow 8k disks, with at most +
-# 64M of kernel memory if all disks hit an aio request at the same time. +
-fs.aio-max-nr = 1048576 +
-net.ipv4.ip_forward = 1+
 </code> </code>
  
-En utilisant la commande **sysctl**, appliquez la nouvelle configuration :+Editez ensuite le fichier **/etc/fstab** en y ajoutant la ligne **192.168.56.100:/mountpoint      /mnt    nfs     rw,sync 0 0** :
  
 <code> <code>
-[root@centos8 ~]# /sbin/sysctl -p /usr/lib/sysctl.d/60-libvirtd.conf  +[root@testvm1 /]# vi /etc/fstab 
-fs.aio-max-nr 1048576 + 
-net.ipv4.ip_forward = 1+[root@testvm1 /]# cat /etc/fstab 
 + 
 +
 +# /etc/fstab 
 +# Created by anaconda on Fri Oct 25 15:41:24 2024 
 +
 +# Accessible filesystems, by reference, are maintained under '/dev/disk/'. 
 +# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
 +
 +# After editing this file, run 'systemctl daemon-reload' to update systemd 
 +# units generated from this file. 
 +
 +UUID=e778bb41-0528-4e4b-9b6b-b80070117978 /                       xfs     defaults        0 0 
 +UUID=6d55a589-bef2-4a9b-941f-d2f288057104 /boot                   xfs     defaults        0 0 
 +UUID=11306088-b22e-4906-9c31-b2f1a8b416fd none                    swap    defaults        0 0 
 +192.168.56.100:/mountpoint      /mnt    nfs     rw,sync 0 0 
 </code> </code>
  
-Dernièrement, il est important de configurer le pare-feu pour le pont :+Exécutez la commande **systemctl daemon-reload** pour une prise en compte des modifications :
  
 <code> <code>
-[root@centos8 ~]# firewall-cmd --permanent --direct --passthrough ipv4 -I FORWARD -o virbr0 -j ACCEPT +[root@testvm1 /]# systemctl daemon-reload 
-success +[175309.751966systemd-rc-local-generator[4833]: /etc/rc.d/rc.local is not marked executable, skipping.
-[root@centos8 ~]# firewall-cmd --permanent --direct --passthrough ipv4 -I FORWARD -i virbr0 -j ACCEPT +
-success+
 </code> </code>
 +
 +Appliquez maintenant le fichier **/etc/fstab** : 
  
 <code> <code>
-[root@centos8 ~]# firewall-cmd --reload +[root@testvm1 /]# mount -
-success+ 
 +[root@testvm1 /]# mount | grep mountpoint 
 +192.168.56.100:/mountpoint on /mnt type nfs4 (rw,relatime,sync,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.56.50,local_lock=none,addr=192.168.56.100)
 </code> </code>
  
-La configuration faite, vérifiez la prise en charge en utilisant la commande **ip** :+Devenez l'utilisateur **trainee** et vérifiez la présence des trois fichiers :
  
 <code> <code>
-[root@centos8 ~]# ip a +[root@testvm1 /]# su - trainee 
-1lo<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 +Dernière connexion : lundi 28 octobre 2024 à 14:04:58 CET sur ttyS0 
-    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + 
-    inet 127.0.0.1/8 scope host lo +[trainee@testvm1 ~]$ ls -l /mnt 
-       valid_lft forever preferred_lft forever +total 0 
-    inet6 ::1/128 scope host  +-rw-r--r--. 1 root    users 28 oct 13:59 test1.txt 
-       valid_lft forever preferred_lft forever +-rw-r--r--. 1 root    users 0 28 oct 13:59 test2.txt 
-2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 +-rw-r--r--. 1 trainee users 0 28 oct 14:06 test3.txt 
-    link/ether 4e:b1:31:bd:5d:b2 brd ff:ff:ff:ff:ff:ff + 
-    inet 10.0.2.46/24 brd 10.0.2.255 scope global noprefixroute ens18 +[trainee@testvm1 ~]$ exit 
-       valid_lft forever preferred_lft forever +déconnexion
-    inet 192.168.1.2/24 brd 192.168.1.255 scope global noprefixroute ens18 +
-       valid_lft forever preferred_lft forever +
-    inet6 fe80::5223:aee1:998e:9f27/64 scope link noprefixroute  +
-       valid_lft forever preferred_lft forever +
-3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 +
-    link/ether 46:de:37:c0:55:6c brd ff:ff:ff:ff:ff:ff +
-    inet 192.168.56.2/24 brd 192.168.56.255 scope global noprefixroute ens19 +
-       valid_lft forever preferred_lft forever +
-    inet6 fe80::4b01:d543:147:dd6d/64 scope link noprefixroute  +
-       valid_lft forever preferred_lft forever +
-4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 +
-    link/ether 52:54:00:79:02:66 brd ff:ff:ff:ff:ff:ff +
-    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 +
-       valid_lft forever preferred_lft forever +
-5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000 +
-    link/ether 52:54:00:79:02:66 brd ff:ff:ff:ff:ff:ff+
 </code> </code>
  
-<WRAP center round important 60%> +Déconnectez-vous de la machine virtuelle **testvm1** :
-**Important** : Notez que la configuration n'as **pas** été prise en compte. En effet, l'adresse IP de **virbr0** est toujours **192.168.122.1**. +
-</WRAP>+
  
-Consultez maintenant la list des réseaux configurés pour KVM :+<code> 
 +[root@testvm1 /]# [CTRL]+[VERR MAJ]+[5] 
 +[root@redhat9 ~]#  
 +</code> 
 + 
 +Connectez-vous à la machine virtuelle **testvm2** :
  
 <code> <code>
-[root@centos8 ~]# virsh net-list +[root@redhat9 ~]# virsh console testvm2 
- Name      State    Autostart   Persistent +Connected to domain 'testvm1' 
--------------------------------------------- +Escape character is ^] (Ctrl + ]) 
- default   active   yes         yes+[Enter] 
 +[root@testvm2 ~]#
 </code> </code>
  
-En utilisant la commande **virsh net-dumpxml**, il est possible de constater la configuration **actuelle** du pont :+Vérifiez la présence des trois fichiers dans le répertoire **/mountpoint** :
  
 <code> <code>
-[root@centos8 ~]# virsh net-dumpxml default +[root@testvm2 ~]# ls -/mountpoint 
-<network> +total 0 
-  <name>default</name> +-rw-r--r--. 1 root    users 0 Oct 28 13:59 test1.txt 
-  <uuid>0679ee40-befd-4f48-841e-7fc64885eb49</uuid> +-rw-r--r--. 1 root    users Oct 28 13:59 test2.txt 
-  <forward mode='nat'> +-rw-r--r--. 1 trainee users Oct 28 14:06 test3.txt
-    <nat> +
-      <port start='1024' end='65535'/> +
-    </nat> +
-  </forward> +
-  <bridge name='virbr0' stp='on' delay='0'/> +
-  <mac address='52:54:00:79:02:66'/> +
-  <ip address='192.168.122.1' netmask='255.255.255.0'> +
-    <dhcp> +
-      <range start='192.168.122.2' end='192.168.122.254'/> +
-    </dhcp> +
-  </ip> +
-</network>+
 </code> </code>
  
-Il est donc nécessaire d'éditer cette configuration pour refléter les modifications déjà apportées en utilisant la commande **virsh net-edit** :+=====LAB #3 - Configuration de NFSv4 avec Automounter===== 
 + 
 +====Présentation==== 
 + 
 +L'**Automounter** est un service,appelé **autofs**, qui monte automatiquement les systèmes de fichiers et les exportations NFS à la demande et démonte automatiquement les systèmes de fichiers et les exportations NFS lorsque les ressources montées ne sont plus utilisées. 
 + 
 +Automounter a été créée pour résoudre le problème des utilisateurs non privilégiés qui ne disposent pas des autorisations suffisantes pour utiliser la commande **mount**. Sans l'utilisation de la commande mount,les utilisateurs normaux ne peuvent pas accéder aux supports amovibles tels que les CD, les DVD et les lecteurs de disques amovibles. 
 + 
 +En outre, si un système de fichiers local ou distant n'est pas monté au démarrage à l'aide de la configuration **/etc/fstab**, un utilisateur normal ne peut pas monter et accéder à ces systèmes de fichiers non montés. 
 + 
 +Les fichiers de configuration d'Automounter contiennent des informations sur le montage du système de fichiers, de la même manière que les entrées du fichier /etc/fstab.  
 + 
 +Bien que les systèmes de fichiers spécifiés dans /etc/fstab se montent au démarrage du système restent montés jusqu'à l'arrêt du système ou toute autre intervention, les systèmes de fichiers contrôlés par l'Automounter se montent à la demande, lorsqu'un utilisateur ou une application tente d'entrer dans le point de montage du système de fichiers pour accéder aux fichiers. 
 + 
 +L'utilisation des ressources pour les systèmes de fichiers Automounter est équivalente à celle des systèmes de fichiers montés au démarrage car un système de fichiers n'utilise des ressources que lorsqu'un programme lit et écrit des fichiers ouverts. Les systèmes de fichiers montés mais inactifs et les systèmes de fichiers non montés utilisent la même quantité de ressources : presque aucune. 
 + 
 +L'avantage de l'Automounter est qu'en démontant le système de fichiers chaque fois qu'il n'est plus utilisé, le système de fichiers est protégé contre toute corruption inattendue, 
 + 
 +Lorsque le système de fichiers est à nouveau monté, le service autofs utilise la configuration de montage la plus récente, contrairement à un montage dans le fichier /etc/fstab, qui peut encore utiliser une configuration montée il y a plusieurs mois lors du dernier démarrage du système. En outre, si la configuration de serveur NFS comprend des serveurs et des chemins d'accès redondants, l'Automounter peut utiliser la configuration de montage la plus récente. 
 + 
 +====Le Service autofs==== 
 + 
 +Le service autofs prend en charge les mêmes systèmes de fichiers locaux et distants que le fichier /etc/fstab, y compris les protocoles de partage de fichiers NFS et SMB, et prend en charge les mêmes options de montage spécifiques au protocole, y compris les paramètres de sécurité. Les systèmes de fichiers montés par l'intermédiaire de l'Automounter sont accessibles par défaut à tous les utilisateurs, mais peuvent être restreints par des options d'autorisation d'accès. 
 + 
 +Comme l'Automounter est une configuration côté client qui utilise les commandes standard **mount** et **umount** pour gérer les systèmes de fichiers, les systèmes de fichiers montés automatiquement présentent un comportement identique aux systèmes de fichiers montés à l'aide du fichier **/etc/fstab**. 
 + 
 +La différence est qu'un système de fichiers Automounter reste démonté jusqu'à ce que l'on accède au point de montage, ce qui entraîne le montage immédiat du système de fichiers, qui reste monté tant que le système de fichiers est en cours d'utilisation. Lorsque tous les fichiers du système de sont fermés et que tous les utilisateurs et processus quittent le répertoire du point de montage, Automounter démonte le système de fichiers après un délai minimal. 
 + 
 +====3.1 Création d'un Fichier de Mappage Indirect==== 
 + 
 +On parle de montage indirect lorsque l'emplacement du point de montage n'est pas connu tant que la demande de montage n'a pas eu lieu. Un exemple de montage indirect est la configuration des répertoires personnels montés à distance, où le répertoire personnel d'un utilisateur inclut son nom d'utilisateur dans le chemin d'accès au répertoire. Le système de fichiers distant de l'utilisateur est monté sur son répertoire personnel, uniquement après qu'Automounter a appris quel utilisateur a spécifié de monter son répertoire personnel, et qu'il a déterminé que le système de fichiers distant est monté sur son répertoire personnel. Bien que des points de montage indirects semblent exister, le service autofs les crée lorsque la demande de montage se produit et les supprime à nouveau lorsque la demande est terminée et que le système de fichiers est démonté. 
 + 
 +===Configuration du Serveur=== 
 + 
 +Editez le fichier **/etc/exports** :
  
 <code> <code>
-[root@centos8 ~]# virsh net-edit default+[root@testvm2 ~]# vi /etc/exports 
 + 
 +[root@testvm2 ~]# cat /etc/exports 
 +/mountpoint     192.168.56.0/24(rw)     2001:db8::/32(rw) 
 +/home           192.168.56.0/24(rw)     2001:db8::/32(rw)
 </code> </code>
  
-A l'issu de votre édition, votre fichier doit correspondre à l'exemple suivant :+Redémarrez le service **nfs-server** :
  
-<file+<code
-<network> +[root@testvm2 ~]# systemctl restart nfs-server 
-  <name>default</name> +</code>
-  <uuid>0679ee40-befd-4f48-841e-7fc64885eb49</uuid> +
-  <forward mode='nat'/> +
-  <bridge name='virbr0' stp='on' delay='0'/> +
-  <mac address='52:54:00:79:02:66'/> +
-  <ip address='192.168.56.10' netmask='255.255.255.0'> +
-    <dhcp> +
-      <range start='192.168.56.11' end='192.168.56.254'/> +
-    </dhcp> +
-  </ip> +
-</network> +
-</file>+
  
-Sortez du mode édition. Vous noterez que la commande vous indique que le fichier a été modifié :+Devenez l'utilisateur **trainee** et créez le fichier **test4.txt** :
  
 <code> <code>
-[ESC]:q +[root@testvm2 ~]# su trainee 
-[root@centos8 ~]# virsh net-edit default +Last login: Tue Oct 29 13:56:07 CET 2024 on ttyS0 
-Network default XML configuration edited.+ 
 +[trainee@testvm2 ~]$ touch test4.txt
 </code> </code>
  
-Par contre, la simple édition du fichier n'a pas modifiée la configuration en cours :+===Configuration du Client=== 
 + 
 +Déconnectez-vous de la machine virtuelle **testvm2** :
  
 <code> <code>
-[root@centos8 ~]# virsh net-dumpxml default +[root@testvm2 ~]# [CTRL]+[VERR MAJ]+[5] 
-<network> +[root@redhat9 ~]# 
-  <name>default</name> +
-  <uuid>0679ee40-befd-4f48-841e-7fc64885eb49</uuid> +
-  <forward mode='nat'> +
-    <nat> +
-      <port start='1024' end='65535'/> +
-    </nat> +
-  </forward> +
-  <bridge name='virbr0' stp='on' delay='0'/> +
-  <mac address='52:54:00:79:02:66'/> +
-  <ip address='192.168.122.1' netmask='255.255.255.0'> +
-    <dhcp> +
-      <range start='192.168.122.2' end='192.168.122.254'/> +
-    </dhcp> +
-  </ip> +
-</network>+
 </code> </code>
  
-Notez que même en cas de re-démarrage du service, la configuration actuelle est persistante +Connectez-vous à la machine virtuelle **testvm1** :
  
 <code> <code>
-[root@centos8 ~]# systemctl restart libvirtd +[root@redhat9 ~]# virsh console testvm1 
-[root@centos8 ~]# systemctl status libvirtd +Connected to domain 'testvm1' 
-● libvirtd.service - Virtualization daemon +Escape character is ^] (Ctrl + ]
-   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled+[Enter] 
-   Active: active (running) since Thu 2021-09-02 10:27:41 EDT; 7s ago +[root@testvm1 /]# 
-     Docs: man:libvirtd(8) +</code>
-           https://libvirt.org +
- Main PID: 4037 (libvirtd) +
-    Tasks: 19 (limit: 32768) +
-   Memory: 57.5M +
-   CGroup: /system.slice/libvirtd.service +
-           ├─1950 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper +
-           ├─1951 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper +
-           └─4037 /usr/sbin/libvirtd --timeout 120+
  
-Sep 02 10:27:41 centos8.ittraining.loc systemd[1]: Starting Virtualization daemon... +Configurez SELinux en mode **permissive**
-Sep 02 10:27:41 centos8.ittraining.loc systemd[1]: Started Virtualization daemon. +
-Sep 02 10:27:41 centos8.ittraining.loc dnsmasq[1950]: read /etc/hosts - 2 addresses +
-Sep 02 10:27:41 centos8.ittraining.loc dnsmasq[1950]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses +
-Sep 02 10:27:41 centos8.ittraining.loc dnsmasq-dhcp[1950]: read /var/lib/libvirt/dnsmasq/default.hostsfile+
  
-[root@centos8 ~]# virsh net-dumpxml default +<code> 
-<network> +[root@testvm1 /]# setenforce permissive
-  <name>default</name> +
-  <uuid>0679ee40-befd-4f48-841e-7fc64885eb49</uuid> +
-  <forward mode='nat'> +
-    <nat> +
-      <port start='1024' end='65535'/> +
-    </nat> +
-  </forward> +
-  <bridge name='virbr0' stp='on' delay='0'/> +
-  <mac address='52:54:00:79:02:66'/> +
-  <ip address='192.168.122.1' netmask='255.255.255.0'> +
-    <dhcp> +
-      <range start='192.168.122.2' end='192.168.122.254'/> +
-    </dhcp> +
-  </ip> +
-</network>+
 </code> </code>
  
-Re-démarrez donc votre VM :+Arrêtez le service **firewalld** :
  
 <code> <code>
-[root@centos8 ~]# reboot+[root@testvm1 /]# systemctl stop firewalld
 </code> </code>
  
-Connectez-vous de nouveau à votre VM et contrôler la sortie de la commande **nmcli c show** :+Installez le paquet **autofs** :
  
 <code> <code>
-[root@centos8 ~]# nmcli c show +[root@testvm1 /]# dnf install autofs -y
-NAME     UUID                                  TYPE      DEVICE  +
-ip_fixe  0f48c74d-5d16-4c37-8220-24644507b589  ethernet  ens18   +
-virbr0   289e0fdd-2eb5-4dd3-811a-65a878926e56  bridge    virbr0  +
-ip_kvm   afc8b175-f2cb-47b2-baca-66454058c36f  ethernet  ens19   +
-ens18    fc4a4d23-b15e-47a7-bcfa-b2e08f49553e  ethernet  --   +
 </code> </code>
  
-Utilisez ensuite la commande **ip** pour vérifier l'adresse IP de **virbr0** :+Créez ensuite le fichier de mappage indirect maître **/etc/auto.master.d/home.autofs** :
  
 <code> <code>
-[root@centos8 ~]# ip a +[root@testvm1 /]# vi /etc/auto.master.d/home.autofs 
-1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 + 
-    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 +[root@testvm1 /]# cat /etc/auto.master.d/home.autofs  
-    inet 127.0.0.1/8 scope host lo +/home   /etc/auto.home
-       valid_lft forever preferred_lft forever +
-    inet6 ::1/128 scope host  +
-       valid_lft forever preferred_lft forever +
-2: ens18: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 +
-    link/ether 4e:b1:31:bd:5d:b2 brd ff:ff:ff:ff:ff:ff +
-    inet 10.0.2.46/24 brd 10.0.2.255 scope global noprefixroute ens18 +
-       valid_lft forever preferred_lft forever +
-    inet 192.168.1.2/24 brd 192.168.1.255 scope global noprefixroute ens18 +
-       valid_lft forever preferred_lft forever +
-    inet6 fe80::5223:aee1:998e:9f27/64 scope link noprefixroute  +
-       valid_lft forever preferred_lft forever +
-3: ens19: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master virbr0 state UP group default qlen 1000 +
-    link/ether 46:de:37:c0:55:6c brd ff:ff:ff:ff:ff:ff +
-4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 +
-    link/ether 52:54:00:79:02:66 brd ff:ff:ff:ff:ff:ff +
-    inet 192.168.56.10/24 brd 192.168.56.255 scope global virbr0 +
-       valid_lft forever preferred_lft forever +
-5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000 +
-    link/ether 52:54:00:79:02:66 brd ff:ff:ff:ff:ff:ff+
 </code> </code>
  
-Dernièrement, vérifier la connectivité avec la passerelle **192.162.56.1/24** :+Créez le fichier de mappage **/etc/auto.home** :
  
 <code> <code>
-[root@centos8 ~]# ping 192.168.56.1 +[root@testvm1 /]# vi /etc/auto.home 
-PING 192.168.56.1 (192.168.56.1) 56(84) bytes of data. + 
-64 bytes from 192.168.56.1: icmp_seq=1 ttl=64 time=14.8 ms +[root@testvm1 /]# cat /etc/auto.home 
-64 bytes from 192.168.56.1: icmp_seq=2 ttl=64 time=0.154 ms +*       -fstype=nfs4,rw,sync    192.168.56.100:/home/&
-64 bytes from 192.168.56.1icmp_seq=3 ttl=64 time=0.153 ms +
-^C +
---- 192.168.56.1 ping statistics --- +
-3 packets transmitted, 3 received, 0% packet loss, time 2023ms +
-rtt min/avg/max/mdev = 0.153/5.030/14.785/6.897 ms+
 </code> </code>
  
-====2.3 - Configuration du Stockage====+<WRAP center round important 60%> 
 +**Important** : Notez que le format du nom du fichier de mappage maître est **nom**.autofs et que le format du nom du fichier de mappage est auto.**nom**. Les deux valeurs de **nom** doivent être identique. 
 +</WRAP>
  
-KVM a besoin d'un emplacement pour stocker les VMs créées. L'hôte KVM a été configuré avec un disque supplémentaire **sdd** d'une taille de **32 Go** à cet effet :+Afin d'éviter des erreurs liées à la non-implémentation de **sss**, supprimer **sss** de la ligne **automount** du fichier **/etc/nsswitch.conf** :
  
 <code> <code>
-[root@centos8 ~]# lsblk +[root@testvm1 /]# vi /etc/nsswitch.conf 
-NAME                MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT + 
-sda                   8:   0   32G  0 disk  +[root@testvm1 /]# cat /etc/nsswitch.conf 
-├─sda1                8:1    0    1G  0 part /boot +... 
-└─sda2                8:2    0   31G  0 part  +# In order of likelihood of use to accelerate lookup. 
-  ├─cl_centos8-root 253:0    0 27.8G  0 lvm  / +passwd    sss files systemd 
-  └─cl_centos8-swap 253:1    0  3.2G  0 lvm  [SWAP] +shadow    files 
-sdb                   8:16      4G  0 disk  +group     sss files systemd 
-sdc                   8:32   0   64G  0 disk  +hosts     files dns myhostname 
-└─sdc1                8:33   0   64G  0 part /home +services:   files sss 
-sdd                   8:48     32G  0 disk  +netgroup:   sss 
-sr0                  11:0    1 1024M  0 rom   +automount:  files 
 +...
 </code> </code>
  
-Créez donc sur **/dev/sdd** un volume physique ainsi qu'un groupe de volumes appelé **kvm_storage** :+Activez et démarrez le service **autofs** :
  
 <code> <code>
-[root@centos8 ~]# pvcreate /dev/sdd +[root@testvm1 /]# systemctl enable --now autofs 
-  Physical volume "/dev/sdd" successfully created. + 
-[root@centos8 ~]# vgcreate kvm_storage /dev/sdd +[root@testvm1 /]# systemctl status autofs 
-  Volume group "kvm_storage" successfully created+● autofs.service - Automounts filesystems on demand 
 +     Loaded: loaded (/usr/lib/systemd/system/autofs.service; enabled; preset: d> 
 +     Active: active (running) since Tue 2024-10-29 13:55:10 CET; 19min ago 
 +   Main PID: 3425 (automount) 
 +      Tasks: 7 (limit: 23172) 
 +     Memory: 6.1M 
 +        CPU: 68ms 
 +     CGroup: /system.slice/autofs.service 
 +             └─3425 /usr/sbin/automount --systemd-service --dont-check-daemon 
 + 
 +oct. 29 13:55:10 testvm1.ittraining.loc systemd[1]: Starting Automounts filesys> 
 +oct. 29 13:55:10 testvm1.ittraining.loc systemd[1]: Started Automounts filesyst>
 </code> </code>
 +
 +Vérifiez la prise en compte de la configuration :
  
 <code> <code>
-[root@centos8 ~]# vgs +[root@testvm1 /]# mount | tail 
-  VG          #PV #LV #SN Attr   VSize   VFree   +none on /run/credentials/systemd-tmpfiles-setup-dev.service type ramfs (ro,nosuid,nodev,noexec,relatime,seclabel,mode=700) 
-  cl_centos8    1     0 wz--n<31.00g      0  +fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime) 
-  kvm_storage       0 wz--n- <32.00g <32.00g+/dev/vda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota) 
 +none on /run/credentials/systemd-tmpfiles-setup.service type ramfs (ro,nosuid,nodev,noexec,relatime,seclabel,mode=700) 
 +sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime) 
 +192.168.56.100:/mountpoint on /mnt type nfs4 (rw,relatime,sync,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.56.50,local_lock=none,addr=192.168.56.100) 
 +tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=164980k,nr_inodes=41245,mode=700,inode64) 
 +/etc/auto.misc on /misc type autofs (rw,relatime,fd=6,pgrp=3425,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=35290) 
 +-hosts on /net type autofs (rw,relatime,fd=9,pgrp=3425,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=33681) 
 +/etc/auto.home on /home type autofs (rw,relatime,fd=12,pgrp=3425,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=35294)
 </code> </code>
  
-Créez ensuite un volume logique, dénommé **kvm_lv**, occupant toute l'espace disponible dans le groupe de volumes :+Devenez l'utilisateur **trainee** :
  
 <code> <code>
-[root@centos8 ~]# lvcreate -l +100%FREE -n kvm_lv kvm_storage +[root@testvm1 /]# su trainee 
-  Logical volume "kvm_lv" created. +Dernière connexion : mardi 29 octobre 2024 à 13:55:17 CET sur ttyS0
-   +
-[root@centos8 ~]# lvs +
-  LV     VG          Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert +
-  root   cl_centos8  -wi-ao----  27.79g                                                     +
-  swap   cl_centos8  -wi-ao----   3.20g                                                     +
-  kvm_lv kvm_storage -wi-a----- <32.00g+
 </code> </code>
  
-Créez ensuite un système de fichiers de type **xfs** sur le volume logique **kvm_lv** : +Exécutez la commande **ls**. Vous devez voir le fichier **test4.txt** qui a été créé dans la machine virtuelle **testvm2** : 
-  +
 <code> <code>
-[root@centos8 ~]# mkfs.xfs /dev/mapper/kvm_storage-kvm_lv +[trainee@testvm1 ~]$ ls 
-meta-data=/dev/mapper/kvm_storage-kvm_lv isize=512    agcount=4, agsize=2096896 blks +test4.txt 
-         =                       sectsz=512   attr=2, projid32bit=1 + 
-                               crc=1        finobt=1, sparse=1, rmapbt=0 +[trainee@testvm1 ~]$ exit
-                               reflink=1 +
-data                           bsize=4096   blocks=8387584, imaxpct=25 +
-                               sunit=0      swidth=0 blks +
-naming   =version 2              bsize=4096   ascii-ci=0, ftype=1 +
-log      =internal log           bsize=4096   blocks=4095, version=2 +
-                               sectsz=512   sunit=0 blks, lazy-count=1 +
-realtime =none                   extsz=4096   blocks=0, rtextents=0 +
-Discarding blocks...Done.+
 </code> </code>
  
-Éditez ensuite le fichier **/etc/fstab** afin de monter automatiquement le volume logique sur **/var/lib/libvirt/images** :+Déconnectez-vous de la machine virtuelle **testvm1** :
  
 <code> <code>
-[root@centos8 ~]# vi /etc/fstab +[root@testvm1 /]# [CTRL]+[VERR MAJ]+[5] 
-[root@centos8 ~]# cat /etc/fstab+[root@redhat9 ~]#  
 +</code>
  
-+Connectez-vous à la machine virtuelle **testvm2** :
-# /etc/fstab +
-# Created by anaconda on Wed Jun 16 06:21:32 2021 +
-+
-# Accessible filesystems, by reference, are maintained under '/dev/disk/'+
-# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. +
-+
-# After editing this file, run 'systemctl daemon-reload' to update systemd +
-# units generated from this file. +
-+
-/dev/mapper/cl_centos8-root /                       xfs     defaults        0 0 +
-UUID=1c04981e-5317-4b73-9695-3ce25246835d /boot                   ext4    defaults        1 2 +
-/dev/mapper/cl_centos8-swap swap                    swap    defaults        0 0 +
-UUID=f76d6b66-985b-4a91-af9c-4987e8c1443c /home     ext4          defaults,usrquota,grpquota            1 2+
  
-## KVM Guest Image Store +<code> 
-/dev/mapper/kvm_storage-kvm_lv   /var/lib/libvirt/images xfs defaults 0 0+[root@redhat9 ~]virsh console testvm2 
 +Connected to domain 'testvm2' 
 +Escape character is ^] (Ctrl + ]) 
 +[Enter] 
 +[root@testvm2 ~]#
 </code> </code>
  
-Montez ensuite le volume logique :+Devenez l'utilisateur **trainee** et créez le fichier **test5.txt** :
  
 <code> <code>
-[root@centos8 ~]# df -h +[root@testvm2 ~]# su trainee 
-Filesystem                   Size  Used Avail Use% Mounted on +Last login: Tue Oct 29 13:56:07 CET 2024 on ttyS0
-devtmpfs                     1.8G      1.8G   0% /dev +
-tmpfs                        1.9G      1.9G   0% /dev/shm +
-tmpfs                        1.9G  9.5M  1.9G   1% /run +
-tmpfs                        1.9G      1.9G   0% /sys/fs/cgroup +
-/dev/mapper/cl_centos8-root   28G   17G   12G  58% / +
-/dev/sda1                    976M  453M  457M  50% /boot +
-/dev/sdc1                     63G   22G   39G  36% /home +
-tmpfs                        374M   20K  374M   1% /run/user/1000 +
-tmpfs                        374M  1.2M  373M   1% /run/user/42+
  
-[root@centos8 ~]# mount -a+[trainee@testvm2 ~]$ touch test5.txt
  
-[root@centos8 ~]# df -h +[trainee@testvm2 ~]$ ls 
-Filesystem                      Size  Used Avail Use% Mounted on +test4.txt  test5.txt
-devtmpfs                        1.8G      1.8G   0% /dev +
-tmpfs                           1.9G      1.9G   0% /dev/shm +
-tmpfs                           1.9G  9.5M  1.9G   1% /run +
-tmpfs                           1.9G      1.9G   0% /sys/fs/cgroup +
-/dev/mapper/cl_centos8-root      28G   17G   12G  58% / +
-/dev/sda1                       976M  453M  457M  50% /boot +
-/dev/sdc1                        63G   22G   39G  36% /home +
-tmpfs                           374M   20K  374M   1% /run/user/1000 +
-tmpfs                           374M  1.2M  373M   1% /run/user/42 +
-/dev/mapper/kvm_storage-kvm_lv   32G  261M   32G   1% /var/lib/libvirt/images+
 </code> </code>
  
-Notez que ce volume est actuellement vide :+Déconnectez-vous de la machine virtuelle **testvm2** :
  
 <code> <code>
-[root@centos8 ~]# ls -l /var/lib/libvirt/images/ +[root@testvm2 ~]# [CTRL]+[VERR MAJ]+[5] 
-total 0+[root@redhat9 ~]# 
 </code> </code>
  
-Utilisez la commande **virsh pool-list** pour voir les pools de stockage déjà configurés. Cette liste devrait être vide :+Connectez-vous à la machine virtuelle **testvm1** :
  
 <code> <code>
-[root@centos8 ~]# virsh pool-list +[root@redhat9 ~]# virsh console testvm1 
- Name   State   Autostart +Connected to domain 'testvm1' 
----------------------------+Escape character is ^] (Ctrl + ]) 
 +[Enter] 
 +[root@testvm1 /]# 
 +</code> 
 + 
 +Devenez l'utilisateur **trainee** et exécutez la commande **ls**. Vous devez voir le fichier **test5.txt** qui a été créé dans la machine virtuelle **testvm2** :  
 + 
 +<code> 
 +[trainee@testvm1 ~]$ ls 
 +test4.txt  test5.txt
  
 +[trainee@testvm1 ~]$ exit
 </code> </code>
  
-Définissez le pool de stockage **kvm-storagepool** dans KVM grâce à la commande **virsh pool-define-as** :+====3.2 - Création d'un Fichier de Mappage Direct==== 
 + 
 +On parle de montage direct lorsqu'un système de fichiers est monté sur un point de montage immuable et connu. Un point de montage direct existe en tant que répertoire permanent, comme les autres répertoires normaux. 
 + 
 +Déconnectez-vous de la machine virtuelle **testvm1** :
  
 <code> <code>
-[root@centos8 ~]# virsh pool-define-as kvm-storagepool --type=dir --target /var/lib/libvirt/images/ +[root@testvm1 /]# [CTRL]+[VERR MAJ]+[5] 
-Pool kvm-storagepool defined+[root@redhat9 ~]# 
 </code> </code>
  
-<WRAP center round important 60%> +Connectez-vous à la machine virtuelle **testvm2** :
-**Important** : Consultez **[[https://libvirt.org/storage.html#StorageBackendDir|cette page]]** pour connaître les types de pool utilisés par libvirt. +
-</WRAP>+
  
-Consultez **[[https://libvirt.org/storage.html#StorageBackendDir|cette page]]** pour connaître les types de pool utilisés par libvirt.+<code> 
 +[root@redhat9 ~]virsh console testvm2 
 +Connected to domain 'testvm2' 
 +Escape character is ^(Ctrl + ]
 +[Enter] 
 +[root@testvm2 ~]# 
 +</code>
  
-Démarrez maintenant le pool **kvm-storagepool** :+===Configuration du Serveur=== 
 + 
 +Éditez le fichier **/etc/exports** en y ajoutant la ligne **/mountpoint1    192.168.56.0/24(rw)     2001:db8::/32(rw)** :
  
 <code> <code>
-[root@centos8 ~]# virsh pool-start kvm-storagepool +[root@testvm2 ~]# vi /etc/exports 
-Pool kvm-storagepool started+ 
 +[root@testvm2 ~]# cat /etc/exports 
 +/mountpoint     192.168.56.0/24(rw)     2001:db8::/32(rw) 
 +/home           192.168.56.0/24(rw)     2001:db8::/32(rw) 
 +/mountpoint1    192.168.56.0/24(rw)     2001:db8::/32(rw)
 </code> </code>
  
-Contrôlez l'état du pool **kvm-storagepool** :+Redémarrez le service **nfs-server** :
  
 <code> <code>
-[root@centos8 ~]# virsh pool-list +[root@testvm2 ~]# systemctl restart nfs-server
- Name              State    Autostart +
---------------------------------------- +
- kvm-storagepool   active   no+
 </code> </code>
  
-<WRAP center round important 60%> +Créez le répertoire **/mountpoint1** et modifiez les permissions :
-**Important** : Notez que le pool ne sera pas démarré automatiquement parce que la valeur d**'autostart** est **no**. +
-</WRAP>+
  
-Fixez la valeur d'autostart à **yes** grâce à la commande **virsh pool-autostart** :+<code> 
 +[root@testvm2 ~]# mkdir /mountpoint1 
 + 
 +[root@testvm2 ~]# chmod 777 /mountpoint1 
 +</code> 
 + 
 +===Configuration du Client=== 
 + 
 +Déconnectez-vous de la machine virtuelle **testvm2** :
  
 <code> <code>
-[root@centos8 ~]# virsh pool-autostart kvm-storagepool +[root@testvm2 ~]# [CTRL]+[VERR MAJ]+[5] 
-Pool kvm-storagepool marked as autostarted+[root@redhat9 ~]#  
 +</code>
  
-[root@centos8 ~]# virsh pool-list +Connectez-vous à la machine virtuelle **testvm1** : 
- Name              State    Autostart + 
---------------------------------------- +<code> 
- kvm-storagepool   active   yes+[root@redhat9 ~]# virsh console testvm1 
 +Connected to domain 'testvm1' 
 +Escape character is ^] (Ctrl + ]) 
 +[Enter] 
 +[root@testvm1 /]#
 </code> </code>
  
-Dernièrement, constatez les détails du pool configuré :+Créez le fichier de mappage direct maître **/etc/auto.master.d/mountpoint1.autofs** :
  
 <code> <code>
-[root@centos8 ~]# virsh pool-list --all --details +[root@testvm1 /]# vi /etc/auto.master.d/mountpoint1.autofs 
- Name              State     Autostart   Persistent   Capacity    Allocation   Available + 
------------------------------------------------------------------------------------------- +[root@testvm1 /]# cat /etc/auto.master.d/mountpoint1.autofs 
- kvm-storagepool   running   yes         yes          31.98 GiB   260.61 MiB   31.73 GiB+/     /etc/auto.mountpoint1
 </code> </code>
 +
 +Créez le fichier de mappage **/etc/auto.mountpoint1** :
 +
 +<code>
 +[root@testvm1 /]# vi /etc/auto.mountpoint1
 +
 +[root@testvm1 /]# cat /etc/auto.mountpoint1
 +/mountpoint1    -fstype=nfs4,rw,sync    192.168.56.100:/mountpoint1
 +</code>
 +
 +Redémarrez le service **autofs** :
 +
 +<code>
 +[root@testvm1 /]# systemctl restart autofs
 +
 +[root@testvm1 /]# systemctl status autofs
 +● autofs.service - Automounts filesystems on demand
 +     Loaded: loaded (/usr/lib/systemd/system/autofs.service; enabled; preset: d>
 +     Active: active (running) since Tue 2024-10-29 14:40:16 CET; 8s ago
 +   Main PID: 3612 (automount)
 +      Tasks: 8 (limit: 23172)
 +     Memory: 5.9M
 +        CPU: 29ms
 +     CGroup: /system.slice/autofs.service
 +             └─3612 /usr/sbin/automount --systemd-service --dont-check-daemon
 +
 +oct. 29 14:40:16 testvm1.ittraining.loc systemd[1]: Starting Automounts filesys>
 +oct. 29 14:40:16 testvm1.ittraining.loc systemd[1]: Started Automounts filesyst>
 +</code>
 +
 +Vérifiez la pris en compte de la configuration :
 +
 +<code>
 +[root@testvm1 /]# mount | tail
 +fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime)
 +/dev/vda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
 +none on /run/credentials/systemd-tmpfiles-setup.service type ramfs (ro,nosuid,nodev,noexec,relatime,seclabel,mode=700)
 +sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
 +192.168.56.100:/mountpoint on /mnt type nfs4 (rw,relatime,sync,vers=4.2,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.56.50,local_lock=none,addr=192.168.56.100)
 +tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=164980k,nr_inodes=41245,mode=700,inode64)
 +/etc/auto.misc on /misc type autofs (rw,relatime,fd=6,pgrp=3612,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=34473)
 +-hosts on /net type autofs (rw,relatime,fd=9,pgrp=3612,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=34474)
 +/etc/auto.home on /home type autofs (rw,relatime,fd=12,pgrp=3612,timeout=300,minproto=5,maxproto=5,indirect,pipe_ino=34475)
 +/etc/auto.mountpoint1 on /mountpoint1 type autofs (rw,relatime,fd=15,pgrp=3612,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=35368)
 +</code>
 +
 +Créez le fichier **/mountpoint1/test6.txt** :
 +
 +<code>
 +[root@testvm1 /]# touch /mountpoint1/test6.txt
 +
 +[root@testvm1 /]# ls /mountpoint1/
 +test6.txt
 +</code>
 +
 +Déconnectez-vous de la machine virtuelle **testvm1** :
 +
 +<code>
 +[root@testvm1 /]# [CTRL]+[VERR MAJ]+[5]
 +[root@redhat9 ~]# 
 +</code>
 +
 +Connectez-vous à la machine virtuelle **testvm2** :
 +
 +<code>
 +[root@redhat9 ~]# virsh console testvm2
 +Connected to domain 'testvm2'
 +Escape character is ^] (Ctrl + ])
 +[Enter]
 +[root@testvm2 ~]#
 +</code>
 +
 +Consultez ls contenu du répertoire **/mountpoint1** vous devez voir le fichier **test6.txt** :
 +
 +<code>
 +[root@testvm2 ~]# ls -l /mountpoint1
 +total 0
 +-rw-r--r--. 1 nobody nobody 0 Oct 29 14:43 test6.txt
 +</code>
 +
 +Déconnectez-vous de la machine virtuelle **testvm2** :
  
 <code> <code>
-[root@centos8 ~]# df -h /var/lib/libvirt/images/ +[root@testvm2 ~]# [CTRL]+[VERR MAJ]+[5] 
-Filesystem                      Size  Used Avail Use% Mounted on +[root@redhat9 ~]# 
-/dev/mapper/kvm_storage-kvm_lv   32G  261M   32G   1% /var/lib/libvirt/images+
 </code> </code>
  
 ----- -----
-<html> +Copyright © 2024 Hugh Norris
-<div align="left"> +
-Copyright © 2022 Hugh Norris+
-</html>+
Menu