GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer un serveur NFS et monter des partages NFS sur Ubuntu 18.04

Network File System (NFS) est un protocole de système de fichiers distribué populaire qui permet aux utilisateurs de monter des répertoires distants sur leur serveur. Le système vous permet de tirer parti de l'espace de stockage dans un emplacement différent et d'écrire sur le même espace à partir de plusieurs serveurs sans effort. Cela fonctionne donc assez bien pour les répertoires auxquels les utilisateurs doivent accéder fréquemment. Ce tutoriel explique le processus de montage du partage NFS sur un serveur Ubuntu 18.04 en étapes simples et faciles à suivre.

Informations préliminaires

Pour les besoins de ce tutoriel, il y aurait une configuration de partage de répertoire entre deux serveurs Ubuntu 18.04, qui pourraient être de n'importe quelle taille. Cependant, pour chacun de ces serveurs, vous auriez besoin d'un compte configuré avec sudo privilèges. Le serveur qui doit partager ses répertoires serait appelé hôte , tandis que le serveur qui doit monter ces répertoires serait appelé client. 3. Dans un souci d'uniformité et de simplicité, les adresses IP suivantes doivent être utilisées pour faire référence aux valeurs de l'hôte et du serveur tout au long du didacticiel :

  • Hôte : 192.168.0.100
  • Client : 192.168.0.101

Les utilisateurs doivent remplacer les valeurs susmentionnées par leurs valeurs distinctes d'hôte et de client. Nous sommes maintenant prêts à apprendre les étapes de montage d'un partage NFS sur Ubuntu 18.04 LTS.

Téléchargement et installation des composants

Au départ, il est essentiel d'installer les composants nécessaires sur les serveurs hôte et client. Expressément sur le serveur hôte, vous devrez installer le nfs-kernel-server package, qui vous permettra de partager vos répertoires. Comme il s'agit de la première étape que vous effectuerez avec apt dans cette session, vous devez commencer par actualiser l'index de paquet local avant l'installation (comme indiqué ci-dessous) :

sudo apt-get update
sudo apt-get install nfs-kernel-server

Lors de l'installation de ces packages, vous pouvez basculer vers l'ordinateur client. Sur l'ordinateur client, vous devrez installer un package appelé nfs-common , qui offre la fonctionnalité NFS sans qu'il soit nécessaire d'inclure les composants du serveur. Là encore, vous devez actualiser l'index des packages locaux avant l'installation pour vous assurer que vous disposez d'informations à jour (comme indiqué ci-dessous) :

sudo apt-get update
sudo apt-get install nfs-common

Ceci vous amène à la fin de cette étape et vous pouvez maintenant passer à la suivante.

Création du répertoire de partage sur le serveur hôte

Pour les besoins de ce tutoriel, il y aurait une expérience impliquant le partage de deux répertoires distincts. Le premier répertoire de partage se trouve être le répertoire /home contenant des données utilisateur. Le second serait un répertoire à usage général qui serait créé spécialement pour NFS afin de démontrer les paramètres et les processus appropriés. Le même serait situé à /var/nfs En tant que répertoire /home existe déjà, continuons simplement et commençons par créer le répertoire /var/nfs , à l'aide de la commande suivante :

sudo mkdir /var/nfs

Nous avons maintenant un nouveau répertoire expressément désigné pour le partage avec des hôtes distants. Cependant, la propriété de ce répertoire n'est pas encore idéale. Nous devons attribuer la propriété de l'utilisateur à un utilisateur de notre système nommé personne . Nous devons également attribuer la propriété du groupe à un groupe sur le système nommé nogroup . Cela peut être fait en saisissant la commande suivante :

sudo chown nobody:nogroup /var/nfs

Il est important de noter ici que nous devons soigneusement modifier la propriété uniquement sur les répertoires qui sont particulièrement utilisés pour le partage. Par exemple, la propriété du répertoire personnel (répertoire /home) ne doit pas être modifiée car cela entraînerait de nombreux problèmes pour les utilisateurs présents sur le serveur hôte.

Configuration des exportations NFS sur le serveur hôte

Une fois les répertoires créés et attribués, nous pouvons maintenant plonger dans le fichier de configuration NFS afin de mettre en place le partage de ces ressources. Pour cela, vous devez ouvrir le fichier /etc/exports fichier dans l'éditeur de texte avec les privilèges root à l'aide de la commande suivante :

sudo nano /etc/exports

Les fichiers qui apparaîtront contiendront quelques commentaires pour vous informer de la structure générale de chaque ligne de configuration. Essentiellement, la syntaxe serait similaire à la suivante :

directory_to_share client (share_option2,...,share_optionM)

