NFS signifie Système de fichiers réseau, vous aide à partager des fichiers et des dossiers entre les systèmes Linux / Unix, développé par SUN Microsystems en 1990. NFS vous permet de monter un partage distant localement.
Ce guide vous aide à configurer le serveur NFS sur CentOS 7/RHEL 7.
- Avantages de NFS
- Services importants
- Fichiers de configuration importants
- Environnement
- Serveur NFS
- Client NFS
- Configurez le serveur NFS
- Installez le serveur NFS
- Créer un partage NFS
- Configurer le pare-feu
- Configurer le client NFS
- Installer le client NFS
- Vérifiez le partage NFS
- Monter le partage NFS
- Partages NFS Automount
- Conclusion
Avantages de NFS
- Partage de fichiers / dossiers entre systèmes *nix
- Permet de monter localement des systèmes de fichiers distants
- Peut servir de système de stockage centralisé
- Il peut être utilisé comme Domaine de stockage (Banque de données) pour VMware et d’autres plates-formes de virtualisation.
- Permet aux applications de partager des fichiers de configuration et de données avec plusieurs nœuds.
- Permet d’avoir des fichiers mis à jour sur le partage.
Services importants
Voici les services NFS importants, inclus dans les packages nfs-utils.
rpcbind : Le serveur rpcbind convertit les numéros de programme RPC en adresses universelles.
serveur NFS : Il permet aux clients d’accéder aux partages NFS.
nfs-lock/rpc-statd: Verrouillage de fichier NFS. Implémentez la récupération de verrouillage de fichier lorsqu’un serveur NFS se bloque et redémarre.
nfs-idmap : Il traduit les ID d’utilisateur et de groupe en noms, et pour traduire les noms d’utilisateur et de groupe
en ID
Fichiers de configuration importants
Vous travailleriez principalement sur les fichiers de configuration ci-dessous pour configurer le serveur et les clients NFS.
/ etc / exports: C’est le fichier de configuration principal, contrôle les systèmes de fichiers exportés vers des hôtes distants et spécifie les options.
/etc/fstab: Ce fichier est utilisé pour contrôler quels systèmes de fichiers, y compris les répertoires NFS, sont montés au démarrage du système.
/etc/sysconfig/nfs : Ce fichier est utilisé pour contrôler les ports sur lesquels les services RPC requis s’exécutent.
/etc/hosts.allow et /etc/hosts.refuser : Ces fichiers sont appelés wrappers TCP, contrôlent l’accès au serveur NFS. Il est utilisé par NFS pour décider d’accepter ou non une connexion provenant d’une autre adresse IP.
Environnement
Ici, je vais utiliser CentOS 7 minimal pour cette démo. Ce guide devrait également fonctionner sur les systèmes Oracle Linux et Fedora.
Serveur NFS
Nom d’hôte : serveur.c’est ça.adresse IP locale (CentOS 7)
: 192.168.1.10/24
Client NFS
Nom d’hôte : client.c’est ça.adresse IP locale (CentOS 7)
: 192.168.1.20/24
Configurez le serveur NFS
Installez le serveur NFS
Installez le package ci-dessous pour le serveur NFS à l’aide de la commande yum.
yum install -y nfs-utils
Une fois les paquets installés, activez et démarrez les services NFS.
systemctl start nfs-server rpcbindsystemctl enable nfs-server rpcbind
Créer un partage NFS
Maintenant, créons un répertoire à partager avec le client NFS. Ici, je vais créer un nouveau répertoire nommé nfsfileshare dans la partition /.
Vous pouvez également partager votre répertoire existant avec NFS.
mkdir /nfsfileshare
Permet au client NFS de lire et d’écrire dans le répertoire créé.
chmod 777 /nfsfileshare/
Nous devons modifier le fichier /etc/exports pour faire une entrée du répertoire /nfsfileshare que vous souhaitez partager.
vi /etc/exports
Créez un partage NFS comme ci-dessous.
/nfsfileshare 192.168.1.20(rw,sync,no_root_squash)
/ nfsfileshare : répertoire partagé
192.168.1.20: Adresse IP de la machine cliente. Nous pouvons également utiliser le nom d’hôte au lieu d’une adresse IP. Il est également possible de définir la plage de clients avec un sous-réseau comme 192.168.1.0/24.
rw: Autorisation d’écriture dans le dossier partagé
sync: Toutes les modifications apportées au système de fichiers correspondant sont immédiatement vidées sur le disque ; les opérations d’écriture respectives sont en attente.
no_root_squash : Par défaut, toute demande de fichier effectuée par l’utilisateur root sur la machine cliente est traitée comme par l’utilisateur nobody sur le serveur. (L’UID auquel la demande est mappée dépend exactement de l’UID de l’utilisateur « nobody » sur le serveur, pas du client.) Si no_root_squash est sélectionné, alors root sur la machine cliente aura le même niveau d’accès aux fichiers sur le système que root sur le serveur.
Vous pouvez connaître toutes les options dans la page de manuel man exports ou ici.
Exportez les répertoires partagés à l’aide de la commande suivante.
exportfs -r
Extras :
exportfs-v : Affiche une liste des fichiers de partage et des options d’exportation sur un serveur.
exportfs-a : Exporte tous les répertoires répertoriés dans /etc/exports.
exportfs-u : UnExport d’un ou plusieurs répertoires.
exportfs-r : Réexporte tous les répertoires après avoir modifié /etc/exports.
Après avoir configuré le serveur NFS, nous devons monter ce répertoire partagé dans le client NFS.
Configurer le pare-feu
Nous devons configurer le pare-feu sur le serveur NFS pour permettre au client NFS d’accéder au partage NFS. Pour ce faire, exécutez les commandes suivantes sur le serveur NFS.
firewall-cmd --permanent --add-service mountdfirewall-cmd --permanent --add-service rpc-bindfirewall-cmd --permanent --add-service nfsfirewall-cmd --reload
Configurer le client NFS
Installer le client NFS
Nous devons installer des packages NFS sur le client NFS pour monter un partage NFS distant. Installez les packages NFS à l’aide de la commande ci-dessous.
yum install -y nfs-utils
Vérifiez le partage NFS
Avant de monter le partage NFS, je vous demande de vérifier les partages NFS disponibles sur le serveur NFS en exécutant la commande suivante sur le client NFS.
showmount -e 192.168.1.10
Sortie:
Export list for 192.168.1.10:/nfsfileshare 192.168.1.20
Selon la sortie, le fichier /nfsfileshare est disponible sur le serveur NFS (192.168.1.10) pour le client NFS (192.168.1.20).
Extras :
showmount-e : Affiche les partages disponibles sur votre machine locale (serveur NFS).
showmount-e < server-ip ou hostname > : Répertorie les partages disponibles sur le serveur distant
Monter le partage NFS
Maintenant, créez un répertoire sur le client NFS pour monter le partage NFS/nfsfileshare que nous avons créé dans le serveur NFS.
mkdir /mnt/nfsfileshare
Utilisez la commande ci-dessous pour monter un partage NFS/nfsfileshare à partir du serveur NFS 192.168.1.10 dans /mnt/nfsfileshare sur le client NFS.
mount 192.168.1.10:/nfsfileshare /mnt/nfsfileshare
Vérifiez le partage monté sur le client NFS à l’aide de la commande mount.
mount | grep nfs
Sortie:
ssunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)nfsd on /proc/fs/nfsd type nfsd (rw,relatime)192.168.1.10:/nfsfileshare on /mnt/nfsfileshare type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.20,local_lock=none,addr=192.168.1.10)
Vous pouvez également utiliser la commande df-hT pour vérifier le partage NFS monté.
df -hT
Sortie:
Filesystem Type Size Used Avail Use% Mounted on/dev/mapper/centos-root xfs 50G 1.2G 49G 3% /devtmpfs devtmpfs 485M 0 485M 0% /devtmpfs tmpfs 496M 0 496M 0% /dev/shmtmpfs tmpfs 496M 6.7M 490M 2% /runtmpfs tmpfs 496M 0 496M 0% /sys/fs/cgroup/dev/mapper/centos-home xfs 47G 33M 47G 1% /home/dev/sda1 xfs 1014M 154M 861M 16% /boottmpfs tmpfs 100M 0 100M 0% /run/user/0192.168.1.10:/nfsfileshare nfs4 50G 1.2G 49G 3% /mnt/nfsfileshare
Créez un fichier sur le répertoire monté pour vérifier l’accès en lecture et en écriture sur le partage NFS.
touch /mnt/nfsfileshare/test
Si la commande ci-dessus ne renvoie aucune erreur, vous avez une configuration NFS fonctionnelle.
Partages NFS Automount
Pour monter les partages automatiquement à chaque redémarrage, vous devez modifier le fichier /etc/fstab de votre client NFS.
vi /etc/fstab
Ajoutez une entrée comme ci-dessous.
## /etc/fstab# Created by anaconda on Wed Jan 17 12:04:02 2018## 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#/dev/mapper/centos-root / xfs defaults 0 0UUID=60a496d0-69f4-4355-aef0-c31d688dda1b /boot xfs defaults 0 0/dev/mapper/centos-home /home xfs defaults 0 0/dev/mapper/centos-swap swap swap defaults 0 0192.168.1.10:/nfsfileshare /mnt/nfsfileshare nfs nosuid,rw,sync,hard,intr 0 0
Enregistrez et fermez le fichier.
Redémarrez la machine cliente et vérifiez si le partage est monté automatiquement ou non.
reboot
Vérifiez le partage monté sur le client NFS à l’aide de la commande mount.
mount | grep nfs
Sortie:
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)192.168.1.10:/nfsfileshare on /mnt/nfsfileshare type nfs4 (rw,nosuid,relatime,sync,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.1.20,local_lock=none,addr=192.168.1.10)
Si vous souhaitez démonter ce répertoire partagé de votre client NFS après avoir terminé le partage de fichiers, vous pouvez démonter ce répertoire particulier à l’aide de la commande umount.
umount /mnt/nfsfileshare
Conclusion
Vous avez configuré le serveur NFS et le client NFS sur CentOS 7/RHEL 7 avec succès. Si vous ne souhaitez pas utiliser de montages statiques, vous pouvez configurer AutoFS sur CentOS 7 pour monter le partage NFS uniquement lorsqu’un utilisateur y accède.