J'ai utilisé NFS dans une capacité limitée pendant des années. Je connaissais le concept et j'avais accédé aux partages NFS, cependant, je n'en avais jamais configuré un. Les chances sont, je ne suis pas seul dans ce cas. Je pensais apprendre à tout mettre en place et même vous emmener tous avec moi. Commençons par le guide du débutant pour apprendre NFS.
Qu'est-ce que NFS ?
Network File System (NFS) est un système de fichiers distribué qui permet à divers systèmes distants d'accéder à un partage de fichiers. Nous savons tous que les fichiers doivent être stockés sur un serveur central pour des raisons de sécurité et de facilité de sauvegarde. NFS nous fournit un service de partage de fichiers facile à gérer et qui contrôle l'accès des clients aux ressources.
De quoi a-t-on besoin ?
Avant de pouvoir commencer, nous devons définir quelques conditions préalables. Tout d'abord, nous avons besoin de deux systèmes différents capables de se parler via le réseau. Étant donné que NFS utilise une relation serveur à client(s), nous utiliserons ce qui suit :
- Serveur NFS - serveur.exemple.com - 172.25.1.5
- Client NFS - client.exemple.com - 172.25.1.4
Vous pouvez utiliser le ping
commande pour confirmer les communications entre les deux systèmes. J'ai ces deux machines sur un réseau NAT et j'ai testé les connexions dans les deux sens.
Après cela, assurons-nous que nos deux systèmes sont à jour. Comme ces systèmes sont RHEL 8.2 et Fedora 32, nous utiliserons la commande suivante à la fois sur le serveur et sur le client :
[root@rhel tcarrigan]# sudo yum -y update
Et enfin, nous devons installer le nfs-utils
package à nos deux systèmes.
[root@rhel tcarrigan]# sudo yum -y install nfs-utils (must do on both servers)
Updating Subscription Management repositories.
Last metadata expiration check: 0:55:54 ago on Wed 24 Jun 2020 11:53:45 AM EDT.
Package nfs-utils-1:2.3.3-31.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
*Remarque :le package est déjà installé dans l'exemple ci-dessus.
Passons maintenant à la configuration du serveur.
Configurer le serveur
Étape 1 :Démarrez et activez les nfs-utils
nouvellement installés services.
[tcarrigan@rhel ~]$ sudo systemctl start nfs-server.service
[tcarrigan@rhel ~]$ sudo systemctl enable nfs-server.service
Étape 2 :Confirmez le nfs-server
le service est opérationnel.
[tcarrigan@rhel ~]$ sudo systemctl status nfs-server.service
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabl>
Active: active (exited) since Wed 2020-06-24 12:50:23 EDT; 18min >
Main PID: 61026 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 50657)
Memory: 0B
CGroup: /system.slice/nfs-server.service
Jun 24 12:50:23 server.example.com systemd[1]: Starting NFS server a>
Jun 24 12:50:23 server.example.com systemd[1]: Started NFS server an>
lines 1-10/10 (END)
Étape 3 :Vérifiez la version de NFS (vous pouvez voir ces informations dans la colonne 2).
[tcarrigan@rhel ~]$ rpcinfo -p | grep nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
*Notez que vous pouvez trouver les fichiers de configuration du démon NFS dans /etc/nfs.conf
. Vous pouvez également trouver le fichier de configuration pour le montage sur /etc/nfsmount.conf
.
Le service NFS est maintenant opérationnel sur votre serveur. Ensuite, créons un partage NFS.
Créer et exporter le partage
Tout d'abord, nous devons désigner un dossier pour le partage. Puisqu'il n'en existe pas déjà sur mon système, je vais créer un répertoire à partager.
[tcarrigan@rhel ~]$ sudo mkdir -p /test/nfs_share/docs
Maintenant, j'ai appris de quelques essais et erreurs, puis de ressources bien écrites, que vous pouvez éviter beaucoup de maux de tête en modifiant les autorisations et la propriété pour qu'elles correspondent à ce qui suit :
[tcarrigan@rhel ~]$ sudo chown -R nobody: /test/nfs_share/docs/
[tcarrigan@rhel ~]$ sudo chmod -R 777 /test/nfs_share/docs/
*Remarque :vous ne pourrez peut-être pas effectuer cette opération dans un environnement de production pour des raisons de sécurité. Assurez-vous de savoir ce que vous faites avant de supprimer toutes les restrictions d'un fichier ou d'un répertoire.
Ensuite, nous devons créer un /etc/exports
fichier.
[root@server docs]# vi /etc/exports
Faites l'entrée suivante dans le nouveau fichier :
/test/nfs_share 172.25.1.0/24(rw,sync,no_all_squash,root_squash)
Pour mieux comprendre les paramètres utilisés ici, décomposons-les un par un.
- rw - Nous permet de lire et d'écrire sur le partage NFS.
- synchronisation :nécessite l'écriture des modifications sur le disque avant la fin de toute autre opération.
- no_all_squash - Mappe tous les UID et GID de la demande du client vers les UID et GID identiques sur le serveur NFS.
- root_squash - Mappe les requêtes de l'utilisateur root côté client vers un UID/GID anonyme.
Maintenant que nous avons créé le partage, exportons-le vers le(s) client(s).
[root@server docs]# exportfs -rav
exporting 172.25.1.0/24:/test/nfs_share
Notez que j'ai cartographié l'ensemble du sous-réseau ici. Vous ne pouvez inclure ici qu'une seule adresse IP ou nom d'hôte si vous préférez.
Modifier le pare-feu
Nous avons installé le serveur, puis créé et exporté le partage. Ensuite, nous configurons un tunnel à travers le pare-feu. Nous allons ajouter des règles pour nfs
, rpc-bind
, et mountd
. N'oubliez pas de recharger la configuration du pare-feu une fois terminé.
Vu ici :
[root@server]# firewall-cmd --permanent --add-service=nfs
success
[root@server]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@server]# firewall-cmd --permanent --add-service=mountd
success
[root@server]# firewall-cmd --reload
success
Le côté serveur étant terminé, nous pouvons maintenant concentrer notre attention sur la machine cliente.
Configurer le client
*Remarque :toutes les étapes ultérieures sont effectuées sur la machine cliente.
Puisque nous avons déjà mis à jour notre système et installé le nfs-utils
package, cela devrait être assez simple.
Nous commençons par créer une entrée dans /etc/hosts
pour le serveur NFS. Cela devrait ressembler à ceci :
[root@client]# cat /etc/hosts
127.0.0.1 localhost
::1 localhost
172.25.1.5 localhost
Voyons maintenant si quelque chose est partagé depuis le serveur NFS. Si vous avez suivi les sections précédentes, vous devriez voir /test/nfs_share/docs
en tant que répertoire partagé.
[root@client ~]# showmount --exports nfs-server
Export list for nfs-server:
/test/nfs_share/docs 172.25.1.0/24
Ensuite, créez un répertoire sur la machine cliente pour monter le partage distant.
[tcarrigan@client ~]$ sudo mkdir p /test/client_share
Maintenant que nous avons créé un répertoire de montage, montons le partage.
[tcarrigan@client ~]$ sudo mount -t nfs 172.25.1.5:/test/nfs_share/docs /home/tcarrigan/test/client_share
Exécutez la commande suivante pour vérifier le partage :
[tcarrigan@client ~]$ sudo mount | grep -i nfs
Enfin, pour vous assurer que le montage est persistant lors des redémarrages, ajoutez la ligne suivante au /etc/fstab
fichier :
172.25.0.5:/test/nfs_share/docs /home/tcarrigan/test/client_share nfs defaults 0 0
Journée facile.
Preuve de concept
Comme point culminant de nos efforts, testons le partage configuré. Créez un fichier sur le serveur dans /test/nfs_share/docs
nommé test_doc
.
[tcarrigan@server docs]$ ls -lrt
total 4
-rw-r--r--. 1 root root 39 Jun 25 16:21 test_doc
Voyons si notre test_doc
est exporté vers notre ordinateur client via NFS.
Sur la machine client :
[tcarrigan@client ~]$ cd test/client_share/
[tcarrigan@client client_share]$ ls
docs
[tcarrigan@client client_share]$ ls docs/
test_doc
[tcarrigan@client client_share]$
Ici, nous voyons le test_doc
existe sur le serveur NFS.
Pour tester dans l'autre sens, je crée un fichier sur le client nommé client-test-doc
.
[tcarrigan@client docs]$ vi client-test-doc
Passons au serveur et voyons si nous pouvons voir le fichier nouvellement créé.
Serveur NFS :
[tcarrigan@server docs]$ ls -lrt
total 8
-rw-r--r--. 1 root root 39 Jun 25 16:21 test_doc
-rw-rw-r--. 1 tcarrigan tcarrigan 5 Jul 6 13:25 client-test-doc
Nous pouvons voir à la fois le fichier d'origine test_doc
ainsi que le fichier nouvellement créé client-test-doc
.
Félicitations pour la configuration d'une paire serveur/client NFS fonctionnelle.
[ Cours en ligne gratuit :Présentation technique de Red Hat Enterprise Linux. ]