Recherche de site Web

Configuration des systèmes de fichiers Linux standard et configuration du serveur NFSv4 - Partie 2


Un ingénieur certifié Linux Foundation (LFCE) est formé pour installer, configurer, gérer et dépanner les services réseau dans les systèmes Linux, et est responsable de la conception et de la mise en œuvre de l'architecture système et de la résolution des problèmes liés au quotidien. problèmes.

Présentation du programme de certification Linux Foundation (LFCE).

Dans la première partie de cette série, nous avons expliqué comment installer un serveur NFS (Network File System) et configurer le service pour qu'il démarre automatiquement au démarrage. Si vous ne l'avez pas déjà fait, veuillez vous référer à cet article et suivre les étapes décrites avant de continuer.

  1. Installation des services réseau et configuration du démarrage automatique au démarrage – Partie 1

Je vais maintenant vous montrer comment configurer correctement votre serveur NFSv4 (sans sécurité d'authentification) afin que vous puissiez configurer des partages réseau à utiliser dans les clients Linux comme si ces systèmes de fichiers étaient installés localement. Notez que vous pouvez utiliser LDAP ou NIS à des fins d'authentification, mais les deux options sortent du champ d'application de la certification LFCE.

Configuration d'un serveur NFSv4

Une fois le serveur NFS opérationnel, nous concentrerons notre attention sur :

  1. spécifier et configurer les répertoires locaux que nous souhaitons partager sur le réseau, et
  2. monter automatiquement ces partages réseau sur les clients, soit via le fichier /etc/fstab, soit via l'utilitaire de montage automatique basé sur le noyau (autofs).

Nous expliquerons plus tard quand choisir une méthode ou une autre.

Avant de le faire, nous devons nous assurer que le démon idmapd est en cours d'exécution et configuré. Ce service effectue le mappage des noms NFSv4 (user@mydomain) avec les ID d'utilisateur et de groupe, et est requis pour implémenter un serveur NFSv4.

Modifiez /etc/default/nfs-common pour activer idmapd.

NEED_IDMAPD=YES

Et modifiez /etc/idmapd.conf avec votre nom de domaine local (la valeur par défaut est le FQDN de l'hôte).

Domain = yourdomain.com

Ensuite, démarrez idmapd.

service nfs-common start 	[sysvinit / upstart based systems]
systemctl start nfs-common 	[systemd based systems]

Exportation de partages réseau

Le fichier /etc/exports contient les principales directives de configuration de notre serveur NFS, définit les systèmes de fichiers qui seront exportés vers des hôtes distants et spécifie les options disponibles. Dans ce fichier, chaque partage réseau est indiqué à l'aide d'une ligne distincte, qui a par défaut la structure suivante :

/filesystem/to/export client1([options]) clientN([options])

/filesystem/to/export est le chemin absolu vers le système de fichiers exporté, tandis que client1 (jusqu'à clientN) représente le client spécifique (nom d'hôte ou adresse IP) ou le réseau (les caractères génériques sont autorisés) vers lequel le partage est exporté. Enfin, les options sont une liste de valeurs (options) séparées par des virgules qui sont respectivement prises en compte lors de l'exportation du partage. Veuillez noter qu'il n'y a pas d'espace entre chaque nom d'hôte et les parenthèses qu'il précède.

Voici une liste des options les plus fréquentes et leur description respective :

  1. ro (abréviation de lecture seule) : les clients distants peuvent monter les systèmes de fichiers exportés avec des autorisations de lecture uniquement.
  2. rw (abréviation de lecture-écriture) : permet aux hôtes distants d'effectuer des modifications en écriture dans les systèmes de fichiers exportés.
  3. wdelay (abréviation de write delay) : le serveur NFS retarde la validation des modifications sur le disque s'il soupçonne qu'une autre demande d'écriture associée est imminente. Cependant, si le serveur NFS reçoit plusieurs petites requêtes sans rapport, cette option réduira les performances, donc l'option no_wdelay peut être utilisée pour la désactiver.
  4. sync : le serveur NFS répond aux requêtes uniquement une fois que les modifications ont été validées sur le stockage permanent (c'est-à-dire sur le disque dur). Son opposé, l'option async, peut augmenter les performances mais au prix d'une perte ou d'une corruption de données après un redémarrage impur du serveur.
  5. root_squash : empêche les utilisateurs root distants d'avoir des privilèges de superutilisateur sur le serveur et leur attribue l'ID utilisateur de l'utilisateur personne. Si vous souhaitez « écraser » tous les utilisateurs (et pas seulement root), vous pouvez utiliser l'option all_squash.
  6. anonuid/anongid : définit explicitement l'UID et le GID du compte anonyme (personne).
  7. subtree_check : si seul un sous-répertoire d'un système de fichiers est exporté, cette option vérifie qu'un fichier demandé se trouve dans ce sous-répertoire exporté. En revanche, si l'intégralité du système de fichiers est exporté, désactiver cette option avec no_subtree_check accélérera les transferts. L'option par défaut de nos jours est no_subtree_check car la vérification des sous-arbres a tendance à causer plus de problèmes qu'elle n'en vaut la peine, selon les exportations de man 5.
  8. fsid=0 | root (zéro ou racine) : Spécifie que le système de fichiers spécifié est la racine de plusieurs répertoires exportés (s'applique uniquement dans NFSv4).

Dans cet article, nous utiliserons les répertoires /NFS-SHARE et /NFS-SHARE/mydir sur 192.168.0.10 (serveur NFS) comme notre tester les systèmes de fichiers.

On peut toujours lister les partages réseau disponibles dans un serveur NFS en utilisant la commande suivante :

showmount -e [IP or hostname]

Dans le résultat ci-dessus, nous pouvons voir que les partages /NFS-SHARE et /NFS-SHARE/mydir sur 192.168.0.10 ont été exportés. au client avec l'adresse IP 192.168.0.17.

Notre configuration initiale (reportez-vous au répertoire /etc/exports sur votre serveur NFS) pour le répertoire exporté est la suivante :

/NFS-SHARE  	192.168.0.17(fsid=0,no_subtree_check,rw,root_squash,sync,anonuid=1000,anongid=1000)
/NFS-SHARE/mydir    	192.168.0.17(ro,sync,no_subtree_check)

Après avoir édité le fichier de configuration, il faut redémarrer le service NFS :

service nfs-kernel-server restart 		[sysvinit / upstart based system]
systemctl restart nfs-server			[systemd based systems]
Montage des partages réseau exportés à l'aide d'autofs

Vous souhaiterez peut-être vous référer à la Partie 5 de la série LFCS (« Comment monter/démonter des systèmes de fichiers locaux et réseau (Samba et NFS) sous Linux ») pour plus de détails sur le montage de partages NFS distants à la demande à l'aide de la commande mount ou de manière permanente via le fichier /etc/fstab.

L'inconvénient du montage d'un système de fichiers réseau à l'aide de ces méthodes est que le système doit allouer les ressources nécessaires pour maintenir le partage monté à tout moment, ou du moins jusqu'à ce que nous décidions de le démonter manuellement. Une alternative consiste à monter automatiquement le système de fichiers souhaité à la demande (sans utiliser la commande mount) via autofs, qui peut monter les systèmes de fichiers lorsqu'ils sont utilisés et les démonter après. une période d'inactivité.

Autofs lit /etc/auto.master, qui a le format suivant :

[mount point]	[map file]

[map file] est utilisé pour indiquer plusieurs points de montage dans [mount point].

Ce fichier de mappage maître (/etc/auto.master) est ensuite utilisé pour déterminer quels points de montage sont définis, puis démarre un processus de montage automatique avec les paramètres spécifiés pour chaque point de montage.

Montage des partages NFS exportés à l'aide d'autofs

Modifiez votre /etc/auto.master comme suit :

/media/nfs	/etc/auto.nfs-share	--timeout=60

et créez un fichier de carte nommé /etc/auto.nfs-share avec le contenu suivant :

writeable_share  -fstype=nfs4 192.168.0.10:/
non_writeable_share  -fstype=nfs4 192.168.0.10:/mydir

Notez que le premier champ de /etc/auto.nfs-share est le nom d'un sous-répertoire dans /media/nfs. Chaque sous-répertoire est créé dynamiquement par autofs.

Maintenant, redémarrez le service autofs :

service autofs restart 			[sysvinit / upstart based systems]
systemctl restart autofs 			[systemd based systems]

et enfin, pour permettre à autofs de démarrer au démarrage, exécutez la commande suivante :

chkconfig --level 345 autofs on
systemctl enable autofs 			[systemd based systems]
Examen des systèmes de fichiers montés après le démarrage du démon autofs

Lorsque nous redémarrons autofs, la commande mount nous montre que le fichier de carte (/etc/auto.nfs-share) est monté sur le spécifié répertoire dans /etc/auto.master :

Veuillez noter qu'aucun répertoire n'a encore été monté, mais il le sera automatiquement lorsque nous tenterons d'accéder aux partages spécifiés dans /etc/auto.nfs-share :

Comme nous pouvons le voir, le service autofs « monte » le fichier de carte, pour ainsi dire, mais attend qu'une demande soit faite aux systèmes de fichiers pour les monter réellement.

Effectuer des tests d'écriture dans les systèmes de fichiers exportés

Les options anonuid et anongid, ainsi que le root_squash tel que défini dans le premier partage, nous permettent de mapper les requêtes effectuées par l'utilisateur root dans le client vers un compte local sur le serveur.

En d'autres termes, lorsque l'utilisateur root du client crée un fichier dans ce répertoire exporté, sa propriété sera automatiquement mappée au compte utilisateur avec l'UID et le GID=1000, à condition qu'un tel compte existe sur le serveur :

Conclusion

J'espère que vous avez réussi à installer et configurer un serveur NFS adapté à votre environnement en utilisant cet article comme guide. Vous pouvez également vous référer aux pages de manuel pertinentes pour obtenir une aide supplémentaire (man exports et man idmapd.conf, par exemple).

N'hésitez pas à expérimenter d'autres options et cas de test comme indiqué précédemment et n'hésitez pas à utiliser le formulaire ci-dessous pour envoyer vos commentaires, suggestions ou questions. Nous serons heureux d’avoir de vos nouvelles.