le partage de fichiers réseau NFS (note 1)

NFS (Network File System)

A, NFS fonctionne

  1. Qu'est-ce que le serveur NFS

        NFS est l'abréviation de Network File System, qui est la plus grande caractéristique est que vous pouvez à travers le réseau, de sorte que différentes machines, systèmes d'exploitation différents peuvent partager les uns les autres fichiers pour.

  serveur NFS peut faire PC à un répertoire partagé serveur NFS réseau est monté sur l'extrémité locale du système de fichiers, et du point de vue du système final local, catalogue de l'hôte distant est comme l'un de leur propre partition de disque, comme dans l'utilisation très pratique;

  2, principe de montages NFS

    NFS montage schéma de configuration d'un serveur:

Comme cela est illustré:

  Lorsque nous avons créé un répertoire partagé / home / public dans le serveur NFS, l'autre a accès au client NFS du serveur NFS peut monter ce répertoire à un point de son propre système de fichiers de montage, cela peut monter le point leur définition, comme dans un client figure et le client B n'est pas le même répertoire monté fin. Et une fois que vous montez toutes les données que nous pouvons voir le serveur / home / publique au niveau local. Si la configuration côté serveur client de la fin de la lecture seule, le client ne pourra en lecture seule. Si la configuration en lecture-écriture, les clients peuvent lire et écrire. Une fois monté, le client NFS pour afficher la commande d'information sur le disque: #df -h.

Depuis NFS est pour la transmission de données entre le serveur et le client sur le réseau, les données à transférer doit disposer d' un port réseau correspondant à penser entre les deux, dans le serveur NFS final port à utiliser pour la transmission de données , il? Fondamentalement , ce port du serveur NFS pour ouvrir en 2049, mais le système de fichiers est très complexe. NFS Par conséquent , il existe d' autres programmes pour démarrer les ports supplémentaires, ces ports supplémentaires aux données de transfert est choisi au hasard, le port est inférieur à 1024 , car il est aléatoire, le client est au courant de la façon d'utiliser le serveur NFS à la fin quel port il? Ensuite , vous devez appeler (Remote Procedure Call, RPC) procédure à distance du protocole pour y parvenir!

 

3, comment les communications RPC et NFS

  Parce que les fonctions de support NFS un peu, et les différentes fonctions utiliseront un autre programme pour commencer, un début de chaque fonction sera de permettre un port de données de transmission, le port correspondant fonctionnalité NFS n'est pas fixe , le client veut savoir serveur NFS fin du port concerné pour établir une connexion pour la transmission de données et RPC est utilisé pour la gestion unifiée du port de service NFS et le port extérieur commun est 111, RPC enregistrera des informations sur le port NFS, afin que nous puissions servir et le client peut être réalisé par RPC informations sur les ports de communication. PRC fonction principale est spécifiée pour chaque numéro de port correspondant de la fonction NFS, et notifie au client que le client peut se connecter à un port normal.

  Alors, comment savez-vous RPC est fonction NFS de chaque port il?

  Lorsque les premiers NFS ont commencé, il utilisera un port aléatoire, puis NFS RPC aller à enregistrer ces ports, RPC enregistrera ces ports et RPC ouvrira 111 ports, requête RPC à attendre le client, si le client il y a une demande, sera enregistré le RPC côté serveur avant que les informations du port NFS pour informer le client. Ainsi, le client obtiendra des informations de port du serveur NFS, les données seront transmises au port réel.

Conseil: Avant de démarrer le serveur NFS, il faut d'abord démarrer le service RPC (c.-à-portmap service, le même ci-dessous) ou NFS ne sera pas en mesure d'enregistrer avec la zone de service RPC, en outre, si le service RPC est redémarré, les données déjà enregistrées seront bon port NFS tout est perdu. Par conséquent, à ce moment du programme de gestion du service NFS RPC devrait être redémarré pour réinscrire avec le RPC.

Note spéciale: fichier de configuration modifié NFS général est pas nécessaire de redémarrer NFS, faire /etc/init.d/nfs rechargent ou exportfs Rv directement afin de modifier le fichier / etc / exports prennent effet.

4, client NFS et le processus de communication serveur NFS

 

1) D'abord, démarrer le service RPC du côté serveur, et le port ouvert 111

2) Démarrez le service du serveur NFS, et les ports RPC informations d'enregistrement

3) client initie RPC (service portmap), une demande de service au RPC côté serveur de port du serveur NFS (portmap)

