NFS(网络文件系统)
NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS在文件传送或信息传送过程中依赖于RPC协议,RPC远程过程调用 (Remote Procedure Call) 是能使客户端执行其他系统中程序的一种机制,NFS本身是没有提供信息传输的协议和功能的。
NFS应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而代之的数据量比较大的可以采用MFS、TFS、HDFS、GFS等等分布式文件系统。
NFS(网络文件系统):让网络上的不同linux/unix系统机器实现文件共享 nfs本身只是一种文件系统,没有提供文件传递的功能,但却能让我们进行文件的共享,原因在于 NFS 使用RPC服务,用到NFS的地方都需要启动RPC服务,无论是NFS客户端还是服务端 nfs和rpc的关系:nfs是一个文件系统,负责管理分享的目录; rpc负责文件的传递 nfs启动时至少有rpc.nfsd和rpc.mountd2个daemon rpc.nfsd主要是管理客户机登陆nfs服务器时,判断改客户机是否能登陆,和客户机ID信息。 Rpc.mountd主要是管理nfs的文件系统。当客户机顺利登陆nfs服务器时,会去读/etc/exports文件中的配置,然后去对比客户机的权限。 协议使用端口: RPC: 111 tcp/udp nfsd: 2049 tcp/udp mountd:RPC服务在 nfs服务启动时默认会为 mountd动态选取一个随机端口(32768–65535)来进行通讯 ,可以在/etc/nfsmount.conf文件中指定mountd的端口 |
1)NFS文件系统安装,执行以下命令
[root@localhost ~]# yum -y install nfs-utils
2)编辑vim /etc/exports,配置参数如下(可根据需求配置):
[root@localhost ~]# echo "/data 0.0.0.0 (rw,no_root_squash,no_all_squash,sync)" >> /etc/exports
[root@localhost ~]# mkdir -p /data
[root@localhost ~]# service rpcbind restart
[root@localhost ~]# service nfs restart
参数详解:
all_squash #共享文件的UID和GID映射匿名用户 anonymous,适合公用目录。
no_all_squash #保留共享文件的UID和GID(默认)
root_squash #root用户的所有请求映射成如 anonymous用户一样的权限(默认)
no_root_squash #root用户具有根目录的完全管理访问权限
Linux客户端,如何想使用这个NFS文件系统,需要在客户端挂载,挂载命令为:
mount –t nfs (NFS服务器IP):/data/ /mnt
windows客户端(这里以win7旗舰版为例),如何使用这个NFS文件系统,需要在控制面板-程序-程序和功能,选择打开或关闭windows功能,如图
安装完成之后,窗口会自动关闭。
这时我们按下WIN + R,打开运行界面:输入cmd进入命令提示符
那么,我们输入命令mount //NFS的IP地址或者主机名/nfs目录名 挂载点
最后打开计算机,里面就可以看到网络共享目录了