Contenu | Rechercher | Menus

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Both sides previous revision Révision précédente
Prochaine révision
Révision précédente
nfs [Le 09/04/2013, 21:08]
78.122.192.192
nfs [Le 30/06/2015, 20:46] (Version actuelle)
strike07 [Rétrograder en NFSv3]
Ligne 1: Ligne 1:
-{{tag>Lucid réseau}} +{{tag>Partage ​réseau}}
 ---- ----
  
Ligne 10: Ligne 9:
 **NFS** est compatible avec IPv6 sur la plupart des systèmes. **NFS** est compatible avec IPv6 sur la plupart des systèmes.
  
-L'​intérêt de NFS est de permettre l'​utilisation d'un répertoire ou de tout le système de fichiers d'un ordinateur de manière totalement transparente,​ comme s'il s'​agissait d'un disque dur connecté directement à votre ordinateur. ​+L'​intérêt de NFS est de permettre l'​utilisation d'un répertoire ou de tout le système de fichiers d'un ordinateur de manière totalement transparente,​ comme s'il s'​agissait d'un disque dur connecté directement à votre ordinateur.
  
 ===== Pré-requis ===== ===== Pré-requis =====
Ligne 42: Ligne 41:
  
 Pour la suite de cet exemple, on considérera que Serveur et Client ont une adresse locale fixe : Pour la suite de cet exemple, on considérera que Serveur et Client ont une adresse locale fixe :
-  * Serveur : **192.168.1.10** +  * Serveur : **192.168.0.10** 
-  * Client : **192.168.1.20**+  * Client : **192.168.0.20**
  
 <note important>​ <note important>​
Ligne 54: Ligne 53:
  
 ^ Les machines ​       ^ IP locales ​             ^ Points de montage des fichiers ​                               ^ ^ Les machines ​       ^ IP locales ​             ^ Points de montage des fichiers ​                               ^
-| **Serveur** ​        | **192.168.1.10** ​        | **/​Fichiers_à_partager_sur_Serveur** ​                         | 
 | //Votre serveur// ​  | //IP de votre serveur// | Exemple : ///​home/​Votre_Nom_d'​Utilisateur_sur_Votre_Serveur//​ | | //Votre serveur// ​  | //IP de votre serveur// | Exemple : ///​home/​Votre_Nom_d'​Utilisateur_sur_Votre_Serveur//​ |
-| **Client**          |** 192.168.1.20**         | **/Point_de_montage_sur_Client**                              |+| **Serveur**         ​| **192.168.0.10**         | **/Fichiers_à_partager_sur_Serveur**                          |
 | //Votre client// ​   | //IP de votre client// ​ | Exemple : ///​home/​Nom_d'​Utilisateur_sur_le_Client/​Partage// ​  | | //Votre client// ​   | //IP de votre client// ​ | Exemple : ///​home/​Nom_d'​Utilisateur_sur_le_Client/​Partage// ​  |
 +| **Client** ​         |** 192.168.0.20** ​        | **/​Point_de_montage_sur_Client** ​                             |
 +
  
 <​note>​Vous n'​êtes pas obligé de connaître les IP de tous vos clients si vous en avez beaucoup ou si leurs IP sont amenées à changer \\ <​note>​Vous n'​êtes pas obligé de connaître les IP de tous vos clients si vous en avez beaucoup ou si leurs IP sont amenées à changer \\
Ligne 73: Ligne 73:
 <file bash /​etc/​exports>​ <file bash /​etc/​exports>​
 # Un exemple à adapter: # Un exemple à adapter:
-/​Dossier/​à/​partager/​ 192.168.0.0/​24(rw,​all_squash,​anonuid=1000,​anongid=1000,​sync)+/​Dossier/​à/​partager/​ 192.168.0.0/​24(rw,​all_squash,​anonuid=1000,​anongid=1000,​sync,​no_subtree_check)
 /​Dossier/​numero02/ ​ master(rw) trusty(rw,​no_root_squash) /​Dossier/​numero02/ ​ master(rw) trusty(rw,​no_root_squash)
 </​file>​ </​file>​