4) RPC (portmap) Commentaires sur le service NFS information de port du serveur au client.

5) client NFS et le serveur pour établir une connexion et transmettre des données acquises par le port NFS.

Deux, le déploiement NFS

 

1, afficher des informations de système

[root@server7 ~]# cat /etc/redhat-release
CentOS release 7.3.1611 (AltArch)
root@server7 ~]# uname -a
Linux server7.ctos.zu 3.10.0-514.el7.centos.plus.i686 #1 SMP Wed Jan 25 12:55:04 UTC 2017 i686 i686 i386 GNU/Linux

Développer l'habitude de vérifier la version du système et les paramètres du noyau. Le même logiciel entre les différentes versions du noyau est différent, donc la méthode de déploiement ne sont pas les mêmes, pas à cause de ces erreurs inutiles.

 

2, l'installation du logiciel NFS

Pour déployer des services pour NFS, vous devez installer les deux packages suivants: nfs-utils: programme principal NFS, rpcbind: programme principal PRC; 

Client et côté serveur NFS doit installer ces deux logiciels.

Remarque: Les serveurs NFS RPC, sous le nom CentOS5 pour portmap, CentOS6 et abaisser le nom CentOS7 rcpbind

logiciel NFS

       utils-NFS: le programme principal NFS, comprenant deux deamons rpc.nfsd de rpc.mount

       le rpcbind: programme RPC principal

2.1, voir logiciel NFS

       [Root @ Server7 ~] # rpm -qa | egrep "nfs | rpcbind"

      [Root @ Server7 ~] #

Mon CentOS version 3.7.1611 est de minimiser l'installation, la valeur par défaut est pas installé nfs et rpcbind

Paquet est la présence de Yum Recherche

[Root @ Server7 ~] # yum recherche nfs-utils rpcbind

2.2, installez les services NFS et RPC

       [Root @ Server7 ~] # yum install nfs-utils rpcbind

       [Root @ Server7 ~] # rpm -qa | egrep "nfs | rpcbind"

  rpcbind-0.2.0-38.el7_3.1.i686

  nfs-utils-1.3.0-0.33.el7_3.i686

  libnfsidmap-0.25-15.el7.i686

Vérifiez ces deux paquets dans l'ordinateur quels fichiers sont installés;

[root @ Server7 ~] # rpm -ql nfs-utils

3, démarrer le service NFS

3.1, avant de commencer le premier démarrage du service NFS service rpcbind

Afficher l'état du rcpbind

[Root @ Server7 ~] # statut systemctl rpcbind

