NFS概念和工作流程(一)

NFS概念描述:

NFS是Network File System的缩写,它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件或目录。NFS客户端(一般为应用服务器,如web)可以通过挂载(mount)的方式将NFS服务器端共享的数据文件目录挂载到NFS客户端本地系统中(就是某一个挂载点下)。从本地NFS客户端的面器看来,NFS服务器端共享的目录就好像是自己的磁盘分区或者目录一样

NFS系统在工作场景一般用来存储共享视频、图片、附件等静态资源文件(对于用户上传的文件都放到NFS共享里,图片、附件、头像),是当前互联网系统架构中最常用的数据存储服务之一,特别是中小公司应用频率很高,大公司或门户MFS,GFS,FASTFS分布式系统

NFS在企业生产集群架构中的位置:

提示:中小企业一般不会买存储,大公司业务发展很快,可能会临时买存储顶一下,并继续加大可能存储扩展就相对很费劲,且价格成几何级数增加。淘宝就替换了很多硬盘设备集群软件,用lvs+haproxy替换了netscaler,用fastfs,TFS替换了netapp,emc存储。

如果只有两台NFS服务器可以通过inotify+rsync做实时同步

NFS挂载结构图

NFS挂载原理详细介绍:

如上图所示,当我们在NFS服务器端设置好一个共享存储目录/video后,其它的有权限访问NFS服务器端的NFS客户端可以将这个/video共享目录,挂载到NFS客户端本地系统上的某个挂载点(其实就是一个目录,这个目录可以自己随意指定),上图中两个NFS客户端本地的挂载点分别为/v/video和/video。

当正确挂载完毕后,进入到指定nfs客户端的/v/video或/video目录,就可以看到NFS服务端/video共享出来的目录下的所有数据。看起来NFS服务端的/video目录就相当于nfs客户端本地的磁盘分区或目录一样,几乎感觉不到区别,根据NFS服务端授予的NFS共享权限,只要在指定的NFS客户端操作挂载/v/video或/video的目录,就可以将数据轻松的存取到NFS服务端上的/video目录中。

挂载NFS后,NFS客户端本地的挂载内容显示如下:

[[email protected] ~]# df

Filesystem                1K-blocks      Used Available Use% Mounted on

/dev/sda3                 18375548   1509856  15932268   9% /

tmpfs                     118188         0    118188   0% /dev/shm

/dev/sda1                 198337     28568    159529   16% /boot

192.168.1.121:/video       18375552   1525088  15917056   9% /video

#192.168.1.121为nfs server的ip地址

如上所示:从挂载信息看来,和本地的磁盘分区几乎没什么差别,只是文件系统列的开头是ip地址开头的形式。

NFS系统是通过网络来进行数据传输的,因此NFS会使用一些端口来传输数据。而NFS使用的这些端口是随机选择的,这些随机的端口是通过RPC协议/服务来实现的,RPC(中文意思远程过程调用,英文Remote Procedure Call简称RPC)

NFS RPC最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,让客户端可以连接到正确的端口上去,从而实现数据传输。RPC服务就类似NFS服务端和客户端之间的一个中介。

那么RPC又是如何知道每个NFS的端口呢?

原因是,当NFS服务端启动服务时会随机取用数个端口,并主动向RPC服务注册取用的相关端口信息,这样,RPC服务就知道了每个端口对应的NFS功能了,然后RPC服务使用固定的端口号111来监听NFS客户端的提交请求,将将正确的NFS端口应答给NFS客户端,这样一来,就可以让NFS客户端与服务端进行数据传输了。


提示:在启动NFS SERVER之前,首先要启动RPC服务(Centos5.8下为portmap服务,Centos6.4下为rpcbind服务),否则NFS SERVER就无法向RPC服务注册,另外,如果RPC服务重新启动,原来己经注册好的NFS端口数据就会丢失,因此,此时RPC服务管理的NFS程序也需要重新启动以重新向RPC注册。特别注意:一般修改NFS配置文件后,是不需要重起NFS的,直接在命令行执行/etc/init.d/nfs reload或exportfs -rv即可使修改的/etc/exports生效

再次强调:NFS的RPC服务,在Centos5.X下名称为portmap,在Centos6.X下名称为rpcbind。

更多的NFS相关信息可以参考:

http://www.citi.umich.edu/projects/nfsv4/linux/

时间: 2024-11-06 19:08:10

NFS概念和工作流程(一)的相关文章

git概念及工作流程详解

git概念及工作流程详解 既然我们已经把gitlab安装完毕[当然这是非必要条件],我们就可以使用git来管理自己的项目了,前文也多多少少提及到git的基本命令,本文就先简单对比下SVN与git的区别及理解git几个重要概念. 至于什么是git,git的发展历史,网上已经有很多资料,可以自行google或百度. 关于git与svn的区别 这里不针对git与svn的区别详细深究,以便对双方的优缺点了解更多些. 1) 最核心的区别Git是分布式的,而Svn不是分布的. 能理解这点,上手会很容易,声明