Le but ici est de pouvoir créer une ligne pour chacun des répertoires qui doivent être partagés. Étant donné que, dans l'exemple que nous avons choisi, l'adresse IP est 192.168.0.100, les lignes doivent ressembler à ceci :

/home 192.168.0.101(rw,sync,no_root_squash,no_subtree_check)
/var/nfs 192.168.0.101(rw,sync,no_subtree_check)

Prenons maintenant un peu de temps pour comprendre les options données dans les lignes ci-dessus.

  • rw  :Cette option permet à l'ordinateur client d'accéder en lecture et en écriture au volume.
  • synchroniser :Cela force NFS à écrire les modifications sur le disque avant de répondre, ce qui donne un environnement plus stable et cohérent. Cela est principalement dû au fait que la réponse reproduit l'état réel du volume distant.
  • nosubtreecheck :Cette option évite la vérification de la sous-arborescence, qui est un processus qui oblige l'hôte à vérifier si le fichier est effectivement toujours disponible dans l'arborescence exportée pour chaque requête. Cela peut créer des problèmes lorsqu'un fichier est renommé alors que le client l'a ouvert. Pour la même raison, dans à peu près tous les cas, il est conseillé de désactiver la vérification des sous-arbres.
  • norootsquash :Par défaut, le NFS traduit les requêtes d'un utilisateur root à distance en une requête non privilégiée sur le serveur. Ceci est censé être une fonctionnalité de sécurité qui ne permet pas à un compte root sur le client d'utiliser le système de fichiers de l'hôte en tant que root. Ce type de directive désactive cela pour un certain nombre de partages.

Une fois que vous avez apporté toutes les modifications requises, de manière assez prévisible, vous devez apporter les modifications et enregistrer ces modifications avant de fermer le fichier. Par la suite, vous devez créer la table NFS qui contient les exports de vos partages en utilisant la commande suivante :

sudo exportfs -a

Cependant, le service NFS n'est pas encore en cours d'exécution. Vous pouvez démarrer la même chose en tapant la commande suivante :

sudo service nfs-kernel-server start

La commande ci-dessus rendra vos partages disponibles pour les clients que vous auriez configurés. Vous êtes maintenant prêt à passer à l'étape suivante.

Création des points de montage et montage des partages distants sur le serveur client

Avec le serveur hôte configuré et rendant ses partages de répertoire disponibles, vous devez maintenant préparer votre client. Ici, vous devrez monter les partages distants, vous devez donc créer quelques points de montage. Vous utiliseriez le classique /mnt pour commencer, puis créez un répertoire appelé NFS en vertu de celui-ci pour consolider les actions. Ici, les répertoires réels doivent correspondre à leur emplacement sur le serveur hôte. Les utilisateurs peuvent créer chaque répertoire, ainsi que les répertoires parents nécessaires, à l'aide de la commande suivante :

sudo mkdir -p /mnt/nfs/home
sudo mkdir -p /mnt/nfs/var/nfs

Après avoir créé un endroit décent pour héberger les partages distants, vous êtes maintenant en mesure de les monter en vous adressant au serveur hôte, qui, pour les besoins de ce didacticiel, est 5.6.7.8, comme indiqué ci-dessous :

sudo mount 192.168.0.100:/home /mnt/nfs/home
sudo mount 192.168.0.100:/var/nfs /mnt/nfs/var/nfs

Ceux-ci devraient vous permettre de monter les partages de l'ordinateur hôte sur la machine cliente. Vous pouvez vérifier cela en regardant l'espace disque disponible sur le serveur client (comme indiqué ci-dessous) :

df -h

Filesystem Size Used Avail Use% Mounted on /dev/vda 59G 1.3G 55G 3% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 2.0G 12K 2.0G 1% /dev tmpfs 396M 324K 396M 1% /run none 5.0M 0 5.0M 0% /run/lock none 2.0G 0 2.0G 0% /run/shm none 100M 0 100M 0% /run/user 192.168.0.100:/home 59G 1.3G 55G 3% /mnt/nfs/home

Comme il est évident en bas, un seul des partages prévus est visible car les deux partages exportés existent sur le même système de fichiers sur le serveur distant, ce qui signifie qu'ils partagent le même pool de stockage. Pour la disponibilité et Utiliser % colonnes pour être précis, une seule des parts peut être ajoutée dans les calculs. Néanmoins, si vous souhaitez voir tous les partages NFS que vous avez montés, vous pouvez saisir la commande suivante :

mount -t nfs

La commande ci-dessus affichera l'ensemble des montages NFS actuellement accessibles sur la machine cliente, ce qui vous amène à la fin de cette étape, et il est maintenant temps de passer à la suivante.

