nfs工作原理流程

     
如上图所示,当访问程序通过NFS客户端向NFS服务端存取文件时,其请求数据流程如下几点:
    1、首先用户访问网站程序,由程序在NFS客户端上发出NFS文件存取功能的询问请求,这时NFS客户端(即执行程序的服务器)RPC服务(portmap 或rpcbind服务)就会通过网络向NFS服务端的RPC服务(即portmap或rpcbind服务)的111端口发出NFS文件存取功能的询问请求。
    2、NFS服务端的RPC服务(即portmap或rpcbind服务)找到对应的已注册的NFSdaemon端口后,通知NFS客户端的RPC服务(即portmap或rpcbind服务)。
    3、此时NFS客户端就可获取到正确的端口,然后就直接与NFS daemon联机存取数据了。
    4、NFS客户端把数据存取成功后,返回给前端程序,告诉用户存取结果,作为网站用户,我们就完成了一次存取操作。
        由于NFS的各项功能都需要向RPC服务(即portmap或rpcbind)注册,所以RPC服务(即portmap或rpcbind服务)才能获取到NFS服务的各项对应的端口号(portnumber)、PID、NFS在主机所监听的IP等,而NFS客户端才能够通过向RPC服务(即portmap或rpcbind服务)询问从而找到正确的端口。也就是说,NFS需要有RPC服务(即portmap或rpc服务),NFS服务只需在服务端后于RPC服务启动,客户端无需启动NFS服务。
NFS的rpc服务,在CentOS5.X下名称为portmap,在CentOS6.x下名称为rpcbind。
[root@nfsserver /]# /etc/init.d/nfs restart
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS quotas:                                  [  OK  ]
Shutting down NFS services:                                [  OK  ]
Shutting down RPC idmapd:                                  [确定]
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
正在启动 RPC idmapd:                                      [确定]
 
从上面NFS服务启动过程的提示,可以看护运行NFS服务默认需要启动的服务或进程至少有:NFS quotas(rpc.rquotad)、NFS daemon(nfsd)、NFS mountd(rpc.mountd)。可以通过如下命令查看启动NFS后,系统中运行的NFS相关进程:
 
[root@nfsserver /]# ps -ef | grep -E 'rpc|nfs'
rpc       3631     1  0 21:29 ?        00:00:00 rpcbind         rpc服务   
root      3688     2  0 21:31 ?        00:00:00 [rpciod/0]
root      3824     1  0 21:32 ?        00:00:00 rpc.rquotad            磁盘配额进程        
root      3828     1  0 21:32 ?        00:00:00 rpc.mountd                权限管理进程
root      3834     2  0 21:32 ?        00:00:00 [nfsd4]
root      3835     2  0 21:32 ?        00:00:00 [nfsd4_callbacks]
root      3836     2  0 21:32 ?        00:00:00 [nfsd]
root      3837     2  0 21:32 ?        00:00:00 [nfsd]
root      3838     2  0 21:32 ?        00:00:00 [nfsd]
root      3839     2  0 21:32 ?        00:00:00 [nfsd]            NFS主进程
root      3840     2  0 21:32 ?        00:00:00 [nfsd]
root      3841     2  0 21:32 ?        00:00:00 [nfsd]
root      3842     2  0 21:32 ?        00:00:00 [nfsd]
root      3843     2  0 21:32 ?        00:00:00 [nfsd]
root      3869     1  0 21:32 ?        00:00:00 rpc.idmapd
root      4039  3260  0 21:43 pts/1    00:00:00 grep -E rpc|nfs
以上的进程查看均可以执行“man 进程名”来查看进程的功能细节
例:[root@nfsserver /]# man rpcbind     #查看rpcbind的信息
        [root@nfsserver /]# man nfsd             #查看nfsd的信息
 
 
 
