2090
Commentaire:
|
6300
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 27: | Ligne 89: |
* Que donne l'accés direct au répertoire en automount en ligne de commande ? Par exemple : {{{cd /nfs/home}}} et {{{ls -lsd /nfs/home}}}. Vérifier, si le repertoire apparait, qu'il posséde bien les droits et propriétaires attendus. | * 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) |
Ligne 49: | Ligne 113: |
* 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 }}} |
|
Ligne 52: | Ligne 124: |
* [:VérifierSiUnProcessusExiste: | (à finir demain, je fatigue un peu, là...) * Le daemon [:VérifierSiUnProcessusExiste:nfsd est-il bien actif] ? * tcp/udp ? * fichier exports ? * filtrage de paquets ? * logs ? * heuuuu ? |
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.
- On installe l'automonteur :
- {{{# aptitude install autofs
}}}
- 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 }}}
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à...)
Le daemon [:VérifierSiUnProcessusExiste:nfsd est-il bien actif] ?
- tcp/udp ?
- fichier exports ?
- filtrage de paquets ?
- logs ?
- heuuuu ?