informatique:linux:nfs-network-file-system:index

Partage réseau sous Linux : NFS

Network File System est le système de fichiers pour réseau Linux.

NFS est un système de partage de fichiers, respectant les protocoles d'accès aux fichiers Linux.

Il est nécessaire d'avoir deux ordinateurs, au moins, pour mettre en œuvre un partage NFS. Par exemple :

  • Serveur NFS : rpinas001.acegrp.lan - 192.168.100.1
  • Client NFS : dskcdc001.acegrp.lan - 192.168.100.155

Il est possible d'avoir plusieurs Serveur NFS et plusieurs Clients.

Il est nécessaire d'autoriser le dialogue réseau entre le Serveur et le Client. L'utilisation de la commande ping pour confirmer la communication entre les deux systèmes.

Modifier le fichier /etc/idmapd.conf en admin pour intégrer le domaine dans la configuration :

Décommenter la ligne et indiquer le nom du domaine :

Domain = acegrp.lan

Vérifier la configuration du mapping :

Nobody-User = nobody
Nobody-Group = nogroup

L'idée est de centraliser les dossiers à partager dans le dossier /export. Pour exemple, on partage dans ce dossier export, le dossier /mnt.

Créer le dossier /export/media :

$ sudo mkdir -p /export/media

Créer un point de montage de /mnt vers /export/media. Ajouter une entrée dans le fichier /etc/fstab :

/mnt    /export/media   none    bind  0  0

Monter le dossier /export/media :

$ sudo  mount /export/media

Modifier le fichier /etc/exports :

/export       192.168.1.0/24(rw,fsid=0,insecure,no_subtree_check,async)
/export/media 192.168.1.0/24(rw,nohide,insecure,no_subtree_check,async)

Mettre à jour les exports :

$ sudo exportfs -ra

Fedora 28 Sous Fedora 28, deux services doivent être activé et démarrés : RPCbind et nfs :
$ sudo systemctl start rpcbind nfs-server
$ sudo systemctl enable rpcbind nfs-server
Raspbian 10

Sous Raspbian 10, il faut activer le service nfs-kernel-server :

$ sudo systemctl enable nfs-kernel-server

Puis démarrer le service nfs-kernel-server :

$ sudo systemctl start nfs-kernel-server

On rajoute 4 exceptions exactement :

  • 2049 en udp et tcp
  • 111 en udp et tcp
sudo firewall-cmd --add-port=2049/udp
sudo firewall-cmd --add-port=2049/tcp
sudo firewall-cmd --add-port=111/udp
sudo firewall-cmd --add-port=111/tcp

ou encore plus rapidement

sudo firewall-cmd --add-service=nfs --permanent
sudo firewall-cmd --reload

FAQ

rpcinfo -p 192.168.100.5

Résultat

   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  40258  status
    100024    1   tcp  41279  status
    100005    1   udp  20048  mountd
    100005    1   tcp  20048  mountd
    100005    2   udp  20048  mountd
    100005    2   tcp  20048  mountd
    100005    3   udp  20048  mountd
    100005    3   tcp  20048  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049  nfs_acl
    100021    1   udp  60788  nlockmgr
    100021    3   udp  60788  nlockmgr
    100021    4   udp  60788  nlockmgr
    100021    1   tcp  35701  nlockmgr
    100021    3   tcp  35701  nlockmgr
    100021    4   tcp  35701  nlockmgr

Le message clnt_create: RPC: Unable to receive apparaît après l'utilisation de la commande showmount. Que faire ?

# showmount -e 192.168.100.6

clnt_create: RPC: Unable to receive

1. Vérifier la connectivité au serveur avec la commande ping

# ping 192.168.100.6

PING 192.168.100.6 (192.168.100.6) 56(84) bytes of data.
64 bytes from 192.168.100.6: icmp_seq=1 ttl=64 time=0.224 ms
64 bytes from 192.168.100.6: icmp_seq=2 ttl=64 time=0.209 ms
^C
--- 192.168.100.6 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1009ms
rtt min/avg/max/mdev = 0.209/0.216/0.224/0.016 ms

Si la commande ping ne répond pas, vérifier par une connexion ssh

# ssh cedric@192.168.100.6

cedric@192.168.100.6's password:
Last login: Sat May  5 07:03:20 2018 from 192.168.100.29
[cedric@srv06 ~]$

2. Lister les informations RPC avec la commande rpcinfo

# rpcinfo -p 192.168.100.6

192.168.100.6: RPC: Remote system error - Connection refused
Entrer votre commentaire. La syntaxe wiki est autorisée:
   __ __  _   __   ____   __  ___   __ __
  / // / | | / /  / __/  /  |/  /  / //_/
 / _  /  | |/ /  _\ \   / /|_/ /  / ,<   
/_//_/   |___/  /___/  /_/  /_/  /_/|_|
 
  • informatique/linux/nfs-network-file-system/index.txt
  • Dernière modification: 2021/02/01 00:26
  • par Cédric ABONNEL