● rpcbind.service - RPC service de liaison

   Chargé: chargé (/usr/lib/systemd/system/rpcbind.service; preset fournisseur; indirect: activé)

   Actif: actif (en cours d'exécution) depuis 一 04/09/2017 10:03:20 CST; il y a 1 s

  Processus: 3583 ExecStart = / sbin / rpcbind -w $ RPCBIND_ARGS (code = sorti, status = 0 / SUCCESS)

 PID principal: 3584 (rpcbind)

   CGroup: /system.slice/rpcbind.service

           └─3584 / sbin / rpcbind -w

9 月 04 10:03:19 server7.ctos.zu systemd [1]: Démarrage RPC Service de liaison ...

9 月 04 10:03:20 server7.ctos.zu systemd [1]: service de liaison RPC en route.

Remarque: Après un défaut rpcbind d'installation réussie a été ouvert, et commence automatiquement à démarrage. Si elle ne le fait pas, alors nous devons redémarrer le service rcpbind

[Root @ Server7 ~] # systemctl restart rpcbind

Surveille le port République populaire de Chine

[Root @ Server7 ~] # yum install net-tools lsof

[Root @ Server7 ~] # lsof -i: 111

COMMANDE PID DISPOSITIF UTILISATEUR FD TYPE TAILLE / OFF NOM NODE

systemd 1 racine IPv6 43164 0t0 TCP *: sunrpc (ECOUTER)

systemd 1 racine IPv4 43165 0t0 TCP *: sunrpc (ECOUTER)

rpcbind 3584 rpc 4u IPv6 43164 0t0 TCP *: sunrpc (ECOUTER)

rpcbind 3584 rpc 5U IPv4 43165 0t0 TCP *: sunrpc (ECOUTER)

rpcbind 3584 rpc 8u IPv4 44975 0t0 UDP *: sunrpc

rpcbind 3584 rpc 10u IPv6 44977 0t0 UDP *: sunrpc

[Root @ Server7 ~] # netstat -tlunp | grep rpcbind

udp 0 0 0.0.0.0:111 0.0.0.0:* 3584 / rpcbind       

udp 0 0 0.0.0.0:791 0.0.0.0:* 3584 / rpcbind       

udp6 0 0 ::: ::: 111 * 3584 / rpcbind       

udp6 0 0 ::: ::: 791 * 3584 / rpcbind 

Voir le service NFS NFS ne démarre pas jusqu'à ce que les informations du port enregistré auprès de la République populaire de Chine

[Root @ Server7 ~] # rpcinfo -p localhost

   service programme de port vers

    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

3.2, le service RPC démarre et puis démarrez le service NFS

Afficher l'état

[Root @ Server7 ~] # état systemctl nfs

● nfs-server.service - serveur NFS et services

   Chargé: chargé (/usr/lib/systemd/system/nfs-server.service; désactivé; preset fournisseur: désactivé)

   Actif: inactif (mort)

La valeur par défaut ne démarre pas, ne démarre pas après la mise sous tension réinitialisation du système, démarrez le service nfs sera configuré pour démarrer.

[Root @ Server7 ~] # systemctl nfs start

[Root @ Server7 ~] # systemctl permettent nfs

symlink Créé à partir /etc/systemd/system/multi-user.target.wants/nfs-server.service à /usr/lib/systemd/system/nfs-server.service.

[Root @ Server7 ~] # état systemctl nfs

● nfs-server.service - serveur NFS et services

   Chargé: chargé (/usr/lib/systemd/system/nfs-server.service; permis; preset fournisseur: désactivé)

   Actif: actif (quitté) depuis 一 04/09/2017 10:15:21 CST; Il y a 19s

 PID principal: 3654 (code = sorti, status = 0 / SUCCESS)

   CGroup: /system.slice/nfs-server.service

 

9 月 04 10:15:21 server7.ctos.zu systemd [1]: Démarrage serveur NFS et les services ...

9 月 04 10:15:21 server7.ctos.zu systemd [1]: Démarrage serveur NFS et services.

Après avoir démarré le NFS Encore une fois, nous voyons le port d'information enregistrement rpc

[Root @ Server7 ~] # rpcinfo -p localhost

   service programme de port vers

    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 56626 udp statut

    100024 1 42691 tcp statut

    100005 1 20048 udp mountd

    100005 1 20048 tcp mountd

    100005 2 20048 udp 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 57225 udp nlockmgr

    100021 3 udp 57225 nlockmgr

    100021 4 57225 udp nlockmgr

   100021 1 35665 tcp nlockmgr

    100021 3 tcp 35665 nlockmgr

  100021 4 tcp 35665 nlockmgr

Après avoir confirmé les problèmes de démarrage inutiles, nous jeter un oeil à NFS en plein air final les ports

[Root @ Server7 ~] # netstat -tulnp | grep -E '(rpc | nfs)'

tcp 0 0 0.0.0.0:42691 0.0.0.0:* LISTEN 3634 / rpc.statd     

tcp 0 0 0.0.0.0:20048 0.0.0.0:* LISTEN 3642 / rpc.mountd    

tcp6 0 0 ::: 39614 ::: * LISTEN 3634 / rpc.statd     

tcp6 0 0 ::: 20048 ::: * LISTEN 3642 / rpc.mountd    

udp 0 0 127.0.0.1:842 0.0.0.0:* 3634 / rpc.statd     

udp 0 0 0.0.0.0:20048 0.0.0.0:* 3642 / rpc.mountd    

udp 0 0 0.0.0.0:111 0.0.0.0:* 3584 / rpcbind       

udp 0 0 0.0.0.0:791 0.0.0.0:* 3584 / rpcbind       

udp 0 0 0.0.0.0:56626 0.0.0.0:* 3634 / rpc.statd     

udp6 0 0 ::: 56122 ::: * 3634 / rpc.statd     

udp6 0 0 ::: 20048 ::: * 3642 / rpc.mountd    

udp6 0 0 ::: ::: 111 * 3584 / rpcbind       

udp6 0 0 ::: ::: 791 * 3584 / rpcbind       

4, un processus commun NFS détaillée

[Root @ Server7 ~] # ps -ef | egrep « rpc | nfs «

1 0 rpc 3584 10h03? 00:00:00 / sbin / rpcbind -w

rpcuser 3634 1 0 10:15? 00:00:00 /usr/sbin/rpc.statd --no-notify

racine 3637 2 0 10:15? 00:00:00 [rpciod]

root 3642 1 0 10:15? 00:00:00 /usr/sbin/rpc.mountd

root 3652 1 0 10:15? 00:00:00 /usr/sbin/rpc.idmapd

racine 3657 2 0 10:15? 00:00:00 [nfsd4_callbacks]

racine 3663 2 0 10:15? 00:00:00 [nfsd]

racine 3664 2 0 10:15? 00:00:00 [nfsd]

racine 3665 2 0 10:15? 00:00:00 [nfsd]

racine 3666 2 0 10:15? 00:00:00 [nfsd]

racine 3667 2 0 10:15? 00:00:00 [nfsd]

racine 3668 2 0 10:15? 00:00:00 [nfsd]

racine 3669 2 0 10:15? 00:00:00 [nfsd]

racine 3670 2 0 10:15? 00:00:00 [nfsd]

racine 3705 3267 0 10:23 pts / 0 00:00:00 grep -E --color = auto | nfs rpc

  • nfsd

  Le principal fournisseur de services NFS, cette fonction démon principal est de gérer si le client peut utiliser le système de fichiers du serveur d'informations de montage, qui comprend également la détermination de connexion de l'utilisateur ID.

  •   rpc.mountd

  Cette fonction démon principal est de gérer le système de fichiers NFS. Lorsque la fin client a passé avec succès l'hôte de connexion rpc.nfsd avant de pouvoir utiliser le fichier spécifié du serveur NFS, le fichier passera par le processus de certification à l'aide des privilèges. Il va de lire le fichier de configuration NFS / etc / exports pour comparer l'autorisation du client, lors de surmonter cet obstacle, fin client obtiendra l'autorisation d'utiliser le fichier NFS.

  •   rpc.lockd (non essentiel)

  Ce démon est utilisé pour gérer les aspects de verrouillage de fichiers, lorsque plusieurs clients tentent simultanément d'écrire dans un fichier, il peut causer des problèmes au fichier. rpc.lockd peut être utilisé pour résoudre ce problème. Mais rpc.lockd doit être à la fois le client et le serveur sont tourné vers le bas.

  •  rpc.statd (non essentiel)

  Ce démon peut être utilisé pour vérifier la cohérence du fichier, si elle se produit parce que les clients utilisent la même corruption de fichiers cause lorsqu'un fichier, rpc.statd peut être utilisé pour détecter et tenter de récupérer le fichier

5. Configurez le service NFS

  logiciel NFS est très simple, le principal fichier de configuration: / etc / exports, l'intérieur du contenu par défaut est vide, si elle ne fonctionne pas, vous pouvez utiliser vim prendre l'initiative de créer le fichier. Comme il est également configurer le serveur NFS est aussi simple que la modification du fichier de configuration / etc / exports après le premier démarrage rpcbind (si elle a déjà commencé, ne redémarrez pas), puis commencer à nfs, le succès NFS.

     Ensuite, le fichier / etc / exports devraient être comment définir?

[root @ Server7 etc] # vi / etc / exports

/ Tmp / 192.168.1.0/24(ro de données) client-A.ctos.zu (rw, sync)

# [Répertoire partagé] [client Adresse 1 (autorisations)] [Adresse du client 2 (autorité)]

Ce qui précède est un cas simple de configuration, chaque rangée est à partager sur le répertoire, attention à est l'unité de répertoire

répertoire partagé: présent dans notre répertoire sur la machine, nous voulons le partager avec d'autres hôtes sur l'utilisation du réseau. Si je veux partager / tmp / data, cette option peut directement écrire / tmp / répertoire de données, qui peuvent être partagées à différents hôtes conformément aux différentes autorisations.

Une adresse de client (paramètre 1, le paramètre 2): une adresse de réseau du client peut être fourni, un seul hôte peut être fournie. Paramètres: tels que lecture et écriture des autorisations rw, la synchronisation de synchronisation de mise à jour, la compression de la visite all_squash de compte, compte anonyme anonuid compressé = uid, gid = anongid, et ainsi de suite;

Définir l'adresse du client principalement de la manière suivante:

1), vous pouvez utiliser le réseau IP complet ou un numéro, par exemple 192.168.100.100 ou 192.168.8.0/24

