Cet article a pour but de présenter rapidement la mise en place d'un serveur NFS v4 sous Debian Etch avec des clients sous Debian unstable. D'autres articles suivront peut-être pour agrémenter ce document avec l'utilisation d'autofs-ldap pour le montage des répertoires personnels et l'authentification kerberos associé au serveur NFS v4.
Cette version du protocole est incompatible avec les anciennes versions mais, cette incompatibilité est largement compensée par les améliorations apportées et la migration de l’une à l’autre est relativement simple à effectuer.
Avant de commencer la configuration il faut s’assurer que les deux lignes suivantes soient présentes dans la sortie de mount :
nfsd on /proc/fs/nfsd type nfsd (rw)
rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
Sans ces deux lignes, NFS v4 ne pourra pas être mis en place. nfsd est monté par le script d’init du paquet nfs-kernel-server et rpc_pipefs est quant à lui monté par le script d’init de nfs-common.
NFS 4 permet maintenant de monter des partages en fonction d’une racine virtuelle. Ce partage racine est remarquable dans le fichier /etc/exports car il contient fsid=0. Par exemple pour définir la racine des répertoires NFS partagés sous /exports il faut ajouter dans le fichier /etc/exports :
/export *(rw,fsid=0,insecure,no_subtree_check)
La grande différence entre NFS v3 et NFS v4 est là, pour monter sur un client la racine des partage en NFS v3 il fallait faire :
mount -t nfs server:/export /mnt
alors qu’avec NFS v4 la commande devient :
mount -t nfs4 server:/ /mnt
Chaque sous-répertoire du répertoire /export sera partagé en fonction de la racine virtuelle. Donc pour partager un répertoire à l’extérieur de cette racine virtuelle, vous pouvez utiliser l’option --bind de mount(1). Par exemple pour partager les répertoires utilisateurs, utilisez la commande suivante pour ajouter le répertoire à la racine virtuelle :
mount --bind /home /export/home
un répertoire /export/home est alors présent dans /export. Pour exporter ce répertoire, vous pouvez utiliser la syntaxe habituelle des exports NFS.
Warning: rpc.idmapd appears not to be running.
All uids will be mapped to the nobody uid.
Pour monter un partage NFS, en supposant que les partages du serveur se situent dans /export, il faut utiliser la commande :
mount -t nfs4 serveur:/ /mnt
alors qu’avec NFS v3 et inférieure la commande aurait été :
mount -t nfs server:/export /mnt
Dans le fichier /etc/fstab le point de montage sera de cette forme :
serveur:/ /mnt nfs4 wsize=32768,rsize=32768 0 0