NFS网络文件系统安装配置
简介
NFS(Network File System)FS是由Sun开发并发展起来的一项用于在不同机器,不同操作系统之间通过网络共享数据。客户端用mount命令把远程的NFS文件系统挂载到本地即可,操作远程服务端的文件跟操作本地的文件几乎没什么区别。
一、NFS工作原理与RPC服务的关系
二、NFS服务的安装配置及文件介绍
三、客户端的使用
一、NFS工作原理与RPC服务的关系
1、NFS的工作原理如下图:

1)、访问一个本地的文件还是NFS文件对客户端来说是透明的,当文件打开时,由内核决定。文件打开后,内核将本地文件的所有引用传递给-->本地文件访问框中,而将一个NFS文件的所有引用传递给-->NFS客户端框中。
2)、NFS客户端通过其TCP/IP模块向NFS服务器发送RPC请求,NFS主要使用UDP,最新的也可以使用TCP。
3)、NFS服务器在端口2049接收作为UDP数据包的客户端请求,尽管NFS可以被视为使用端口映射,允许服务器使用一个临时端口,但大多数都是直接指定UDP2049端口。
4)、当NFS服务器收到一个客户端请求时,它将这个请求传递给本地文件访问例程,然后访问服务器上的一个本地的磁盘文件。
5)、NFS服务器需花一定时间来处理一个客户端请求,访问本地文件系统一般情况也需一部分时间,在这段时间内,服务器不应该阻止其他客户端的请求。为了实现这一功能,大多数NFS服务器都是多线程--服务器内核中实际上有多个NFS服务器在NFS本身的加锁管理程序中运行,具体根据操作系统。大多数类Unix内核不是多线程,一个共同的技术就是启动一个用户进程(常为:nfsd)的多个实例。这个实例执行一个系统调用,使其作为一个内核进程保留在操作系统内核中。
6)、在客户端主机上,NFS客户端需花一定时间来处理一个用户进程的请求,NFS客户端向服务器主机发出一个RPC调用 ,然后等待服务器应答,为了给使用NFS客户端主机上的用户进程提供更多并发性,在客户端内核中一般运行多个NFS客户端,同样具体实现也根据操作系统。
2、RPC服务
RPC最主要的功能就是指定每个NFS功能所对应的端口号,并且响应给客户端,让客户端可以连接到正确的端口上。当服务器在启动NFS时会随机选用数个端口,并主动地向RPC注册。因此RPC可以知道每个端口对应的NFS功能。然后RPC固定使用端口111来监听客户端的请求并回报客户端正确的端口,所以可以让NFS的启动更为容易。注意:启动NFS之前,要先启动RPC;否则NFS会无法向RPC注册。另外,重新启动RPC时原本注册的数据会不见,因此RPC重新启动后它管理的所有程序都需要重新启动以重新向RPC注册。

客户端向NFS服务器请求数据的过程:
(1)客户端会向服务器端的RPC(port 111)发出NFS文件存取功能的询问请求。
(2)服务器端找到对应的已注册的NFS daemon端口后会回报给客户端。
(3)客户端了解正确的端口后,就可以直接与NFS守护进程来连接
二、NFS服务器的安装配置与文件介绍
1、NFS服务器的安装
服务器系统:CentOS6.4.x86_64
IP规划:NFS服务器IP地址:172.16.14.1 NFS客户端IP地地址:172.16.14.2
需要用到的软件包:
|
1
2
3
|
[root@localhost ~]# yum -y install nfs-utils rpcbind #YUM安装NFS服务端rpcbind-0.2.0-11.el6.x86_64.rpm #NFS服务器所依赖的软件包nfs-utils-1.2.3-36.el6.x86_64.rpm #NFS软件包 |
查看软件是否安装:

