Sauf par nécessité de rétro-compatibilité, il est conseillé d'utiliser la version NFS en version 4.2
NFSv4 vs NFSv3
The latest protocol of NFS is v4. It has minor versions: v4.2, v4.1, and v4.0. However, NFS Linux implementations generally support NFSv3 for backward compatibility.
NFSv3 requires supplementary services like rpcbind, mountd, lockd, and statd. Furthermore, the v3 protocol doesn’t mandate TCP implementation.
On the other hand, NFSv4 doesn’t depend on rpcbind, lockd, and statd as it has these functionalities built in. Only mountd is still used for exporting file shares, but not in the client-server connection. Hence, these services needn’t be exposed through a firewall. Moreover, NFSv4 has features like better security, reliability, enhanced client caching, and internationalization.
apt-get install nfs-kernel-server
Modifier le fichier /etc/nfs.conf
. Désactiver la version 3 et activer la version 4 :
... [nfsd] # debug=0 # threads=8 # host= # port=0 # grace-time=90 # lease-time=90 # udp=n # tcp=y vers3=n # vers4=y vers4.0=n vers4.1=n vers4.2=y # rdma=n # rdma-port=20049 ...
Après modification du fichier de configuration, redémarrer le service :
systemctl restart nfs-server.service
Vérifier les versions de NFS supportées par le serveur :
cat /proc/fs/nfsd/versions -2 -3 +4 -4.0 -4.1 +4.2
Désactiver les service en lien avec NFSv3 :
systemctl mask --now rpc-statd.service rpcbind.service rpcbind.socket
Avec NFSv4, tous les exports doivent exister sous un seul et même pseudo système de fichiers dans lequel les répertoire originaux du serveur sont montés via l'option --bind.
Ici nous souhaitons partager les répertoires /srv/data
et /srv/backup
# Création des points de montage mkdir -p /export/{data,backup} # Monter les dossier à partager sous /export mount --bind /srv/data /export/data mount --bind /srv/backup /export/backup
Pour que les exports persistent après reboot, modifier /etc/fstab
# Dossiers partagés via NFSv4
/srv/data /export/data none bind 0 0
/srv/backup /export/backup none bind 0 0
Les options de partage sont définies dans le fichier /etc/exports
/export 192.168.1.142/24(ro,sync,root_squash,no_subtree_check,fsid=0) /export/data 192.168.1.142/24(ro,sync,root_squash,no_subtree_check)
Après modification du fichier de configuration :
# relecture du fichier de configuration exportfs -r # lister les partages nfs disponibles exportfs -v
Installer le paquet nfs-common :
apt-get install nfs-common
Pour monter le partage NFS sur l'arborescence logique locale :
mount -t nfs4 -o proto=tcp,port=2049 192.168.1.217:/ /mnt/
source : https://serverfault.com/questions/514118/mapping-uid-and-gid-of-local-user-to-the-mounted-nfs-share
Depuis le poste client, le montage échoue avec le message :
mount.nfs4: mounting server.localdomain:/exports failed, reason given by server: No such file or directory
Source : partage NFSv4 erreur no such file or directory (askubuntu.com)