nfs网络文件系统

一、概念

NFS就是Network File System的缩写,即网络文件系统。一种使用分散式文件系统的协议,由sun公司开发,于1984年向外公布,功能是通过网络让不通机器、不通操作系统能够批次分享个别的数据,让应用程序在客户端通过网络访问位置服务器磁盘中的数据,是在类unix系统间实现磁盘文件共享的一种方法。使用nfs协议

它的主要功能是通过网络让不同机器系统之间可以批次共享文件和目录。NFS服务器可以允许NFS客户端将远程NFS服务器的共享目录挂载到本地NFS客户端中。在本地的NFS客户端的机器来看,NFS服务器共享的目录就豪侠昂自己的磁盘分区和目录一样。一般客户端挂载到本地目录的名字可以随便取,但为了方便管理,最好和服务器端一致。

NFS一般用于存储共享视频、图片等景台资源数据
NFS挂载结构图
在这里插入图片描述

二、挂载原理

NFS是通过网络来进行服务端和客户端之间的数据传输。两者之间要传输数据就要有对应的网络端口来进行传输。NFS服务器随机选择端口来进行数据传输。NFS服务器通过远程过程调用RPC(remote procedure call)协议/服务来实现的,也就是说PRC服务会统一管理NFS的端口,客户端和服务端通过RPC来沟通NFS使用了哪些端口,之后再里用这些端口(小于1024)来进行数据传输。

也就是RPC管理服务端的NFS端口分配,客户端要传数据,那客户端的RPC会先跟服务端的RPC取药服务端端口,再建立连接,然后传数据。

RPC和NFS之间如何互相通讯?

首先NFS启动后,会随机使用一些端口,然后NFS就会向RPC去注册这些端口。RPC会纪律下这些端口。并且RPC会开启111端口,等待客户端RPC的请求,如果客户端有请求,那服务端的RPC就会将记录的NFS端口信息告知客户端。
所以,首先启动RPC,其次再启动NFS

RPChe NFS启动顺序详解:

在启动NFS SERVER之前,首先药启动RPC服务,即portmap服务,否则NFS SERVER就无法向RPC服务区注册。另外,如果RPC服务重新启动,原本已经注册好的NFS端口数据就会全部丢失。因此,此时RPC服务管理的NFS程序也需要重新启动,并向RPC注册。
:一般在修改NFS配置文档后,是不需要重启NFS的,直接在命令执行/etc/init.d/nfs reload。

总结:客户端NFS和服务端NFS通讯过程。

1.首先服务器端启动RPC服务,并开启111端口。
2.启动NFS服务,并向RPC注册端口信息(服务器端)
3.客户端启动RPC(portmap服务),向服务器端的RPC服务请求服务端的NFS端口
4.服务端的RPC(portmap)服务反馈NFS端口信息给客户端
5.客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据传输。

三、NFS相关协议及软件安装管理

协议

RPC(Remote Procedure Call Protocol)
远程过程调用协议。

软件

nfs-utils-:包括NFS命令和监控程序
rocbind-
:支持安全NFS RPC服务的连接


通常是作为系统默认包安装的。
CentOS6.x之前rpcbind叫portmap

四、NFS系统守护进程

NFS:基本NFS的守护进程,主要功能是管理客户端是否能够登录服务器
rpcbind:主要功能是进行端口映射。当客户端尝试连接并使用RPC服务器提供的服务(如NFS服务)时,rpcbind会将所管理的与服务对应的端口提供给客户端,从而使客户可以通过该端口向服务器请求服务。

五、NFS服务器相关配置

NFS服务器配置比较简单,只需要在相应配置文件中进行配置,启动即可。
NFS服务配置文件为/etc/exports,这个文件使NFS的主要配置文件,不过系统没有设定默认值,所以这个文件不一定会存在,可以vim手动建立,然后写入配置内容。

/etc/exports文件内容格式:

共享目录 客户端1(访问权限,用户映射,其他) 客户端2(…)

共享目录:共享目录是指NFS服务器共享给客户其使用的目录。
客户端:指网络中可以访问这个NFS共享目录的计算安吉。

