87 lines
2.9 KiB
Markdown
87 lines
2.9 KiB
Markdown
---
|
||
categories: storage
|
||
title: Howto NFS
|
||
...
|
||
|
||
* Documentation : <http://nfs.sourceforge.net/nfs-howto>
|
||
|
||
NFS (Network File System) est un protocole réseau permettant le partage de fichiers entre un serveur et des clients.
|
||
|
||
## Installation
|
||
|
||
~~~
|
||
# apt install nfs-kernel-server
|
||
~~~
|
||
|
||
## Configuration
|
||
|
||
Les partages se configurent dans le fichier `/etc/exports` :
|
||
|
||
~~~
|
||
/srv/nfs 192.0.2.4(rw,root_squash,sync,no_subtree_check)
|
||
/srv/nfs2 192.0.2.0/27(ro) 192.0.242(rw)
|
||
~~~
|
||
|
||
Quelques options possibles :
|
||
|
||
* `rw` : active le mode read-write (par défaut c'est en read-only)
|
||
* `async` : autorise le serveur à répondre aux clients même si les fichiers ne sont pas encore écrits, cela améliore les performances mais c'est plus dangereux (possibilité de perdre des fichiers dans certains cas)
|
||
* `no_subtree_check` : désactive certaines vérifications qu'un fichier accédé via NFS appartient bien à un répertoire exporté. Cette option est conseillée en général (c'est même devenu le comportement par défaut)
|
||
* `insecure` : désactive la nécessité d'avoir d'utilisation de ports inférieurs à 1024 pour les clients NFS
|
||
* `no_root_squash`/`all_squash` : options pour la gestion du mapping UID/GID
|
||
|
||
### Mapping uid/gid
|
||
|
||
Par défaut, les requêtes faites depuis un client avec UID/GID à 0 sont mappées en _anonymous_ : c'est le `root_squash`. Si l'on éviter ce comportement, il faut spécifier l'option `no_root_squash`.
|
||
|
||
On peut aussi mapper toutes les requêtes vers un _anonymous_ avec l'option `all_squash`, et l'on peut préciser UID/GID avec les options `anonuid` et `anongid`.
|
||
|
||
|
||
## Clients NFS
|
||
|
||
On peut vérifier la connexion vers un serveur NFS ainsi :
|
||
|
||
~~~
|
||
# rpcinfo -p 192.0.2.1
|
||
~~~
|
||
|
||
~~~
|
||
# apt install nfs-common
|
||
# mount -t nfs -o nfsvers=3 192.0.2.1:/srv/nfs /mnt
|
||
~~~
|
||
|
||
`/etc/fstab` :
|
||
|
||
~~~
|
||
192.0.2.1:/srv/nfs /mnt nfs nfsvers=3 0 0
|
||
192.0.2.1:/srv/nfs /mnt nfs auto,rw,_netdev,mountproto=tcp,comment=systemd.automount 0 0
|
||
~~~
|
||
|
||
~~~
|
||
# mount | grep nfs
|
||
192.0.2.1:/srv/nfs on /srv/nfs type nfs4 (rw,relatime,vers=4,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.0.2.4,minorversion=0,local_lock=none,addr=192.0.2.1)
|
||
~~~
|
||
|
||
To disable NFSv4 on the server, specify '--no-nfs-version 4' in /etc/default/nfs-kernel-server
|
||
|
||
|
||
## Plomberie
|
||
|
||
cat /proc/fs/nfs/exports
|
||
cat /var/lib/nfs/etab
|
||
|
||
|
||
## FAQ
|
||
|
||
### Serveur NFS sous Debian 6
|
||
|
||
Sous Debian Squeeze, il est recommandé de désactiver l'option `RPCMOUNTDOPTS` dans le fichier `/etc/default/nfs-kernel-server` sinon cela pose [des problèmes avec les groupes secondaires](http://bugs.debian.org/585085).
|
||
|
||
### NFS sous Debian 7
|
||
|
||
Sous Debian Wheezy, pour conserver les UID/GID il faut spécifier un domaine similaire sur le client et serveur dans `/etc/idmapd.conf`
|
||
|
||
### Serveur NFS sous Debian 7, client NFS sous Debian 6
|
||
|
||
Si le serveur NFS est sous Debian Wheezy et le client sous Debian Squeeze, il faudra mettre `NEED_IDMAPD=yes` dans `/etc/default/nfs-common` sur le client.
|