2), vous pouvez utiliser un nom d'hôte, mais le nom d'hôte doit être dans le fichier / etc / hosts, ou vous pouvez utiliser le DNS pour trouver le nom du travail, de toute façon, l'objectif est de trouver la propriété intellectuelle sur la ligne, si le nom d'hôte, vous pouvez également prendre en charge des caractères génériques, Par exemple « * » ou « ? « Acceptable, par exemple: hôte [1-8] .ctos.zu, serveur .test.com?

autorisations NFS

autorisations de configuration NFS, à savoir, / etc / exports format de fichier de configuration de petites parenthèses () dans l'ensemble de paramètres;

commande paramètres

But paramètre

rw

Représentativité lire et écrire

ro

signifie que l'accès en lecture seule lecture seule

Sync

Une fois que les données de demande ou d'écriture, les données des écritures synchrones sur le serveur NFS disque dur renverront

no_root_squas

les utilisateurs du serveur nfs pour accéder à un répertoire partagé si vous êtes root, il a un accès root au répertoire. Cette configuration a été préparée pour les utilisateurs sans disque. Les utilisateurs doivent éviter d'utiliser!

root_squash

serveur NFS pour les utilisateurs d'accéder au répertoire partagé, si vous êtes root, alors personne ne sera compressé dans l'identité d'un utilisateur.