2、文件介绍
NFS服务脚本:/etc/rc.d/init.d/nfs
NFS主配置文件:/etc/sysconfig/nfs
配置文件:/etc/exports 默认此文件为空,需手动添加
主配置文件书写格式: Export HOST(Options) Export:共享的目录 HOST:主机地址 Options:选项
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
Options: rw: #读写权限 ro: #只读权限 secure: #要求客户端请求端口小于1024默认开启 insecure: #NFS通过1024以上的端口发送 async: #异步写入,性能好,数据可靠性差 sync: #同步写入,性能差,数据可靠性高 wdelay: #写入延迟 no_wdelay: #不做写入延迟 hide: #在NFS共享目录中不共享其子目录 nohide: #共享NFS目录的子目录 crossmnt: #交叉挂载 no_acl: #关闭nfs支持acl功能 root_squash: #压缩root用户权限为nfsnobody no_root_squash: #不压缩root用户的权限 all_squash: #所有的用户都压缩权限 anonuid=nfsuser,anongid=nfsgroup: #指定用户帐号做匿名用户帐号 |
3、服务端使用命令:
|
1
2
3
4
5
6
7
8
9
10
11
12
|
showmount -a: 显示当前主机所共享的NFS文件系统中,有哪些已经被客户端挂载 -d: 显示当前主机所共享的NFS文件系统中,每个挂载连接exportfs -r: 重新导出 -a: 操作所有文件系统 -u: 取消导出 -v: 显示详细信息 -ra:重新共享所有目录 -au:卸载所有共享目录rpcinfo -p: 查看NFS注册使用的端口 |
4、启动NFS服务器

注:RHEL5系统不是"rcpbind"服务,而是"portmap"服务.请大家做的时候注意.
5、配置NFS服务器
|
1
2
3
4
|
[root@localhost ~]# mkdir /nfs_server #创建nfs服务器端共享目录[root@localhost ~]# cat > /etc/exports << EOF> /nfs_server 172.16.0.0/16(rw,root_squash)> EOF #共享nfs_server目录,只允许172.16.0.0网段访问,并且有可写权限,压缩root用户的权限 |
三、客户端的使用
1、查看NFS服务器共享了哪些目录
|
1
2
3
|
[root@localhost ~]# showmount -e 172.16.14.1 #显示服务器共享了哪些文件系统列表Export list for 172.16.14.1:/nfs_server 172.16.0.0/16 #NFS服务器共享的目录 |
2、客户端挂载使用NFS文件系统
|
1
2
3
4
|
[root@localhost ~]# mkdir /nfs_client #创建客户端挂载点[root@localhost ~]# mount -t nfs 172.16.14.1:/nfs_server /nfs_client #挂载NFS文件系统.-t:指定文件系统类型[root@localhost ~]# mount | grep nfs_client #查看是否挂载成功172.16.14.1:/nfs_server on /nfs_client type nfs (rw,vers=4,addr=172.16.14.1,clientaddr=172.16.14.2) |
3、在NFS服务器和客户端分别创建普通用户"centos"与"redhat",这里需要说明一下,NFS做验证是基于用户ID,用户名相同是不能访问的,必须在ID相同的情况下可以才访问."root"用户默认权限是被压缩的.下面我们来做一下测试如:
1)、先查看NFS服务器"nfsuser"用户是否对共享文件夹"/nfs_server"有可写权限,并设置好权限:

2)、在NFS服务器端和客户端分别创建一个用户为"nfsuser",且用户ID不同,如下图:


3)、在客户端使用"nfsuser"用户来验证是否能写入,且保证服务端没有用户ID为601的,如下图:

4)、分别在NFS服务器端与客户端创建"centos"和"redhat"用户,且用户UID相同,如下图:


5)、先查看NFS服务器"centos"用户是否对共享文件夹"/nfs_server"有可写权限,并设置好权限:

6)、在客户端使用"redhat"用户验证是否能写入;并在服务器端与客户端查看文件的属主及属组,如下图:


NFS网络文件系统到此结束,后续会添加一些其他认证功能;敬请关注...
NFS网络文件系统安装配置的更多相关文章
- NFS网络文件系统服务(配置实战)
NFS网络文件系统服务(实战) NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源.让不同的主机系统(NFS的客户端)可以透明地读写位 ...
- NFS网络文件系统的配置
NFS网络文件系统的配置 NFS网络文件系统 NFS(network file system)网络文件系统.一种使用于分散式文件协定,有SUN公司开发.功能是通过网络让不同的机器.不同的操作系统能够分 ...
- 拾人牙慧篇之——linux文件挂载,基于nfs的文件共享系统安装配置
一.写在前面 最近需要把阿里云上的四台服务器的项目迁移到客户提供的新的项目中,阿里云的项目平时开发启动的时候知道有个nfs文件系统,表现就是后台管理系统通过freemarker生成的HTML文件,自动 ...
- NFS 网络文件系统测试笔记
NFS(Network Files System),网络文件系统是1980年由SUN发展出来在UNIX&Linux系统间实现磁盘文件共享的一种方法.它是一种文件系统协议:支持应用程序在客户端通 ...
- Linux实战教学笔记22:企业级NFS网络文件共享服务
目录 第二十二节 企业级NFS网络文件共享服务 第一章 NFS网络文件共享服务 1.1 NFS介绍 1.2 NFS系统原理介绍 1.3 NFS服务端部署环境准备 1.4 NFS server端的设置 ...
- NFS网络储存系统
为什么用NFS网络文件存储系统? 1)实现数据信息统一一致 2)节省局域网数据同步传输的带宽 3)节省网站架构中服务器硬盘资源 NFS系统存储原理介绍 RPC服务类似一个中介服务,NFS服务端与NFS ...
- (转)企业级NFS网络文件共享服务
企业级NFS网络文件共享服务 原文:http://www.cnblogs.com/chensiqiqi/archive/2017/03/10/6530859.html --本教学笔记是本人学习和工作生 ...
- 【集群实战】NFS网络文件共享服务2-mount挂载(参数,优化)
1. NFS客户端挂载深入 1.1 NFS客户端挂载参数说明 在NFS服务端,可以通过cat /var/lib/nfs/etab查看NFS服务器端配置参数的细节. 在NFS客户端,可以通过cat /p ...
- Linux 学习笔记_12_文件共享服务_3_NFS网络文件服务
NFS网络文件服务 NFS---- Network File System 用于UNIX/Linux[UNIX类操作系统]系统间通过网络进行文件共享,用户可以把网络中NFS服务器提供的共享目录挂载到本 ...
随机推荐
- c/c++中两颗璀璨的明珠
1.指针: 函数指针做函数参数 回调函数 语法现象 意义 实现什么效果 (1).间接赋值成立的三个条件 a.两个变量 b.建立关联 c. *p-> (2).函数指针做函数参数 a.调用的角度去理 ...
- Apache 403 error, (13)Permission denied: access to / denied问题
Apache 配置Alias 后,无法访问 CentOS系统 检查了一圈httpd.conf和目录权限,均没有发现问题. 最后,看了这篇文章,发现是因为系统启动了SELINUX导致的. http:// ...
- BWA MEM算法
现在BWA大家基本上只用其mem算法了,无论是二代还是三代比对到参考基因组上,BWA应用得最多的就是在重测序方面. Aligning sequence reads, clone sequences a ...
- gvim 快速编辑例子
1 准备工作 首先, 我们打开 VIM, 输入一段文本, 用于今天的演示: this is a test 2 查找替换 按几下 ESC 进入 Normal 模式, 输入以下命令: :%s/ /\r/ ...
- ps
快速恢复默认值 有些不擅长Photoshop的朋友为了调整出满意的效果真是几经周折,结果发现还是原来的默认效果最好,这下傻了眼,后悔不该当初呀!怎么恢复到默认值呀?试着轻轻点按选项栏上的工具图标,然 ...
- Python压缩
ru=lambda x:x.decode('u8') rp=lambda x:x.replace('\\','/') gb=lambda x:x.decode('gbk') class ZIP: de ...
- bash命令行返回值和展开
bash命令行返回值和展开 标签(空格分隔): bash,命令,状态,展开 1.命令状态结果和执行结果 (1)命令执行的状态返回值,命令执行完成之后,其执行状态结果值保存于bash的特殊状态变量$?中 ...
- PHP Switch case 条件并用实例
众所周知,Switch循环比if...else...循环效率要好的多,当case有相同代码结构的时候,怎么样来简化代码结构,能让代码更具有通用性呢? 在网上找了一下,好多都是复制粘贴,还有的看起来太复 ...
- AE调用GP工具的方法(转)
第一,首先要明确自己需要调用arctoolbox里面的什么工具,实现什么样的功能. 第二,按照需求看看在arctoolbox工具中是怎么实现功能的,然后确定需要的数据源. 第三,编写command或t ...
- iframe自动高度
<script> //设置iframe自动高度 function setIframe(id){ var fn = function(){ try{ var iframe = typeof ...