nfs fait référence au système de fichiers réseau, qui est l'un des systèmes de fichiers pris en charge par FreeBSD. Il permet aux ordinateurs du réseau de partager des ressources via le réseau TCP/IP. NFS est une application basée sur le protocole UDP/IP. Son implémentation utilise principalement le mécanisme d'appel de procédure distante. RPC fournit un ensemble d'opérations d'accès aux fichiers distants indépendantes de la machine, du système d'exploitation et du protocole de transmission de bas niveau.
L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.
1. Introduction à nfs
Network File System (NFS) en anglais est un protocole de couche de présentation UNIX développé par SUN, qui permet aux utilisateurs d'accéder à des fichiers ailleurs sur le réseau, comme si vous utilisiez votre propre ordinateur.
NFS est une application basée sur le protocole UDP/IP. Son implémentation utilise principalement le mécanisme d'appel de procédure distante RPC. RPC fournit un ensemble d'opérations d'accès aux fichiers distants indépendantes de la machine, du système d'exploitation et de la transmission en couche basse. protocole. RPC utilise la prise en charge XDR. XDR est un protocole de codage de description de données indépendant de la machine. Il code et décode les données transmises sur Internet dans un format indépendant de toute architecture de machine et prend en charge la transmission de données entre systèmes hétérogènes.
1.1 fonctionnalités nfs
- NFS (Network File System) est l'un des systèmes de fichiers pris en charge par FreeBSD. Il permet aux ordinateurs du réseau de partager des ressources via le réseau TCP/IP
- Dans les applications NFS, client NFS local. les applications peuvent lire et écrire de manière transparente des fichiers situés sur le serveur NFS distant, tout comme l'accès aux fichiers locaux.
- nfs convient au partage de fichiers entre Linux et Unix, mais ne peut pas être implémenté entre Linux et Windows. est un protocole exécuté au niveau de la couche application, qui écoute sur les sockets 2049/tcp et 2049/udp
- Le service nfs ne peut être authentifié que sur la base de l'IP
-
1.2 scénarios d'application nfs
nfs a de nombreux scénarios d'application pratiques, le Voici quelques scénarios courants :
Plusieurs machines partagent un CD-ROM ou un autre appareil. Cette solution est moins coûteuse et plus pratique pour installer des logiciels sur plusieurs machines. Dans les grands réseaux, il peut être pratique de configurer un serveur NFS central pour héberger les répertoires personnels de tous les utilisateurs. Ces répertoires peuvent être exportés vers le réseau afin que les utilisateurs puissent toujours obtenir le même répertoire personnel, quel que soit le poste de travail auquel ils se connectent
- Différents clients peuvent regarder des fichiers de films et de télévision sur NFS, économisant ainsi de l'espace local
- Données de travail effectuées sur le client, Il peut être sauvegardé et enregistré sur le chemin de l'utilisateur sur le serveur NFS
-
- 1.3 Composition du système nfs
Le système nfs comprend au moins deux parties principales :
Un serveur nfs
Plusieurs clients
- nfs Le schéma d'architecture du système est le suivant :
-
Le client accède à distance aux données stockées sur le serveur NFS via le réseau TCP/IP
Avant l'activation officielle du serveur NFS, certains paramètres NFS doivent être configurés selon l'environnement et les besoins réels
2 Le mécanisme de travail .nfs
nfs est basé sur rpc pour réaliser le partage du système de fichiers réseau. Parlons donc d’abord de rpc.
2.1 RPC
RPC (Remote Procedure Call Protocol), protocole d'appel de procédure à distance, est un protocole qui demande des services à un programme informatique distant via le réseau sans connaître la technologie réseau sous-jacente. Le protocole RPC suppose l'existence d'un protocole de transport, tel que TCP ou UDP, pour transporter les données d'information entre les programmes communicants. Dans le modèle de communication réseau OSI, RPC couvre la couche transport et la couche application.
RPC adopte le mode client/serveur. Le demandeur est un client et le fournisseur de services est un serveur.
Le mécanisme de fonctionnement du rpc est illustré dans l'image ci-dessus :
.
- Le programme client lance un appel système RPC et l'envoie à un autre hôte (serveur) basé sur le protocole TCP
- Le serveur écoute sur un certain socket. Après avoir reçu la demande d'appel système du client, il recevra la demande et sa. Les paramètres transmis sont exécutés via un appel système local et les résultats sont renvoyés au processus de service local.Après avoir reçu les résultats d'exécution renvoyés, le processus de service sur le serveur les encapsule dans un message de réponse, puis le renvoie via le protocole rpc. Au client
- Le client appelle le processus pour recevoir les informations de réponse, obtient le résultat du processus, puis appelle l'exécution pour continuer
-
Mécanisme de travail 2.2 nfs
Le serveur NFS exécute quatre processus :
nfsd-
mountd idmapd portmapper
idmapd
réalise un mappage centralisé des comptes d'utilisateurs, mappant tous les comptes à NFSNOBO DY, mais ils sont accessibles en tant que NFSNOBODY pour les utilisateurs locaux L'identité d'accès à
mountd
est utilisée pour vérifier si le client est dans la liste des clients autorisés à accéder à ce système de fichiers NFS. Si tel est le cas, l'accès est autorisé (émettez un jeton et maintenez le jeton pour trouver nfsd. ), sinon Accès refusé
le port de service de mountd est aléatoire, et le numéro de port aléatoire est fourni par le service rpc (portmapper)
nfsd
démon nfs, en écoute sur 2049/tcp et 2049/udp ports
n'est pas responsable du stockage des fichiers (le noyau local du serveur NFS est responsable de la planification du stockage), et est utilisé pour comprendre la requête rpc initiée par le client, la transférer vers le noyau local, puis la stocker sur le système de fichiers spécifié
portmapper
Le service rpc du serveur NFS, qui écoute sur les sockets 111/TCP et 111/UDP, est utilisé pour gérer les appels de procédure distante (RPC)
Ce qui suit est un exemple pour illustrer le flux de travail simple de NFS :
Condition : Afficher les informations du fichier
file
Ce fichier est stocké sur l'hôte du serveur NFS distant (monté dans le répertoire local /shared/nfs)
. Le client lance une commande pour afficher les informations du fichier (fichier ls) sur le noyau. Le noyau apprend via le module NFS que ce fichier n'est pas un fichier dans le système de fichiers local, mais un fichier sur l'hôte NFS distant. L'hôte client envoie la commande pour afficher les informations du fichier via le protocole RPC (appel système) encapsulé dans une requête rpc et envoyé au portmapper de l'hôte du serveur NFS via le port TCP 111
- Le portmapper (processus de service RPC) du serveur NFS host indique au client que le service mountd du serveur NFS se trouve sur un certain port, vous pouvez le trouver. Il vérifie que, comme mountd doit enregistrer un numéro de port auprès de portmapper lors de la fourniture de services, portmapper sait sur quel port il fonctionne une fois que le client a appris. le numéro de port du processus mountd sur le serveur, il passe le service connu de vérification de la demande de numéro de port Mountd
- Après avoir reçu la demande de vérification, mountd vérifie si le client qui a initié la demande est dans la liste des clients autorisés à accéder à ce fichier NFS système, et si c'est le cas, l'accès est autorisé (émettez un jeton et utilisez le jeton pour trouver nfsd), sinon l'accès est refusé
- Après avoir réussi la vérification, le client utilise le jeton émis par mountd pour accéder au processus nfsd du serveur et demande d'afficher un certain fichier. Le processus nfsd du serveur initie un appel système local et demande au noyau d'afficher le fichier que le client souhaite afficher. Informations
Le noyau du serveur exécute l'appel système du nfsd. request et renvoie le résultat au service nfsd
Après avoir reçu le résultat renvoyé par le noyau, le processus nfsd l'encapsule dans un message de requête rpc et le renvoie au client via le protocole tcp/ip
- Pour plus de connaissances connexes, veuillez visiter la rubrique
- FAQ
! -
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!