# NFS (Français)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Related articles

- NFS/Troubleshooting

NFS (pour Network File System, système de fichiers en réseau) est un protocole qui permet à un ordinateur d'accéder à des fichiers via un réseau.

## Objectif

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

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

## Paquets requis

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

- core/nfs-utils

Note: Cependant, il est hautement recommandé de synchroniser l'heure de tous les nœuds pour éviter certains types de latence. L'activation du service Systemd-timesyncd suffit.

## 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:

    /etc/exports

    /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

Note: Pour des raisons de sécurité, il est recommandé d'utiliser un montage NFS à la racine qui limitera les accès à ce point de montage. L'exemple suivant suit ce concept.

    mkdir -p /srv/nfs4/musique
    mount --bind /mnt/music /srv/nfs4/musique

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:

    /etc/exports

    ; 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 la commande suivante avec systemd :

    systemctl start nfs-server.service

## Configuration du client

Pour lister les dossiers exportés par le serveur 192.168.0.2 :

    showmount -e 192.168.0.2

### 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.

### Montage manuel

Pour monter un partage NFS:

    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`

Dans le cadre d'un montage sécurisé à la racine /srv, ceci donne :

    mount ELROND:/srv/nfs4/music /mnt/point

Note: Vous pouvez vérifier que le nom du serveur défini sur `/etc/hostname` est valide avec la commande `hostnamectl status`, ainsi que la liste de la structure exportée avec `showmount -e`.
Note: À défaut d'utiliser le nom du serveur, son adresse IP peut le remplacer. Cependant il existe un risque de blocage lors du montage à partir d'une adresse IP.

### Montage automatique au démarrage

Ajoutez la ligne appropriée dans le fichier `/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 à 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

- Voir aussi Avahi, un implémentation Zeroconf qui permet une détection automatique des partages NFS.
- Diskless system (en)
- NFS Performance (IBM) (anglais seulement)
- Si vous implementez le serveur NFS Archlinux pour une utilisation par des clients Windows par le biais du SFU de Microsoft, vous devriez sauver beaucoup de temps en regardant ce sujet (en) en premier !
- Microsoft Services for Unix NFS info du client
- interopérabilité entre Unix et Windows Vista Prérequis pour se connecter à NFS avec Vista

Categories:

- File systems (Français)
- Network sharing (Français)
- Servers (Français)