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。
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相关进程:
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 进程名”来查看进程的功能细节
NFS配置文件路径
[
root@nfsserver /]# cat /etc/exports NFS服务主配置文件,配置NFS具体共享服务的地点,默认内容为空,以行为单位。
[
root@nfsserver /]# /usr/sbin/showmount 常用来在客户端,查看NFS配置及挂载结果的命令;配置nfserver,分别在服务端以及客户端查看挂载情况。
etab export-lock rmtab rpc_pipefs statd state v4recovery xtab
/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中内容为空
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服务。
- 以太坊工作原理之txpool详解
txpool详解 交易池txpool作为区块链系统的重要组成部分,对系统的安全性和稳定性具有重要作用.功能可归纳为:交易缓存.交易验证和交易过滤. 基本介绍 交易分类和缓存 txpool主要包含两个重 ...
- 场效应管种类-场效应管N、P沟道与增强、耗尽型工作原理等知识详解 如何选用晶体三极管与场效应管的技巧
http://www.kiaic.com/article/detail/1308.html 场效应管种类场效应管 场效应晶体管(Field Effect Transistor缩写(FET))简称场效应 ...
- vmware三种网络模式的工作原理及配置详解
vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).NAT(网络地址转换模式).Host-Only(仅主机模式). 打开vmware虚拟机,我们可以在选项栏的“编辑”下的 ...
- ansible 工作原理以及使用详解
内容:1.ansible的作用以及工作结构2.ansible的安装以及使用3.ansible的playbook使用 一.ansible的作用以及工作结构 1.ansible简介: ...
- keepalived原理(主从配置+haproxy)及配置文件详解
下图描述了使用keepalived+Haproxy主从配置来达到能够针对前段流量进行负载均衡到多台后端web1.web2.web3.img1.img2.但是由于haproxy会存在单点故障问题,因此使 ...
- 2017.2.9 深入浅出MyBatis技术原理与实践-第八章 MyBatis-Spring(二)-----配置文件详解
深入浅出MyBatis技术原理与实践-第八章 MyBatis-Spring(二) ------配置文件详解 8.2 MyBatis-Spring应用 8.2.1 概述 本文主要讲述通过注解配置MyBa ...
- (原创)LAMP搭建之二:apache配置文件详解(中英文对照版)
LAMP搭建之二:apache配置文件详解(中英文对照版) # This is the main Apache server configuration file. It contains the # ...
- BIND9配置文件详解模板[转载]
在CU上看到了一篇关于BIND9配置文件详解的文章,感觉不错,现转载了分享一下. //named.conf 注释说明 by shellyxz@163.com// 此文件对bind9的默认配置文件的说明 ...
- Redis for Windows(C#缓存)配置文件详解
Redis for Windows(C#缓存)配置文件详解 前言 在上一篇文章中主要介绍了Redis在Windows平台下的下载安装和简单使用http://www.cnblogs.com/aehy ...
随机推荐
- 一文彻底了解join的各种用法
表a 表b a1 a2 b1 b2 a01 张三 a02 数学 a02 ...
- winform 窗体传值
在Form1中:我们要把一个文本传递给Form2窗体,假定为passText public string passText { ...
- CentOS配置163的yum源
entOS系统自带的更新源的速度在国内非常慢,在国内为了让CentOS6使用速度较快快的YUM更新源,建议选择163(网易)的更新源. 1.下载repo文件wget http://mirrors.16 ...
- VM EXSI安装使用
1.下载VM ESXI:http://lookdfw.blog.163.com/blog/static/5824974220139295524473/ 2.安装VM ESXI: 参考网址:http:/ ...
- csrf利用EXP
<html><body><form action="http://www.xxx.com/user/setting/email_bind.html" ...
- Web Pages - Efficient Paging Without The WebGrid
Web Pages - Efficient Paging Without The WebGrid If you want to display your data over a number of p ...
- 登录验证码编写(jsp+servlet+dao)
一.什么是验证码及它的作用 验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是必须只有人类才能解答. 可以防止恶意破解密码.刷 ...
- 记录两张数据库表及Ibatis操作
建表语句 CREATE TABLE `TS_MopayInvoiceComposition` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `RequestID` i ...
- Java8初体验(二)Stream语法详解
感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com 上篇文章Java8初体验(一)lambda表达式语法比 较详细的介绍了lambda表达式的方方面面,细心的读者会发现那篇文章的例 ...
- 在Linux下如何使用GCC编译程序、简单生成 静态库及动态库
最近在编写的一个Apache kafka 的C/C++客户端,,在看他写的 example中,他的编译是用librdkafka++.a和librdkafka.a 静态库编译的,,,而我们这 ...