Tester l'accès NFS

Vous pouvez tester l'accès aux partages en écrivant quelque chose dans vos partages, par exemple, un fichier de test sur l'un de vos partages (comme indiqué ci-dessous) :

sudo touch /mnt/nfs/home/test_home

Ici, nous allons également écrire un fichier de test sur l'autre partage pour démontrer une différence importante :

sudo touch /mnt/nfs/var/nfs/test_var_nfs

Veuillez regarder attentivement la propriété du fichier dans le répertoire d'accueil monté (comme indiqué ci-dessous) pour comprendre la différence :

ls -l /mnt/nfs/home/test_home
-rw-r--r-- 1 root   root      0 Apr 10 09:15 test_home

Comme il est évident, le fichier appartient à root, la raison étant que vous avez désactivé le root_squash option sur ce montage, qui aurait écrit le fichier en tant qu'utilisateur inconnu et non root. Sur l'autre fichier de test, qui a été monté avec le root_squash activé, vous remarquerez quelque chose de complètement différent (comme expliqué ci-dessous) :

ls -l /mnt/nfs/var/nfs/test_var_nfs
-rw-r--r-- 1 nobody nogroup 0 Apr 10 09:15 test_var_nfs

De toute évidence, ce fichier a été attribué à personne user et nogroup grouper. Par conséquent, cela est conforme à la configuration prédéfinie. Passons maintenant à l'étape suivante.

Rendre le montage d'annuaire NFS à distance automatique

Vous profitez de la possibilité de rendre le montage des partages NFS distants automatique en l'ajoutant au fstab dossier sur le client. Vous devez ouvrir ce fichier avec les privilèges root dans votre éditeur de texte en utilisant la commande suivante :

sudo nano /etc/fstab

Tout en bas du fichier, vous devez ajouter une ligne pour chacun des partages, qui ressemblerait à ce qui est indiqué ci-dessous :

192.168.0.100:/home      /mnt/nfs/home   nfs auto,noatime,nolock,bg,nfsvers=4,intr,tcp,actimeo=1800 0 0
192.168.0.100:/var/nfs /mnt/nfs/var/nfs nfs auto,noatime,nolock,bg,nfsvers=4,sec=krb5p,intr,tcp,actimeo=1800 0 0

Les options spécifiées ici peuvent être trouvées dans la page de manuel qui décrit le montage NFS dans le fstab fichier, en utilisant la commande suivante :

man nfs

Cela vous permettra de monter automatiquement les partitions distantes au démarrage. Cela peut prendre un certain temps pour que la connexion soit établie et que les partages soient disponibles (la patience va être une vertu ici !!)

Démonter un partage distant NFS

Si vous n'avez plus besoin que le répertoire distant soit monté sur votre système, vous pouvez le démonter facilement en sortant de la structure de répertoires du partage et en le démontant, à l'aide de la commande suivante :

cd ~
sudo umount /mnt/nfs/home
sudo umount /mnt/nfs/var/nfs

Cela vous permettra de supprimer les partages distants, rendant uniquement votre stockage local accessible :

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda         59G  1.3G   55G   3% /	
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            2.0G   12K  2.0G   1% /dev
tmpfs           396M  320K  396M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user

Comme il est clair, les partages NFS ne sont plus disponibles en tant qu'espace de stockage. Cela vous amène à la fin du didacticiel.

Conclusion

NFS offre un mécanisme simple et rapide pour accéder à des systèmes distants sur un réseau. Cependant, le protocole reste non crypté. Si vous avez l'intention de l'utiliser dans un environnement de production, il est conseillé d'envisager le routage NFS via SSH ou une connexion VPN afin de créer une expérience beaucoup plus sécurisée.


Ubuntu
  1. Comment configurer un serveur NFS et monter des partages NFS sur Ubuntu 14.04

  2. Comment configurer un serveur NFS et monter des partages NFS sur Ubuntu 14.10

  3. Comment installer et configurer Algo VPN Server sur Ubuntu 20.04

  4. Comment installer et configurer le serveur DHCP sur Ubuntu 20.04

  5. Comment configurer le serveur et le client NFS sur Ubuntu 20.04

Comment installer et configurer Postfix sur Ubuntu 18.04

Comment installer le serveur et le client NFS sur Ubuntu

Comment installer et configurer le serveur LAMP sur Ubuntu

Comment installer et configurer le serveur OpenLDAP sur Ubuntu 16.04

Comment installer et configurer VNC sur Ubuntu Server 20.04

Comment installer et configurer un serveur Linux Ubuntu NFS