NFS signifie Network File System, 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
- Partage de fichiers/dossiers entre systèmes *nix
- Permet de monter localement des systèmes de fichiers distants
- Peut être utilisé comme système de stockage centralisé
- Il peut être utilisé comme domaine de stockage (magasin 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 des fichiers NFS. Implémentez la récupération du verrou de fichier lorsqu'un serveur NFS tombe en panne et redémarre.
nfs-idmap :Il traduit les identifiants d'utilisateurs et de groupes en noms, et traduit les noms d'utilisateurs et de groupes
en identifiants
Fichiers de configuration importants
Vous travaillerez principalement sur les fichiers de configuration ci-dessous pour configurer le serveur et les clients NFS.
/etc/exports :il s'agit du fichier de configuration principal, qui 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 les systèmes de fichiers, y compris les répertoires NFS, qui sont montés au démarrage du système.
/etc/sysconfig/nfs :ce fichier est utilisé pour contrôler sur quels ports les services RPC requis s'exécutent.
/etc/hosts.allow et /etc/hosts.deny :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, j'utiliserai 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 : server.itzgeek.local (CentOS 7)
Adresse IP : 192.168.1.10/24
Client NFS
Nom d'hôte : client.itzgeek.local (CentOS 7)
Adresse IP : 192.168.1.20/24
Configurer le serveur NFS
Installer 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 packages installés, activez et démarrez les services NFS.
systemctl start nfs-server rpcbind systemctl 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
Autoriser le client NFS à lire et écrire dans le répertoire créé.
chmod 777 /nfsfileshare/
Nous devons modifier le fichier /etc/exports pour créer une entrée de 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 sur le dossier partagé
synchroniser :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 faite par l'utilisateur root sur la machine cliente est traitée comme par l'utilisateur personne sur le serveur. (L'UID exact auquel la requête est mappée dépend de l'UID de l'utilisateur « personne » 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 en tant que root sur le serveur.
Vous pouvez découvrir toutes les options dans les exportations de manuel de la page de manuel ou ici.
Exportez les répertoires partagés à l'aide de la commande suivante.
exportfs -r
Extras :
exportfs -v :affiche une liste des fichiers partagés et des options d'exportation sur un serveur.
exportfs -a :exporte tous les répertoires répertoriés dans /etc/exports.
exportfs -u :Désexporter un ou plusieurs répertoires.
exportfs -r :Réexporter 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 mountd firewall-cmd --permanent --add-service rpc-bind firewall-cmd --permanent --add-service nfs firewall-cmd --reload
Configurer le client NFS
Installer le client NFS
Nous devons installer les 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.
Remplacez l'adresse IP par l'adresse IP ou le nom d'hôte de votre serveur NFS.showmount -e 192.168.1.10
Sortie :
Export list for 192.168.1.10: /nfsfileshare 192.168.1.20
Selon la sortie, le /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
Monter le partage NFS
Maintenant, créez un répertoire sur le client NFS pour monter le partage NFS /nfsfileshare que nous avons créé sur 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% /dev tmpfs tmpfs 496M 0 496M 0% /dev/shm tmpfs tmpfs 496M 6.7M 490M 2% /run tmpfs 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% /boot tmpfs tmpfs 100M 0 100M 0% /run/user/0 192.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, votre configuration NFS fonctionne.
Montage automatique des partages NFS
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 0 UUID=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 0 192.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 automatiquement monté 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 correctement configuré le serveur NFS et le client NFS sur CentOS 7 / RHEL 7. 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.