NFS (Network File System) est le système de fichiers en réseau “classique” des plateformes Unix, avec un fonctionnement client-serveur. Le serveur met à disposition des ressources pour les clients du réseau ou une partie du réseau. Les fichiers distants sont montés dans un répertoire et apparaissent comme un système de fichiers local. À partir de là, les utilisateurs clients accèdent en toute transparence aux fichiers partagés par le serveur, en parcourant les répertoires comme s’il s’agissait d’une arborescence locale.
Dans cet article, nous allons décrire la mise en place d’un serveur NFS sous CentOS 7. Le but ultime de cette opération sera la création de profils itinérants avec une authentification centralisée dans le réseau local. Notre serveur NFS constituera la première brique logicielle d’une telle configuration.
Prérequis
NFSv4 utilise le port 2049 en TCP. Il faut donc songer à ouvrir ce port dans le pare-feu.
Installation
Installer la panoplie d’outils NFS et leurs dépendances.
# yum install nfs-utils
Si l’on a désactivé l’IPv6 sur le serveur, il faut impérativement reconstruire le disque mémoire initial, sous peine de se retrouver avec un service RPC (Remote Procedure Call) qui refuse obstinément de démarrer.
# dracut -f -v
Pour plus de détails, consulter les explications sur cette page.
Configuration
Renseigner le domaine local dans /etc/idmapd.conf
.
[General]
#Verbosity = 0
# The following should be set to the local NFSv4 domain name
# The default is the host's DNS domain name.
Domain = microlinux.lan
Voici les répertoires utilisateurs que je souhaite partager en lecture et en écriture.
# tree -d -L 1 /home/ /home/ |-- adebuf |-- fbanester |-- fteyssier |-- jmortreux `-- kikinovak
Par ailleurs, je dispose également d’une arborescence /data
que je souhaite partager en lecture seule.
# tree -d -L 1 /data/ /data/ |-- audio |-- iso `-- video
Nous allons définir ces partages dans le fichier /etc/exports
.
# /etc/exports
/data 192.168.2.0/24(ro,async,no_subtree_check) \
*.microlinux.lan(ro,async,no_subtree_check)
/home 192.168.2.0/24(rw,async,no_subtree_check) \
*.microlinux.lan(rw,async,no_subtree_check)
- L’option
ro
monte le répertoire distant en lecture seule. - L’option
rw
monte le répertoire distant en lecture/écriture. - L’option
async
permet des écriture asynchrones, c’est-à-dire que le serveur n’attend pas l’écriture d’une requête précédente avant de répondre. - Sans trop rentrer dans les détails, l’option
no_subtree_check
neutralise la vérification des sous-répertoires, ce qui a de subtiles implications au niveau de la sécurité, mais peut améliorer la fiabilité dans certains cas. - La barre oblique inversée
\
permet d’éviter les lignes à rallonge. - Attention à ne pas mettre d’espace entre la définition du réseau
192.168.2.0/24
et les options(rw,async)
.
Gestion
Activer et démarrer les services RPC et NFS.
# systemctl enable rpcbind # systemctl enable nfs-server # systemctl start rpcbind # systemctl start nfs-server
La configuration des clients NFS fait l’objet d’un article à part.
Documentation
- Configuring the NFS server (Red Hat)
- Partages de fichiers NFS (Formatux)
J’ai fait un tuto qui complètera l’article. ;+)
https://www.dsfc.net/logiciel-libre/linux/centos-linux-logiciel-libre/nfs-centos-red-hat-7/
Ping : Installer un serveur NFS sous CentOS 7 - My Tiny Tools
Ça semble devenir autrement plus compliqué quand on veut l’associer à une authentification ldap qui semble néanmoins être le compagnon idéal de nfs.
Chat échaudé craint la charrue avant la peau de l’ours. :o)
Mais un tiens vaut mieux qu’une pierre qui n’amasse pas mousse.