客户端常用指定方式:

指定IP:192.168.186.200
指定子网所在主机:192.168.186.0
指定域名主机:www.laoli.com
指定域中所有主机:.laoli.com
所有主机:

设置输出目录的访问权限、用户映射等
访问权限选项:

设置输出目录只读:ro
设置输出目录读写:rw

用户映射选项:

root_squash:将root用户访问映射为匿名(nfsnobody)用户uid和gid(默认生效)
no_root_squash:保留管理员权限,以服务器管理员的权限管理。
all_squash:将远程访问的所有用户都映射为uid、gid的匿名用户
anonuid=xxx:将远程访问的所有用户都映射为指定uid的匿名用户。
anongid=xxx:将远程访问的所有用户所属组都映射为指定用户的gid匿名组用户。
其他选项:(这些都是常用,不是全部)
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性(同步)(推荐)
async:将数据保存在缓冲区中,必要时写入磁盘(异步)。降低资源消耗。

六、NFS服务器的启动与停止

1.启动NFS服务器

为了使NFS服务器能正常工作,需要启动rpcbind和nfs两个服务,并且rpcbind一定要先于nfs启动。
systemctl start rpcbind
systemctl start nfs

2.查询NFS服务器状态

systemctl status rpcbind
systemctl statys nfs

3.停止NFS服务器

要停止NFS运行时,需要先停止nfs服务再停止rpcbind服务,对于系统中有其他服务(如NIS)需要使用时,不需要停止rpcbind
systemctl stop nfs
systemctl start rpcbind

4.设置NFS服务自启动状态

设置rpcbind和nfs服务在系统运行级别2345自动启动
chkconfig --level 2345 rpcbind on
chkconfig --level 2345 nfs on
这时候其实脚本效果要好很多。

5.查看RPC服务器开启了哪些端口

rpc -p localhost

七、案例

1.将NFS服务器的/tmp/laoli共享给192.168.1.0网段,rw权限
vim /etc/exports
在这里插入图片描述

2.先启动rpcbind,再启动nfs
在这里插入图片描述

3.查看nfs共享状态
showmount -e 本机IP
在这里插入图片描述

4.客户端查看nfs共享状态
showmounnt -e 服务器端IP
在这里插入图片描述
注:没有showmount这个命令,就安装nfs-utils即可。

5.客户端挂载nfs服务器共享目录(直接挂载使用)
mount 服务器IP:共享目录 本地挂载点
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6.nfs共享权限和访问控制

客户端root用户

使用客户端的root身份再nfs服务器上创建文件,文件所有者和所属组是nfsnobady

客户端的普通用户

使用客户端的普通用户身份在nfs服务器上创建文件,所有者和所属组是nobady或普通用户。
如果明确设定了普通用户的映射用户身份,那么此时客户端用户的身份转换为指定映射用户。
如果nfs server上面有同名用户,那么此时客户端登录账户的身份转换为nfs server上同名用户。

7.卸载和自动开启

卸载

卸载客户端挂载点
直接umount 挂载点即可。
umount /mnt/laoli

停止服务器端的共享
exportfs -au

自动挂载:/etc/fstab

nfs serverIP:共享目录 挂载点 nfs defaults 0 0
例如:
192.168.1.130:/tmp/laoli /tmp/laoli nfs defaults,vers=3 0 0
注:这里的vers=3是使用v3版本,避免同步延迟,异步就不用了。

八、NFS相关命令

exportfs 命令
在启动了NFS之后又修改了/etc/exports,可以无需重启服务,用exportfs命令使改动立刻生效。

exportfs [-aruv]

-a,全部挂载或卸载
-r,成绩排名感谢欧美第其/etc/exports中的信息,并同步更新/etc/exports、/var/lib/nfs/xtab
-u,卸载单一目录,和-a选项一起使用就是卸载所有/etc/exports文件中的目录
-v,在exportfs时,输出详细信息,单-v查询详细

例如:
exportfs -au,卸载所有共享目录
exportfs -ar,重新共享所有目录

rpcinfo
里用rpcinfo -p可以查看RPC开启的端口所提供的程序有哪些

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值