NFS(网络文件系统)是TCP/IP协议集所提供的一种子协议,该协议可以实现LINUX/UNIX主机之间的文件共享。

端口:111

简介:

NFS是Network File System的简写,即网络文件系统.

网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。

NFS 最初是由 Sun Microsytem 公司於 1984 年所开发出来的,最主要的功能就是让网路上的 UNIX 电脑可以共享目录及档案。我们可以将远端所分享出来的档案系统,挂载 (mount) 在本地端的系统上,然後就可以很方便的使用远端的档案,而操作起来就像在本地操作一样,不会感到有甚麽不同。而使用 NFS 也有相当多的好处,例如档案可以集中管理,节省磁碟空间......等等。 


组成:NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机。客户机远程访问存放在服务器上的数据。为了正常工作,一些进程需要被配置并运行。


应用:

1.多个机器共享一台CDROM或者其他设备。这对于在多台机器中安装软件来说更加便宜跟方便。

2.在大型网络中,配置一台中心 NFS 服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录。

3.几台机器可以有通用的/data。这样的话,当您需要在几台机器上安装port时,您可以无需在每台设备上下载而快速访问源码。


原理:

NFS Server服务器上设定/data目录被分享,而客户端可以通过internet将/data目录挂载到本地的挂载点(常用mnt)后,客户端就可以进入挂载点目录进行文件的读写。NFS客户端所开放的端口是随机的,我们不知道,那该怎么办呢?那是不是就不能进行数据传输了呢?答案当然是NO了,那就需要另外一种服务帮他分配port了,服务是什么呢?那就是RPC服务了!


优点:

1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。

2.用户不必在每个网络上机器里头都有一个home目录。Home目录 可以被放在NFS服务器上并且在网络上处处可用。

3.诸如软驱,CDROM,和 Zip(是指一种高储存密度的磁盘驱动器与磁盘)之类的存储设备可以在网络上面被别的机器使用。这可以减少整个网络上的可移动介质设备的数量。


安装配置:

NFS Server配置安装

yum安装nfs服务rpc服务

[root@nfsserver~]# yum -y install nfs* 

#nfs*有nfs-utils、nfs-utils-lib、nfs-utils-lib-devel和nfs4-acl-tools


检查rpc服务和nfs服务是否安装并且安装成功

[root@nfsserver~]# rpm -qa rpc* nfs* 

nfs-utils-lib-1.1.5-11.el6.x86_64 

nfs-utils-lib-devel-1.1.5-11.el6.x86_64 

rpcbind-0.2.0-11.el6.x86_64

nfs-utils-1.2.3-64.el6.x86_64

nfs4-acl-tools-0.3.3-7.el6.x86_64


启动rpc服务和NFS服务(先启rpc服务,后启NFS服务)

[root@nfsserver/]# /etc/init.d/rpcbind start

Startingrpcbind: [ OK ]

[root@nfsserver/]# /etc/init.d/nfs start

Starting NFSservices: [ OK ]

Starting NFSmountd: [ OK ] 

Starting NFSdaemon: [ OK ]

Starting RPCidmapd: [ OK ]


设置开机自启

[root@nfsserver/]# chkconfig nfs on 

[root@nfsserver/]# chkconfig rpcbind on 

[root@nfsserver/]# chkconfig --list |grep -E "nfs|rpcbind" 

nfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off 

nfslock 0:off 1:off 2:off 3:on 4:on 5:on 6:off 

rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off


配置共享目录/data(nfs配置文件时/etc/exports 默认是空的)

[root@nfsserver~]# vim /etc/exports 

#share /datafor nfsclient 

/data 10.86.87.85(rw,sync,no_root_squash)

说明:

/data:共享的文件夹路径       允许访问的网段   (读写权限,)

10.86.87.85:允许IP地址访问

括号内的参数意义描述如下: 

rw:读写权限,只读权限为ro;

sync:数据同步写入内存和硬盘,也可以使用async数据会先暂存于内存中,而不立即写入硬盘。

no_root_squash:NFS 服务器共享目录用户的属性,如果用户是 root,那么对于这个共享目录来说就具有 root 的权限。


建立共享目录

[root@nfsserver ~]# mkdir /data


平滑加载NFS服务并检查服务(shoumount -e localhost)

[root@nfsserver~]# /etc/init.d/nfs reload

[root@nfsserver~]# showmount -e localhost 

Export list forlocalhost: 

/data 10.86.87.85


NFS Client 配置

安装rpc服务

[root@nfsclient01 ~]# yum -y install rpcbind


启动rpc服务并检查

[root@nfsclient01~]# /etc/init.d/rpcbind start

Startingrpcbind: [ OK ]

[root@nfsclient01~]# ps -ef| grep "rpc" 

rpc 1208 1 0 13:38 ? 00:00:00 rpcbind 

root 1212 1135 0 13:39 pts/0 00:00:00 grep rpc


设置开启自启并检查

[root@nfsclient01~]# chkconfig rpcbind on

[root@nfsclient01~]# chkconfig --list rpcbind

rpcbind 0:off 1:off 2:on 3:on 4:on 5:on 6:off


挂载并测试

挂载/data到/mnt目录下

[root@nfsclient01/]# mount -t nfs 10.86.87.85:/data /mnt