Ligne 97: Ligne 97:
      * **anonuid** : indique au serveur NFS l'UID de l'​utilisateur anonyme (considéré comme tel dans les précédentes options de //​mapping//​).      * **anonuid** : indique au serveur NFS l'UID de l'​utilisateur anonyme (considéré comme tel dans les précédentes options de //​mapping//​).
      * **anongid** : indique au serveur NFS le GID de l'​utilisateur anonyme (considéré comme tel dans les précédentes options de //​mapping//​).      * **anongid** : indique au serveur NFS le GID de l'​utilisateur anonyme (considéré comme tel dans les précédentes options de //​mapping//​).
 +     * **subtree_check** :  Si un sous-répertoire dans un système de fichiers est partagé, mais que le système de fichiers ne l'est pas, alors chaque fois qu'une requête NFS arrive, le serveur doit non seulement vérifier que le fichier accédé est dans le système de fichiers approprié (ce qui est facile), mais aussi qu'il est dans l'​arborescence partagée (ce qui est plus compliqué). Cette vérification s'​appelle subtree_check.
 +     * **no_subtree_check** : Cette option neutralise la vérification de sous-répertoires,​ ce qui a des subtiles implications au niveau de la sécurité, mais peut améliorer la fiabilité dans certains cas.
 +Ce qui pourrait donner par exemple:
  
-<​note>​Si vous obtenez l'​erreur suivante au montage : **mount.nfs4:​ access denied by server while mounting**, vérifiez les droits d'​accès au dossier partagé </​note>​+  /media/NFS 192.168.0.0/​24(rw,​all_squash,​anonuid=1000,​anongid=1000,​sync,​ no_subtree_check) 
 + 
 +<​note>​Si vous obtenez l'​erreur suivante au montage : **mount.nfs4:​ access denied by server while mounting**, vérifiez les droits d'​accès au dossier partagé ​(le dossier est peut être en mode interdit pour "​autres"​ ce qui le rend impossible à lire pour le serveur NFS)</​note>​
  
 === relancer le service === === relancer le service ===
Ligne 106: Ligne 111:
 Cette commande ne coupe pas les transferts en cours si la nouvelle configuration permet toujours leur accès au serveur. Vous pouvez donc la lancer plus ou moins à n'​importe quel moment. Cette commande ne coupe pas les transferts en cours si la nouvelle configuration permet toujours leur accès au serveur. Vous pouvez donc la lancer plus ou moins à n'​importe quel moment.
  
 +Pour vérifier que l'​export a bien eu lieu, taper sur le serveur NFS la commande :
 +  showmount -e
 +
 +Si l'​export n'est pas effectif , il faut faire restart du service NFS mais attention cela peut interrompre les transferts en cours :
 +  sudo service nfs-kernel-server restart
  
 === Un peu de sécurité avec TCPwrapper === === Un peu de sécurité avec TCPwrapper ===
  
-Si vous utilisez [[:​denyhosts|denyhosts]] sur le serveur, il vous faudra ​également ​ajouter les lignes suivantes dans le fichier /​etc/​hosts.allow :+Pas indispensable si vous avez un bon firewall entre internet et votre réseau local, NFS peut être protégé par le serveur le cas échéant. (testez tout d'​abord votre configuration sans protection pour voir si tout fonctionne si vous comptez utiliser ce genre de protection dans le futur) 
 + 
 +Si vous utilisez [[:​denyhosts|denyhosts]] sur le serveur, il vous faudra ajouter les lignes suivantes dans le fichier /​etc/​hosts.allow :
 <file bash /​etc/​hosts.allow>​ <file bash /​etc/​hosts.allow>​
 portmap: <ip de la machine cliente> portmap: <ip de la machine cliente>
Ligne 143: Ligne 155:
 ==== Ubuntu GNU/Linux ==== ==== Ubuntu GNU/Linux ====
  
-Le paquet nécessaire pour accéder à un NFS est **[[apt://nfs-common|nfs-common]]**+Le paquet nécessaire pour accéder à un NFS est **[[apt>nfs-common|nfs-common]]**
  
 Après avoir installé ce paquet, il existe deux solutions pour monter son NFS sur un ordinateur. \\ Après avoir installé ce paquet, il existe deux solutions pour monter son NFS sur un ordinateur. \\
Ligne 161: Ligne 173:
   sudo mkdir /media/NFS   sudo mkdir /media/NFS
   ​   ​
-Vous pouvez bien entendu créer un répertoire du nom de votre choix. ​+Vous pouvez bien entendu créer un répertoire du nom de votre choix; dans ce cas adaptez les instructions suivantes au besoin
  
 Pour ce faire, il suffit de [[:​tutoriel:​comment_modifier_un_fichier|modifier le fichier]] **/​etc/​fstab** pour y ajouter la ligne: Pour ce faire, il suffit de [[:​tutoriel:​comment_modifier_un_fichier|modifier le fichier]] **/​etc/​fstab** pour y ajouter la ligne:
  
 <​file>​ <​file>​
-  192.168.1.10:/<​Dossier_à_partager>/​ /media/NFS nfs defaults,​user,​auto,​noatime,​intr 0 0+  192.168.0.10:/<​Dossier_à_partager>/​ /media/NFS nfs defaults,​user,​auto,​noatime,​intr 0 0
 </​file>​ </​file>​
  
-  * **192.168.1.10** étant l'IP de votre serveur+  * **192.168.0.10** étant l'IP de votre serveur
   * **<​Dossier_à_partager>​** étant le dossier sur votre serveur que vous voulez recevoir (doit correspondre à celui que le serveur veut envoyer)   * **<​Dossier_à_partager>​** étant le dossier sur votre serveur que vous voulez recevoir (doit correspondre à celui que le serveur veut envoyer)
   * **/​media/​NFS** On précise le point de montage (dossier que vous avez créé juste avant dans lequel vous souhaitez monter le partage NFS)   * **/​media/​NFS** On précise le point de montage (dossier que vous avez créé juste avant dans lequel vous souhaitez monter le partage NFS)
Ligne 175: Ligne 187:
   * **defaults,​user,​auto,​noatime,​intr** sont des options de montage, vous pouvez ajouter **,ro** à la fin pour ne pas autoriser l'​écriture.   * **defaults,​user,​auto,​noatime,​intr** sont des options de montage, vous pouvez ajouter **,ro** à la fin pour ne pas autoriser l'​écriture.
   * **0 0** dit à Linux de ne pas vérifier si le disque contient des erreurs (le serveur s'en occupera)   * **0 0** dit à Linux de ne pas vérifier si le disque contient des erreurs (le serveur s'en occupera)
 +
 +<note important>​l'​option **intr** est dépréciée depuis la version de kernel 2.6.25 donc [[lucid|Lucid 10.04 LTS]] comme le stipule la manpage [[man>​nfs|NFS]]</​note>​
  
 <note idée>​**Optimisation possible:** \\ <note idée>​**Optimisation possible:** \\
-Si votre serveur est très peu puissant (un Pentium 2 ou 3 par exemple plus de 12 ans d'​âge,​ bon millésime) vous pouvez augmenter les performances en ajoutant en "​options de montage"​ (voir plus haut) **,nfsvers=3,udp** ceci aura pour effet d'​utiliser la version 3 de NFS ainsi que le protocole UDP. +  * Si vous utilisez un réseau Gigabit ethernet (les dernier switchs, routeurs, box), vous pouvez ajouter en option de montage: **,​rsize=16384,​wsize=16384** \\ 
-Vous devrez ​utiliser moins de processeur mais ceci peut ne pas marcher très bien si votre liaison réseau est de mauvaise qualité **(ne surtout pas utiliser ces options sur les clients en Wifi !)**+Ces options de montage permettront de booster légèrement à énormément (suivant la carte réseau) la vitesse de transfert sur les gros fichiers. 
 +  * Si votre serveur est très peu puissant (un Pentium 2 ou 3 par exemple plus de 12 ans d'​âge,​ bon millésime) vous pouvez augmenter les performances en ajoutant en "​options de montage"​ (voir plus haut) **,vers=3,udp** ceci aura pour effet d'​utiliser la version 3 de NFS ainsi que le protocole UDP. \\ 
 +Vous devriez maintenant ​utiliser moins de processeur mais ceci peut ne pas marcher très bien si votre liaison réseau est de mauvaise qualité **(ne surtout pas utiliser ces options sur les clients en Wifi !)**
 </​note>​ </​note>​
  
Ligne 201: Ligne 217:
  
 ===== Résoudre les problèmes ===== ===== Résoudre les problèmes =====
 +
 ==== Rétrograder en NFSv3 ==== ==== Rétrograder en NFSv3 ====
 +Si vous obtenez un message comme:"​mount.nfs:​ access denied by server while mounting"​ipserveur"",​ c'est certainement que vous avez entré les bonnes adresses ip autorisés dans export, cependant, NFSv4 n'​utilise pas le système d'​authentification par ip, il est donc utile de rétrograder en version 3 pour que le serveur se base sur l'ip
 === Côté serveur === === Côté serveur ===
 Modifier le fichier **/​etc/​default/​nfs-kernel-server** et éditer la ligne Modifier le fichier **/​etc/​default/​nfs-kernel-server** et éditer la ligne
Ligne 209: Ligne 227:
  
 <​code>​RPCNFSDCOUNT='​8 --no-nfs-version 4'</​code>​ <​code>​RPCNFSDCOUNT='​8 --no-nfs-version 4'</​code>​
 +
 === Côté client === === Côté client ===
 Ajoutez **nfsvers=3** au fichier **/​etc/​fstab** Ajoutez **nfsvers=3** au fichier **/​etc/​fstab**
Ligne 216: Ligne 235:
 ==== Résoudre le problème de verrouillage de fichiers avec LibreOffice ==== ==== Résoudre le problème de verrouillage de fichiers avec LibreOffice ====
 Commentez les lignes suivantes dans les fichiers **/​usr/​bin/​libreoffice** et **/​usr/​bin/​soffice** Commentez les lignes suivantes dans les fichiers **/​usr/​bin/​libreoffice** et **/​usr/​bin/​soffice**
 +(ajouter un # devant les deux lignes)
  
 <​code>​SAL_ENABLE_FILE_LOCKING=1 <​code>​SAL_ENABLE_FILE_LOCKING=1
 export SAL_ENABLE_FILE_LOCKING</​code>​ export SAL_ENABLE_FILE_LOCKING</​code>​
  
-===== Autres liens =====+==== Résoudre le problème de temps de montage sur les clients ​ ==== 
 + 
 +Les clients Ubuntu 13 et 14 présentent un bug connu : un temps de latence très long pour le montage 
 +https://​bugs.launchpad.net/​ubuntu/​+source/​nfs-utils/​+bug/​1270445 
 + 
 +Pour le résoudre, sur le client Modifier le fichier **/​etc/​default/​nfs-common** et éditer la ligne 
 +<​code>#​ Do you want to start the gssd daemon? It is required for Kerberos mounts. 
 +NEED_GSSD= 
 +</​code>​ 
 + 
 +par 
 + 
 +<​code>#​ Do you want to start the gssd daemon? It is required for Kerberos mounts. 
 +NEED_GSSD=yes 
 +</​code>​ 
 + 
 +puis blacklister le module '​rpcsec_gss_krb5'​ en éditant le fichier /​etc/​modprobe.d/​blacklist.conf en y ajoutant à la fin la ligne : 
 +<​code>#​To improve NFS mounting time 
 +blacklist '​rpcsec_gss_krb5'​ 
 +</​code>​ 
 + 
 + 
 + 
 + ===== Autres liens =====
  
 http://​nfs.sourceforge.net/​ http://​nfs.sourceforge.net/​
  
 {{backlinks>​nfs}} {{backlinks>​nfs}}


Le contenu de ce wiki est sous licence : CC BY-SA v3.0