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 ...
随机推荐
- Yocto开发笔记之《驱动调试-GPS数据采集》(QQ交流群:519230208)
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...
- NSNotificationCenter(通知)与Key-Value Coding (KVC)与Key-Value Observing (KVO)
NSNotificationCenter //下面是不同类中需要实现的代码 1.[[NSNotificationCenter defaultCenter] addObserver:self selec ...
- PHP 数据库抽象层pdo
PDO是PHP数据对象(PHP Data Object)的缩写. pdo就是一个"数据库访问抽象层",作用是统一各种数据库的访问接口,能够轻松地在不同数据库之间进行切换,使得数据库 ...
- python学习笔记-(十)面向对象基础
面向对象相关知识简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义 ...
- WinForm------窗体初始化位置的显示
在窗体的构造方法里面添加 public Form2() { InitializeComponent(); //指定窗口初始化时的位置(计算机屏幕中间) this.StartPosition = For ...
- MYSQL 免安装版(windows 7/64)
本文介绍在本地安装MYSQL数据库,免安装版相关配置 一.下载 mysql下载地址1:http://dev.mysql.com/downloads/mysql/ 二.解压MySQL压缩包 将已下载的M ...
- Django笔记-常见错误整理
1.csrf错误 解决方法:在settings.py里注释掉相关内容即可 MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.Sess ...
- 从Microsoft.AspNet.Identity看微软推荐的一种MVC的分层架构
Microsoft.AspNet.Identity简介 Microsoft.AspNet.Identity是微软在MVC 5.0中新引入的一种membership框架,和之前ASP.NET传统的mem ...
- Mysql InnoDB行锁实现方式(转)
Mysql InnoDB行锁实现方式 InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的.InnoDB这种行锁实现特点 ...
- NSOperation GCD 对比 (附NSOperation演练)
项目中使用NSOperation的优点是NSOperation是对线程的高度抽象,在项目中使用它,会使项目的程序结构更好子类化NSOperation的设计思路,是具有面向对象的优点(复用.封装),使得 ...