MyBatis的几个重要概念和工作流程

MyBatis 几个重要的概念 Mapper 配置: Mapper 配置可以使用基于 XML 的 Mapper 配置文件来实现,也可以使用基于 Java 注解的 MyBatis 注解来实现,甚至可以直接使用 MyBatis 提供的 API 来实现.                                                        Mapper 接口: Mapper 接口是指自行定义的一个数据操做接口,类似于通常所说的 DAO 接口.早期的 Mapper 接口需要自定义

HTTP协议概念及工作流程

HTTP协议:简单点就是客户端怎么问,服务器怎样答. 重要性:webservice 还是rest做大型架构都离不开对http协议的认识,甚至可以简化的说webservice =  http + XML:Rest = HTTP + json:各种API,也是用http+ xml/json来实现. 做小偷站,采集,ajax也都需要对http协议了解. 工作流程: 1)首先客户机与服务器需要建立连接.只要单击某个超级链接,HTTP的工作开始. 2)建立连接后,客户机发送一个请求给服务器,请求方式的格式

01 http协议概念及工作流程

一:HTTP协议 重要性: 无论是以后用webserverice ,还是用rest做大型架构,都离不开对HTTP协议的认识. 甚至可以简化的说: webservice = http协议+XML Rest = HTTP协议 + json 各种API,也一般是用http+XML/json来实现的. 往小说:做采集,小偷站,也需要对HTTP协议有所了解, 以及Ajax,对HTTP协议有了解之后,学习Ajax是非常容易理解的. 什么是协议: 答:计算机中的协议和现实中的协议是一样的, 一式双份/多份.

图解EJB工作流程

学习EJB需要对JNDI和RMI方面知识有一定的了解. JNDI为EJB提供命名和目录服务,实现不同目录位置的Bean的唯一标识. RMI为EJB提供远程访问能力,实现Bean的远程调用功能 在介绍Bean的工作流程之前,先熟悉一下RMI的工作流程 RMI设计的目标:实现运行在不同JVM中Java对象的调用 客户端通过JNDI服务获取Bean对象的接口,称为桩(stub) 一般情况下Bean对象并不希望被直接操控,比如针对不同客户端暴露不同接口,所以在JVM2上也提供一个对外接口,称为骨架(sk

简单梳理memcached工作原理/工作流程/优化建议

一.memcached工作原理基本概念:slab,page,chunk.slab,是一个逻辑概念.它是在启动memcached实例的时候预处理好的,每个slab对应一个chunk size,也就是说不同slab有不同的chunk size.具体分配多少个slab由参数 -f (增长因子)和 -n (chunk最小尺寸)决定的.page,可以理解为内存页.大小固定为1m.slab会在存储请求时向系统申请page,并将page按chunk size进行切割.chunk,是保存用户数据的最小单位.用户

git工作流程

一般工作流程如下: 克隆 Git 资源作为工作目录. 在克隆的资源上添加或修改文件. 如果其他人修改了,你可以更新资源. 在提交前查看修改. 提交修改. 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交. Git 的工作流程示意图: git的工作区.暂存区和版本库 基本概念: 工作区:就是你在电脑里能看到的目录. 暂存区:英文叫stage, 或index.一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index). 版本库

第2章 rsync算法原理和工作流程分析

本文通过示例详细分析rsync算法原理和rsync的工作流程,是对rsync官方技术报告和官方推荐文章的解释. 以下是rsync系列篇: 1.rsync(一):基本命令和用法 2.rsync(二):inotify+rsync详细说明和sersync 3.rsync算法原理和工作流程分析 4.rsync技术报告(翻译) 5.rsync工作机制(翻译) 6.man rsync翻译(rsync命令中文手册) 本文目录: 1.1 需要解决的问题 1.2 rsync增量传输算法原理 1.3 通过示例分析r

基于git的工作流程

本文针对的是追求极致.快速的产品响应团队的.以下的观点和内容都是围绕这个主题,暂时不涉及个人学习和团队学习. 在说工作流程之间,想说一下我们平常工作中遇到的一些困惑或者说现象 在一个团队里,同时有好多事件要解决.有的是产品迭代,有的是bug修改,有的可能是技术结构调整等.怎么去保证他们之间的独立性? 什么时候应该切分支?合并后的分支还能再作修改吗?分支什么时候需要删除?什么时候这个分支的生命周期才算完成? 主干可以修改代码吗?多少次分支合并到主干才发布一个版本? 什么时候版本才算稳定.什么时候才