NFS配置文件路径
[root@nfsserver /]# cat /etc/exports       NFS服务主配置文件,配置NFS具体共享服务的地点,默认内容为空,以行为单位。
[root@nfsserver /]# /usr/sbin/exportfs      NFS服务的管理命令
[root@nfsserver /]# /usr/sbin/showmount         常用来在客户端,查看NFS配置及挂载结果的命令;配置nfserver,分别在服务端以及客户端查看挂载情况。
 
[root@nfsserver /]# cd /var/lib/nfs/
[root@nfsserver nfs]# ls
etab  export-lock  rmtab  rpc_pipefs  statd  state  v4recovery  xtab
[root@nfsserver nfs]# cat /var/lib/nfs/etab 
/data    192.168.161.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534,sec=sys,rw,root_squash,no_all_squash)    NFS配置文件的完整参数设定的文件(有很多没有配置但是默认就有的NFS参数)
[root@nfsserver nfs]# cat /var/lib/nfs/xtab    在CentOS-5.x   记录曾经挂载过的NFS客户端的信息,包括IP地址等,在CentOS-6.5中内容为空
 
 
[root@nfsserver nfs]# nfsstat    #nfs状态
Server rpc stats:
calls      badcalls   badclnt    badauth    xdrcall
100        0          0          0          0       
 
Server nfs v4:
null         compound     
1         1% 99       99% 
 
Server nfs v4 operations:
op0-unused   op1-unused   op2-future   access       close        commit       
0         0% 0         0% 0         0% 5         3% 1         0% 0         0% 
create       delegpurge   delegreturn  getattr      getfh        link         
0         0% 0         0% 0         0% 31       20% 4         2% 0         0% 
lock         lockt        locku        lookup       lookup_root  nverify      
0         0% 0         0% 0         0% 2         1% 0         0% 0         0% 
open         openattr     open_conf    open_dgrd    putfh        putpubfh     
1         0% 0         0% 1         0% 0         0% 31       20% 0         0% 
putrootfh    read         readdir      readlink     remove       rename       
3         2% 0         0% 2         1% 0         0% 0         0% 0         0% 
renew        restorefh    savefh       secinfo      setattr      setcltid     
63       42% 0         0% 0         0% 0         0% 1         0% 2         1% 
setcltidconf verify       write        rellockowner bc_ctl       bind_conn    
2         1% 0         0% 0         0% 0         0% 0         0% 0         0% 
exchange_id  create_ses   destroy_ses  free_stateid getdirdeleg  getdevinfo   
0         0% 0         0% 0         0% 0         0% 0         0% 0         0% 
getdevlist   layoutcommit layoutget    layoutreturn secinfononam sequence     
0         0% 0         0% 0         0% 0         0% 0         0% 0         0% 
set_ssv      test_stateid want_deleg   destroy_clid reclaim_comp 
0         0% 0         0% 0         0% 0         0% 0         0% 
 
 
1、NFS共享的目录:为NFS服务端要共享的实际目录,要用绝对路径。如(/data/bbs)
                    注意:共享目录的本地权限,如果需要读写共享,一定要让本地目录被NFS客户端的用户(nfsnobody)可以读写。
2、NFS客户端地址:为NFS服务端授权的可访问共享目录的NFS客户端地址,可以为单独的IP地址或主机名、域名等,也可以为整个网段地址,还可以用"*"来匹配所有客户端服务器可以访问,这里所谓的客户但端一般来说是前端的业务服务器,例如:web服务。

