NFS(network file system)

工作原理:

    1、首先用户访问网站程序,由程序在NFS客户端上发出NFS文件存取功能的询问请求,这时NFS客户端(即执行程序的服务器)RPC服务(portmap rpcbind服务)就会通过网络向NFS服务端的RPC服务(即portmaprpcbind服务)的111端口发出NFS文件存取功能的询问请求。

    2NFS服务端的RPC服务(即portmaprpcbind服务)找到对应的已注册的NFSdaemon端口后,通知NFS客户端的RPC服务(即portmaprpcbind服务)。

    3、此时NFS客户端就可获取到正确的端口,然后就直接与NFS daemon联机存取数据了。

    4NFS客户端把数据存取成功后,返回给前端程序,告诉用户存取结果,作为网站用户,我们就完成了一次存取操作。

 

注意的几点:

1、由sun公司发展,可以在不同的操作系统,不同的主机,分享文件,类似文件服务器(file server

 

2NFS 是使用(远程过程调用协议)RPC传输协议协助NFS本身的运行

 

3NFS主要管理分享出来的目录,而本身没有提供资料传递的协议,所以当NFS需要资料传递的时候,就会让RPC协议进行运作。所以也可说NFSRPC的一个program,换句话也可以说是NFS是一个RPC server

 

4、如果要跑NFSSERVER 需要激活RPC服务,而挂在NFS partiionCLIENT的机器,也需要激活RPC服务

 

5NFS需激活RPC的两个daemons

Rpc.nfsd:管理client端登陆主机的权限

Rpc.mountd:管理NFS的档案系统

 

 

6、激活nfs需要两个套件:

Portmap:将自己管理的port mapping告知Client端,让Client端能够链接Server端传输数据。

nfs.util:提供 rpc.nfsd rpc.mountd 这两个 NFS daemons 与其它相关 documents 与说明文件、执行档等的套件

 

7、NFSrpc服务,在CentOS5.X下名称为portmap,在CentOS6.x下名称为rpcbind

 

NFS配置

SERVER端配置


1、安装nfs的套件和rpc

2、Linux内核版本高于2.2(查看内核方法:cat /proc/version | uname -a

3、修改配置文件exportsvim /etc/exports

配置文件exports的格式

分享的目录  主机名称或IP地址,子网(参数1,参数2) 主机名称或IP地址,子网(参数1,参数2

具体参数:

rw:可读写权限RX:可读执行权限

no_root_squash:登入NFS主机分享目录时,如果是以root用户身份登陆的话,则具有root权限

root_squash:登入NFS主机分享的目录的使用者身份是root用户的话,则权限将压缩成为匿名使用者身份。

all_squash:无论登入主机分享目录的使用身份为何,都会被压缩成为匿名使用者,nobody

anonuid:匿名使用者的uid

anongid:匿名使用者的gid

sync:资料同步写入内存和硬盘中

async:资料暂写入内存,而非直接写入硬盘中

4、激活服务(service rpcbind start ; service nfs start

5、重新扫描exports配置文件(exportfs -rv

6、观察主机开放的目录文件showmount -e IP地址)

 

Client端配置

1、打开rpcbind服务(service rpcbind start

2、扫描可以使用的目录(showmount -e IP地址)

3、挂载目录(mount -t nfs 192.168.118.128:/home/lsk /home/lsk

 

 

配置时注意事项:

1、如果只设置all_squash时,客户端上没有同样uidgid的用户,就无法进入nfs服务共享的目录;反之如果设置指定的uidgid,则客户端可以以设置好的uidgid身份进入目录,进行操作。

2、如果服务端关机时没有将nfs,服务关闭,则会导致关机速度很慢