NFS : Différence entre versions

De ArchwikiFR
m (Démons : Suppression du paragraphe relatif à l'ancien init (obsolète).)
(Première passe avec suppression de rc.d...)
Ligne 1 : Ligne 1 :
{{Note|nfs-utils a été mis à jour le 23-06-2009, et le support d'NFS4 est maintenant implémenté. Il est conseillé de se référer à la ''[http://www.archlinux.org/news/452/ news]''.}}
+
[[en:Nfs]]
 +
 
 
{{Note|portmap a été remplacé par rpcbind.}}
 
{{Note|portmap a été remplacé par rpcbind.}}
  
 
==Objectif==
 
==Objectif==
 
L'objectif de cet article est de mettre en place un serveur nfs pour partager des fichiers à travers un réseau.
 
L'objectif de cet article est de mettre en place un serveur nfs pour partager des fichiers à travers un réseau.
 
{{Note|pour NFSv4, voir [[NFSv4]]}}
 
  
 
==Paquets requis==
 
==Paquets requis==
 
Les paquets requis à la fois pour le serveur et le client sont minimes.<br>
 
Les paquets requis à la fois pour le serveur et le client sont minimes.<br>
 
Vous aurez seulement besoin d'installer:
 
Vous aurez seulement besoin d'installer:
*core/rpcbind (ou core/portmap qui a été remplacé)
+
*core/{{pkg|nfs-utils}}
*core/nfs-utils  
 
 
 
Comme les paquets se trouvent dans le dépôt [core], ils seront inclus par défaut dans les nouvelles installations d'Arch.
 
  
 
==Configurer le serveur==
 
==Configurer le serveur==
Ligne 23 : Ligne 19 :
 
Quelques exemples:
 
Quelques exemples:
 
<pre>
 
<pre>
/files *(ro,sync) ; Accès en lecture seule pour tout le monde
+
/files *(ro,no_subtree_check) ; Accès en lecture seule pour tout le monde
/files 192.168.0.100(rw,sync) ; Accès en lecture-écriture pour le client dont l'ip est 192.168.0.100
+
/files 192.168.0.100(rw,no_subtree_check) ; Accès en lecture-écriture pour le client dont l'ip est 192.168.0.100
/files 192.168.1.1/24(rw,sync) ;  Accès en lecture-écriture pour tous les clients du réseau 192.168.1.0
+
/files 192.168.1.1/24(rw,no_subtree_check) ;  Accès en lecture-écriture pour tous les clients du réseau 192.168.1.0
 
</pre>
 
</pre>
  
 
Si vous effectuez des changements dans le fichier /etc/exports après le démarrage du démon, vous pouvez les faire prendre en compte par la commande suivante:
 
Si vous effectuez des changements dans le fichier /etc/exports après le démarrage du démon, vous pouvez les faire prendre en compte par la commande suivante:
 
<pre>
 
<pre>
exportfs -r
+
exportfs -ra
 
</pre>
 
</pre>
  
Ligne 37 : Ligne 33 :
 
<pre>
 
<pre>
 
; Read-write access to a client on 192.168.0.100, with rw access for the user 99 with gid 99
 
; Read-write access to a client on 192.168.0.100, with rw access for the user 99 with gid 99
/files 192.168.0.100(rw,sync,all_squash,anonuid=99,anongid=99))
+
/files 192.168.0.100(rw,no_subtree_check,all_squash,anonuid=99,anongid=99))
 
</pre>
 
</pre>
  
Ligne 48 : Ligne 44 :
 
Les détails complets sur le fichier exports sont disponibles dans la page man d'exports.
 
Les détails complets sur le fichier exports sont disponibles dans la page man d'exports.
  
====/etc/conf.d/nfs-common.conf====
+
====/etc/conf.d/nfs-common.conf et /etc/conf.d/nfs-server.conf====
{{Note|Avant, c'était dans /etc/conf.d/nfs qui a été remplacé par "/etc/conf.d/nfs-common.conf" et "/etc/conf.d/nfs-server.conf".}}
 
  
Modifiez ce fichier pour passer les options de démarrage appropriées pour nfsd, mountd, statd, et sm-notify. Le script init NFS d'Arch initial requiert l'option --no-notify pour statd, comme ce qui suit:
+
Modifiez ce fichier pour passer les options de démarrage appropriées pour nfsd, mountd, statd, et sm-notify.
STATD_OPTS="--no-notify"
 
 
D'autres options pourraient être laissées par défaut, ou changées selon vos besoins. Veuillez vous référer aux pages man appropriées pour les détails complets.
 
D'autres options pourraient être laissées par défaut, ou changées selon vos besoins. Veuillez vous référer aux pages man appropriées pour les détails complets.
 
====/etc/hosts.allow====
 
Pour permettre un acces réseau au serveur nfs, vous devriez modifier /etc/hosts.allow.<br>
 
L'exemple suivant ouvre ces services à n'importe qui:
 
<pre>
 
nfsd: ALL
 
rpcbind: ALL
 
mountd:ALL
 
</pre>
 
C'est une façon très peu sûre de permettre l'accès de l'hôte. Pour avoir un meilleur contrôle sur qui est autorisé à accéder aux démons; hosts.deny devrait être 'everyone', et hosts.allow devrait spécifiquement autoriser certaines personnes.
 
Dans cet exemple, 192.168.0.101 sera l'adresse IP de la personne autorisée à acceder au serveur. Les nombres après le '/' ne sont pas un masque réseau!
 
<pre>
 
nfsd: 192.168.0.101/255.255.255.255
 
rpcbind: 192.168.0.101/255.255.255.255
 
mountd: 192.168.0.101/255.255.255.255
 
</pre>
 
 
Ces exemples donnent l'accès à n'importe qui sur ce réseau
 
<pre>
 
nfsd: 192.168.0.0/255.255.255.0
 
rpcbind: 192.168.0.0/255.255.255.0
 
mountd: 192.168.0.0/255.255.255.0
 
</pre>
 
Pour un contrôle plus raffiné, lisez la page man hosts_access(5).
 
  
 
===Démons===
 
===Démons===
Vous pouvez maintenant démarrer le serveur avec les commandes suivantes:
+
Vous pouvez maintenant démarrer le serveur avec les commandes suivantes avec systemd:
 
 
{{rc|rpcbind}} (ou:{{rc|portmap}})
 
{{rc|nfs-common}} (ou:{{rc|nfslock}})
 
{{rc|nfs-server}} (ou:{{rc|nfsd}})
 
 
 
Veuillez noter qu'ils doivent être démarrés dans cet ordre.<br>
 
Pour démarrer le serveur au démarrage du système, ajoutez ces démons à la liste de DAEMONS dans /etc/rc.conf.
 
 
 
Ou avec systemd:
 
 
<pre>
 
<pre>
 
systemctl start nfsd.service rpc-idmapd.service rpc-mountd.service rpcbind.service
 
systemctl start nfsd.service rpc-idmapd.service rpc-mountd.service rpcbind.service
 
</pre>
 
</pre>
 +
 
==Configuration du client==
 
==Configuration du client==
 
===Fichiers===
 
===Fichiers===
Ligne 99 : Ligne 61 :
  
 
Veuillez vous référer à la page man de statd pour des détails complets.
 
Veuillez vous référer à la page man de statd pour des détails complets.
 
====/etc/hosts.allow====
 
Vous aurez besoin d'accorder le droit d'accès a l'ip du serveur pour rpcbind
 
rpcbind: 192.168.0.100/255.255.255.255
 
  
 
===Démons===
 
===Démons===
Ligne 120 : Ligne 78 :
  
 
===Montage automatique au démarrage===
 
===Montage automatique au démarrage===
Si vous voulez monter au démarrage, assurez-vous que network, rpcbind (portmap), nfs-common (nfslock) et netfs sont dans la liste des DAEMONS dans /etc/rc.conf. Soyez sûr que l'ordre est comme indiqué ici. C'est mieux de ne mettre aucun '@' devant celles-ci. Par exemple :
 
DAEMONS=(... network rpcbind nfs-common @netfs ...)
 
ou
 
DAEMONS=(... network portmap nfslock @netfs ...)
 
  
Ajoutez la ligne appopriée dans '''/etc/fstab''', par example:
+
Ajoutez la ligne appropriée dans '''/etc/fstab''', par exemple:
 
  server:/files /files nfs defaults 0 0
 
  server:/files /files nfs defaults 0 0
  
Si vous souhaitez spécifier une taille pour les paquets de lecture et d'écriture, veuillez les spécifier dans l'entrée fstab. Les valeurs ci-dessous sont celles utilisées par defaut si aucunes ne sont spécifiées:
+
Si vous souhaitez spécifier une taille pour les paquets de lecture et d'écriture, veuillez les spécifier dans l'entrée fstab. Les valeurs ci-dessous sont celles utilisées par défaut si aucunes ne sont spécifiées:
  
 
  server:/files /files nfs rsize=32768,wsize=32768 0 0
 
  server:/files /files nfs rsize=32768,wsize=32768 0 0
Ligne 139 : Ligne 93 :
  
 
Note: La valeur par défaut pour NFS4 est de 32768. Le maximum est 65536. Augmentez la valeur initiale par incrémentation de 1024 jusqu'à ce que le taux de transfert maximum soit atteint.
 
Note: La valeur par défaut pour NFS4 est de 32768. Le maximum est 65536. Augmentez la valeur initiale par incrémentation de 1024 jusqu'à ce que le taux de transfert maximum soit atteint.
 
===Le démon portmap échoue au démarrage===
 
Assurez vous d'avoir placé portmap AVANT netfs dans la liste DAEMONS dans /etc/rc.conf .
 
  
 
===Nfsd ne démarre pas avec "nfssvc: No such device" comme message===
 
===Nfsd ne démarre pas avec "nfssvc: No such device" comme message===

Version du 13 avril 2013 à 12:25


Note : portmap a été remplacé par rpcbind.

Objectif

L'objectif de cet article est de mettre en place un serveur nfs pour partager des fichiers à travers un réseau.

Paquets requis

Les paquets requis à la fois pour le serveur et le client sont minimes.
Vous aurez seulement besoin d'installer:

Configurer le serveur

Vous pouvez maintenant modifier votre configuration et démarrer les démons. Vous devez être root pour exécuter les commandes suivantes.

Fichiers

/etc/exports

Ce fichier (/etc/exports) définit les différents partages sur le serveur NFS, et leurs droits d'accès.
Quelques exemples:

/files *(ro,no_subtree_check) ; Accès en lecture seule pour tout le monde
/files 192.168.0.100(rw,no_subtree_check) ; Accès en lecture-écriture pour le client dont l'ip est 192.168.0.100
/files 192.168.1.1/24(rw,no_subtree_check) ;  Accès en lecture-écriture pour tous les clients du réseau 192.168.1.0

Si vous effectuez des changements dans le fichier /etc/exports après le démarrage du démon, vous pouvez les faire prendre en compte par la commande suivante:

exportfs -ra

Si vous décidez de rendre votre partage NFS public et accessible en écriture, vous pouvez utiliser l'option all_squash en combinaison avec les options anonuid et anongid. Par exemple, pour définir les privilèges pour l'utilisateur nobody du groupe nobody, vous pouvez effectuer les opérations suivantes:

; Read-write access to a client on 192.168.0.100, with rw access for the user 99 with gid 99
/files 192.168.0.100(rw,no_subtree_check,all_squash,anonuid=99,anongid=99))


Cela signifie aussi que si vous voulez un accès en écriture à ce répertoire, l'utilisateur nobody.nobody doit être le propriétaire du répertoire partagé:

chown -R nobody.nobody /files

Les détails complets sur le fichier exports sont disponibles dans la page man d'exports.

/etc/conf.d/nfs-common.conf et /etc/conf.d/nfs-server.conf

Modifiez ce fichier pour passer les options de démarrage appropriées pour nfsd, mountd, statd, et sm-notify. D'autres options pourraient être laissées par défaut, ou changées selon vos besoins. Veuillez vous référer aux pages man appropriées pour les détails complets.

Démons

Vous pouvez maintenant démarrer le serveur avec les commandes suivantes avec systemd:

systemctl start nfsd.service rpc-idmapd.service rpc-mountd.service rpcbind.service

Configuration du client

Fichiers

/etc/conf.d/nfs

Modifiez ce fichier pour passer les options de démarrage appropriées pour statd - les options restantes sont pour une utilisation serveur seulement. N'utilisez PAS l'option --no-notify du coté client, à moins d'être certain de ce que vous faites.

Veuillez vous référer à la page man de statd pour des détails complets.

Démons

Avec systemd:

systemctl start nfsd.service rpc-idmapd.service

Puis montez-le normalement:

mount server:/files /files

NOTE: Contrairement aux partages CIFS ou rsync, les exports NFS doivent être appelés par le chemin de destination complet sur le serveur. Exemple: si /home/fred/music est défini dans /etc/exports sur le serveur ELROND, vous devez appeler

mount ELROND:/home/fred/music /mnt/point

au lieu de juste utiliser

mount ELROND:music /mnt/point

sinon vous allez obtenir mount.nfs: access denied by server while mounting

Montage automatique au démarrage

Ajoutez la ligne appropriée dans /etc/fstab, par exemple:

server:/files /files nfs defaults 0 0

Si vous souhaitez spécifier une taille pour les paquets de lecture et d'écriture, veuillez les spécifier dans l'entrée fstab. Les valeurs ci-dessous sont celles utilisées par défaut si aucunes ne sont spécifiées:

server:/files /files nfs rsize=32768,wsize=32768 0 0

Veuillez lire la page man de nfs pour plus d'informations, incluant toutes les options de montage.

Dépannage

Performances peu fiables, transfert des données lent, et/ou haute charge quand j'utilise NFS et gigabit(vitesse)

Ceci est le résultat de la taille des paquets par défaut utilisée par NFS, ce qui cause une fragmentation importante sur les réseaux a gigabit . Vous pouvez modifier ce comportement en changeant la valeur des paramètres de montage rsize et wsize. Utiliser rsize=32768,wsize=32768 devrait suffire. Veuillez prendre note que ce problème ne se produit pas sur les réseaux a 100MB, dû à la vitesse de transfert des paquets plus basse.

Note: La valeur par défaut pour NFS4 est de 32768. Le maximum est 65536. Augmentez la valeur initiale par incrémentation de 1024 jusqu'à ce que le taux de transfert maximum soit atteint.

Nfsd ne démarre pas avec "nfssvc: No such device" comme message

Assurez-vous que les modules nfs et nfsd sont chargés dans le kernel.

Nfsd semble marcher, mais je ne peux me connecter depuis les clients MacOS X

Quand vous essayez de vous connecter depuis un client MacOS X, vous devriez voir que tout est correct dans les journaux(logs), mais MacOS X refuse de monter votre NFS partagé. Vous avez à ajouter l'option insecure à votre partage et réexecuter exportfs -r.

Liens et Références