NFS工作原理及配置文件详解的更多相关文章

  1. 以太坊工作原理之txpool详解

    txpool详解 交易池txpool作为区块链系统的重要组成部分,对系统的安全性和稳定性具有重要作用.功能可归纳为:交易缓存.交易验证和交易过滤. 基本介绍 交易分类和缓存 txpool主要包含两个重 ...

  2. 场效应管种类-场效应管N、P沟道与增强、耗尽型工作原理等知识详解 如何选用晶体三极管与场效应管的技巧

    http://www.kiaic.com/article/detail/1308.html 场效应管种类场效应管 场效应晶体管(Field Effect Transistor缩写(FET))简称场效应 ...

  3. vmware三种网络模式的工作原理及配置详解

    vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT(网络地址转换模式).Host-Only(仅主机模式). 打开vmware虚拟机,我们可以在选项栏的“编辑”下的 ...

  4. ansible 工作原理以及使用详解

    内容:1.ansible的作用以及工作结构2.ansible的安装以及使用3.ansible的playbook使用 一.ansible的作用以及工作结构        1.ansible简介:     ...

  5. keepalived原理(主从配置+haproxy)及配置文件详解

    下图描述了使用keepalived+Haproxy主从配置来达到能够针对前段流量进行负载均衡到多台后端web1.web2.web3.img1.img2.但是由于haproxy会存在单点故障问题,因此使 ...

  6. 2017.2.9 深入浅出MyBatis技术原理与实践-第八章 MyBatis-Spring(二)-----配置文件详解

    深入浅出MyBatis技术原理与实践-第八章 MyBatis-Spring(二) ------配置文件详解 8.2 MyBatis-Spring应用 8.2.1 概述 本文主要讲述通过注解配置MyBa ...

  7. (原创)LAMP搭建之二:apache配置文件详解(中英文对照版)

    LAMP搭建之二:apache配置文件详解(中英文对照版) # This is the main Apache server configuration file. It contains the # ...

  8. BIND9配置文件详解模板[转载]

    在CU上看到了一篇关于BIND9配置文件详解的文章,感觉不错,现转载了分享一下. //named.conf 注释说明 by shellyxz@163.com// 此文件对bind9的默认配置文件的说明 ...

  9. Redis for Windows(C#缓存)配置文件详解

    Redis for Windows(C#缓存)配置文件详解   前言 在上一篇文章中主要介绍了Redis在Windows平台下的下载安装和简单使用http://www.cnblogs.com/aehy ...

随机推荐

  1. bootstrap学习总结-02 网格布局

    1  网格布局 Bootstrap 提供了一套响应式.移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列. <!DOCTYPE html> ...

  2. Visual Studio 当前上下文中不存在名称“ConfigurationManager”

    Visual Studio调试出现错误:当前上下文中不存在名称“ConfigurationManager” 解决方法: 1.System.Configuration引用这个dll参考:http://k ...

  3. 复习---JS-Array 对象

    要开始做第一个js练习了.前面三个小题都是数组的.先来复习一下数组.如下是W3C上面的关于数组的内容. 之前笔记中的内容:http://www.cnblogs.com/lal-fighting/p/5 ...

  4. 将文件路径以"\"隔开

    将文件路径以"\"隔开,这货搞了我一小时...C++返回一维数组,字符串数组还是要再看看 ]) { ; //string s_array[30]; //局部变量,如果使用retur ...

  5. CentOS6.5 安装Sphinx 配置MySQL数据源

      前提安装完mysql,并创建测试表和数据 DROP TABLE IF EXISTS `documents`; CREATE TABLE IF NOT EXISTS `documents` ( `i ...

  6. HTML学习笔记——head、body及简单标签

    1> title标签.网站关键词.网站描述.实现百度网的跳转 2> 单标签.对标签.p标签 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

  7. python 传递结构体指针到 c++ dll

    CMakeLists.txt # project(工程名) project(xxx) # add_library(链接库名称 SHARED 链接库代码) add_library(xxx SHARED ...

  8. isArray polyfill

    Array.isArray在ie9+浏览器上已经支持,可以放心使用.在垃圾浏览器上,可以说使用如下polyfill(出自MDN) if(!Array.isArray){ Array.isArray = ...

  9. 基于php使用memcache存储session的详解(转)

    web服务器的php session都给memcached ,这样你不管分发器把 ip连接分给哪个web服务器都不会有问题了,配置方法很简单,就在php的配置文件内增加一条语句就可以了,不过前提你需要 ...

  10. editplus的配置和使用

    editplus以及其他所有软件的 "页" 是一个什么概念? 所谓 页 : 是指 当前 你看到的 "客户区" client 的区域大小. 如果窗口越小, 那么你 ...