all_squash

Quelle que soit l'identité de l'utilisateur du serveur d'accès au répertoire partagé, y compris la racine, son autorité sera compressé dans un utilisateur anonyme, et ils deviendront les IDU et gid ou uid comptes nfsnobody de personne, gid. Lire et écrire des données simultanément dans plusieurs nfs nfs serveur client, ce paramètre est utile pour assurer que toutes les données l'autorisation écrite du même.

Mais il existe des systèmes différents utilisateurs anonymes pourraient uid, gid différents. Parce qu'ici nous avons besoin entre l'utilisateur et le service client sont les mêmes. Par exemple: le serveur spécifié UID de l'utilisateur anonyme est 2000, le client doit également exister avant 2000, ce compte peut

anonuid

anonuid est uid anonyme et GID. Description client les autorisations d'accéder au côté service, est nfsnobody par défaut. Uid65534.

anongid

Avec anongid, il est de remplacer le uid gid il

 

instance:

/ Home / test 1192.168.1.0/24(rw,sync,all_squash,anonuid=2000,anongid=2000)

### Notez que la partie rouge ne peut pas avoir des espaces! ! Environnement de production configuration utilisée pour un répertoire partagé NFS multi-clients. All_squash que peu importe la capacité du client est de visiter, sera compressé dans le sol derrière all_squash utilisateur et de l'identité groupe. Ici, avec anonuid, anongid numéro à la marque. =

Résumé:

Format de configuration du serveur partagé:

1) Format de base: ip répertoire partagé / 24 (propriété partagée) -> sans espaces Remarque

2) les autorisations de partage:

propriété en lecture-écriture rw

fichiers de synchronisation écrites sur le disque avant que le rendement réel

all_squash: tous les accès utilisateur à l'utilisateur sont compressés dans un contact ultérieur.

anonuid: compression par défaut de l'utilisateur

anongid: groupe d'utilisateurs de compression par défaut

Ensuite, le client d'accéder à quel titre?

par défaut du serveur d'accès au client est d'utiliser nfsnobody l'utilisateur à visiter. uid et gid 65534. Lorsque la part du serveur par défaut, mais a également ajouté all_squash ce paramètre. Et de développer anonuid 65534 (qui est, l'utilisateur nfsnobayd). Bien sûr, si le système est nfsnobody autre uid, il peut causer des problèmes d'accès. Donc, le mieux que nous pouvons mettre en place un utilisateur d'accéder à un UID unifié, GID.

Comment puis-je la situation monte?

Il y a deux documents importants, peut résoudre cette question. / Var / lib / nfs / etab, / var / lib / nfs / rmtab ces deux fichiers sur le serveur seront en mesure de voir ce répertoire partagé, à la fin combien le client pour monter une part, et vous pouvez voir monter le spécifique du client informations.

1, ÉTAB ce fichier peut voir le répertoire partagé sur le serveur qui exécute qui peut utiliser et définir les paramètres pourquoi.

2, rmtab ce document est d'être en mesure de voir la situation répertoire partagé est monté.

发布了13 篇原创文章 · 获赞 1 · 访问量 7811

Je suppose que tu aimes

Origine blog.csdn.net/weixin_40482816/article/details/100128792
conseillé
Classement