Modifications entre les versions 5 et 10 (s'étendant sur 5 versions)
Version 5 à la date du 2007-12-05 07:48:58
Taille: 2753
Éditeur: JérômeSantini
Commentaire:
Version 10 à la date du 2007-12-10 16:03:43
Taille: 6300
Éditeur: ThomasNoël
Commentaire: bon là j'ai donné tout ce que j'avais, j'ai mal au dos
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
== Expliquer le principe == = Principes =
Ligne 3: Ligne 3:
 * schéma général
 * les lacunes de nfs
 * pour l'utiliser quand même ?
NFS (Network File System) est comme son nom l'indique un système de fichier par réseau. Il vous permet d'avoir accès à un répertoire d'une machine distante (le serveur NFS) de façon tout à fait transparente, via un simple répertoire de votre machine (le client NFS).
Ligne 7: Ligne 5:
== Détails des deux/trois petits trucs à faire == Par exemple il est possible de faire en sorte que le répertoire `/home` d'une machine soit en fait une vue du répertoire `/home` d'un serveur (là où sont vraiment les données, sur le disque dur du serveur).

Reste à écrire :
 * schéma technique général, démons et modules mis en jeu
 * les lacunes de nfs : sécurité et performances
 * Pour l'utiliser quand même ? Parce que ça marche et que c'est facile à mettre en oeuvre. On dira que c'est ''efficace''.

= Mise en place =
Ligne 11: Ligne 16:
=== Configuration côté serveur === == Configuration côté serveur ==
Ligne 13: Ligne 18:
 * (détailler les deux secondes de manip')  * Installation du logiciel serveur :
  {{{# aptitude install nfs-kernel-server
}}}
 * Configuration : on déclare ce qu'on veut exporter dans le fichier `/etc/exports`. Ce fichier sert de liste de contrôle d’accès pour les systèmes de fichiers à partager avec les clients NFS. Un exemple :
  {{{
# extrait de /etc/exports. Faire un "man 5 exports" pour avoir le détail de la syntaxe
/home 192.168.0.0/16(rw,async,no_subtree_check) 10.196.0.0/20(rw,async,no_root_squash,no_subtree_check)
/home2 192.168.0.0/16(rw,async,no_subtree_check) 10.196.0.0/20(rw,async,no_root_squash,no_subtree_check)
}}}
 * C'est tout !
Ligne 15: Ligne 29:
=== Configuration côté client === A détailler :
  * différences entre `nfs-kernel-server`, `nfs-user-server` et `unfs3`.
  * quelques options de `exports`
Ligne 17: Ligne 33:
 * (détailler les deux secondes de manip')
 * parler de automount. Pourquoi ce serait déraisonnable de refuser de l'utiliser
 
== Que faire lorsque "ça ne marche pas" ? ==
== Configuration côté client ==

 * Sur Ubuntu, à partir de la version Gutsy (7.10) il faut installer le paquet `nfs-common` (qui n'est plus installé par défaut)

=== Montage "à la main" ===

  {{{
# mount serveur:/repertoire /point/de/montage
}}}

Le montage sera effectif tant que la partition n'aura pas été démontée (`umount /point/de/montage`) ou que la machine n'aura pas été redémarrée.

'''A détailler : options... rsize et ses amis'''

=== Montage depuis le fstab ===

Si on veut rendre un montage NFS permanent, on peut l'indiquer dans le fichier `/etc/fstab` :
  {{{
# (... extrait de /etc/fstab ...)
# <file system> <mount point> <type> <options> <dump> <pass>
serveur:/home /point/de/mnt nfs rw,intr,rsize=8192,wsize=8192,proto=tcp 0 0
}}}

=== Montage par automount (pourquoi et comment) ===

Si on fait un montage permanent via fstab, cela donne quelques inconvénients :
 * le montage est fait systématiquement, même quand le répertoire n'est pas utilisé : gaspillage de ressources
 * si le serveur NFS doit être redémarré entre temps, le client ne parviendra plus à refaire le montage correctement (ou disons plutôt que ça marchera très mal, Jérôme précisera car là moi je bon)

On préfére donc utiliser un auto-monteur. Il va monter les partitions à la demande, et les démontera quand elles ne seront plus utilisées.

 1. On installe l'automonteur :
  {{{# aptitude install autofs
}}}
 2. On indique qu'on veut que /nfs soit un point d'automontage, et que sa configuration sera dans
  {{{# extrait du fichier /etc/auto.master
# /nfs sera un répertoire géré par autofs (il faut faire un mkdir /nfs)
# ce répertoire /nfs a sa configuration dans /etc/auto.nfs
# démontages après une heure de non-utilisation.
/nfs /etc/auto.nfs --timeout=3600
}}}
 3. Configuration des sous-répertoires de `/nfs` :
  {{{# fichier /etc/auto.nfs
repertoire1 -fstype=nfs,intr,rsize=8192,wsize=8192,proto=tcp serveur1:/repertoire1
repertoire2 -fstype=nfs,intr,rsize=8192,wsize=8192,proto=udp serveur2:/un/autre/repertoire2
}}}

Et c'est tout ! A partir de ce moment, `/nfs/repertoire1` et `/nfs/repertoire2` seront montés sur demande, et démontés au bout d'une heure de non-utilisation. Très pratique et très propre !

= Que faire lorsque "ça ne marche pas" ? =
Ligne 29: Ligne 91:
 * vérifier que les uid/gid côté client et serveur sont bien synchrone ({{{id ''mauvais.gringo''}}} doit donner le même résultat sur le client nfs et sur le serveur)  * vérifier que les uid/gid côté client et serveur sont bien synchrone ({{{id mauvais.gringo}}} doit donner le même résultat sur le client nfs et sur le serveur)

Principes

NFS (Network File System) est comme son nom l'indique un système de fichier par réseau. Il vous permet d'avoir accès à un répertoire d'une machine distante (le serveur NFS) de façon tout à fait transparente, via un simple répertoire de votre machine (le client NFS).

Par exemple il est possible de faire en sorte que le répertoire /home d'une machine soit en fait une vue du répertoire /home d'un serveur (là où sont vraiment les données, sur le disque dur du serveur).

Reste à écrire :

  • schéma technique général, démons et modules mis en jeu
  • les lacunes de nfs : sécurité et performances
  • Pour l'utiliser quand même ? Parce que ça marche et que c'est facile à mettre en oeuvre. On dira que c'est efficace.

Mise en place

  • surtout, rajouter des liens vers des vraies docs

Configuration côté serveur

  • Installation du logiciel serveur :
    • {{{# aptitude install nfs-kernel-server

}}}

  • Configuration : on déclare ce qu'on veut exporter dans le fichier /etc/exports. Ce fichier sert de liste de contrôle d’accès pour les systèmes de fichiers à partager avec les clients NFS. Un exemple :

    • # extrait de /etc/exports. Faire un "man 5 exports" pour avoir le détail de la syntaxe
      /home   192.168.0.0/16(rw,async,no_subtree_check) 10.196.0.0/20(rw,async,no_root_squash,no_subtree_check)
      /home2  192.168.0.0/16(rw,async,no_subtree_check) 10.196.0.0/20(rw,async,no_root_squash,no_subtree_check)
  • C'est tout !

A détailler :

  • différences entre nfs-kernel-server, nfs-user-server et unfs3.

  • quelques options de exports

Configuration côté client

  • Sur Ubuntu, à partir de la version Gutsy (7.10) il faut installer le paquet nfs-common (qui n'est plus installé par défaut)

Montage "à la main"

  • # mount serveur:/repertoire /point/de/montage

Le montage sera effectif tant que la partition n'aura pas été démontée (umount /point/de/montage) ou que la machine n'aura pas été redémarrée.

A détailler : options... rsize et ses amis

Montage depuis le fstab

Si on veut rendre un montage NFS permanent, on peut l'indiquer dans le fichier /etc/fstab :

  • # (... extrait de /etc/fstab ...)
    # <file system> <mount point>   <type>  <options>                                <dump>  <pass>
    serveur:/home   /point/de/mnt   nfs     rw,intr,rsize=8192,wsize=8192,proto=tcp  0       0

Montage par automount (pourquoi et comment)

Si on fait un montage permanent via fstab, cela donne quelques inconvénients :

  • le montage est fait systématiquement, même quand le répertoire n'est pas utilisé : gaspillage de ressources
  • si le serveur NFS doit être redémarré entre temps, le client ne parviendra plus à refaire le montage correctement (ou disons plutôt que ça marchera très mal, Jérôme précisera car là moi je bon)

On préfére donc utiliser un auto-monteur. Il va monter les partitions à la demande, et les démontera quand elles ne seront plus utilisées.

  1. On installe l'automonteur :
    • {{{# aptitude install autofs

}}}

  1. On indique qu'on veut que /nfs soit un point d'automontage, et que sa configuration sera dans
    • {{{# extrait du fichier /etc/auto.master

# /nfs sera un répertoire géré par autofs (il faut faire un mkdir /nfs) # ce répertoire /nfs a sa configuration dans /etc/auto.nfs # démontages après une heure de non-utilisation. /nfs /etc/auto.nfs --timeout=3600 }}}

  1. Configuration des sous-répertoires de /nfs :

    • {{{# fichier /etc/auto.nfs

repertoire1 -fstype=nfs,intr,rsize=8192,wsize=8192,proto=tcp serveur1:/repertoire1 repertoire2 -fstype=nfs,intr,rsize=8192,wsize=8192,proto=udp serveur2:/un/autre/repertoire2 }}}

Et c'est tout ! A partir de ce moment, /nfs/repertoire1 et /nfs/repertoire2 seront montés sur demande, et démontés au bout d'une heure de non-utilisation. Très pratique et très propre !

Que faire lorsque "ça ne marche pas" ?

Vérifications à faire côté client

  • [:VérifierSiUnProcessusExiste:automount est-il bien actif] (et je ne vous parle pas si vous n'utilisez par automount dans votre CNF)

  • cohérence entre le fichier /etc/auto.master et les fichiers de table (/etc/auto.nfs pour les postes configurés avec le PaquetAufDesktop.

  • Que donne l'accés direct au répertoire en automount en ligne de commande ? Par exemple : cd /nfs/home

  • Vérifier, si le repertoire apparait, qu'il posséde bien les droits et propriétaires attendus : ls -lsd /nfs/home (-d pour voir le répertoire lui-même, et non son contenu)

  • vérifier que les uid/gid côté client et serveur sont bien synchrone (id mauvais.gringo doit donner le même résultat sur le client nfs et sur le serveur)

  • Si on essaye de monter la partition "à la main", quels sont les messages d'erreur ?

# mount -t nfs le-serveur-nfs:/home /mnt
mount to NFS server 'le-serveur-nfs' failed: server is down.
  • les logs ? /var/log/messages, /var/log/daemon.log

/var/log/messages:Nov 23 09:31:23 poste-client kernel: nfs: server 111.222.111.222 not responding, still trying
/var/log/messages:Nov 23 09:39:09 poste-client kernel: nfs: server 111.222.111.222 OK
  • le serveur est-il bien accessible via le portmapper ?

~# rpcinfo -p un-serveur-pas-nfs 
rpcinfo: ne peut contacter l'aiguilleur de ports: RPC: erreur système sur l'hôte cible - Connexion refusée
~# rpcinfo -p un-vrai-serveur-nfs
   program no_version protocole  no_port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100003    2   udp   2049  nfs
...
  • Vérifier les exports, vus du côté client :

# showmount -e un-serveur-nfs
Export list for nfs:
/home           10.196.0.0/20,192.168.0.0/16
/home2          10.196.0.0/20,192.168.0.0/16
/srv/nfs/ubuntu 10.196.1.0/24,192.168.0.0/16

Vérifications à faire côté serveur

(à finir demain, je fatigue un peu, là...)

NFS (dernière édition le 2011-02-07 18:28:35 par JeanChristopheAndré)