4.1. nfs简介
- Date:
2018-09
4.1.1. nsf介绍
- 参考:
- NFS
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。 在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
- nfs为什么需要RPC?
因为NFS支持的功能很多,不同功能会使用不同程序来启动,因此,NFS对应的功能所对应的端口无法固定。 端口不固定造成客户端与服务端之间的通信障碍,所以需要RPC来从中帮忙。 NFS启动时会随机取用若干端口,然后主动向RPC服务注册取用相关端口和功能信息,RPC使用固定端口111来监听来自NFS客户端的请求, 并将正确的NFS服务端口信息返回给客户端,这样客户端与服务端就可以进行数据传输了。
- NFS的工作流程
由程序在NFS客户端发起存取文件的请求,客户端本地的RPC(rpcbind)服务会通过网络向NFS服务端的RPC的111端口发出文件存取功能的请求。
NFS服务端的RPC找到对应已注册的NFS端口,通知客户端RPC服务。
客户端获取正确的端口,并与NFS daemon联机存取数据。
存取数据成功后,返回前端访问程序,完成一次存取操作。
所以无论客户端,服务端,需要使用NFS,必须安装RPC服务。
NFS的RPC服务,在Centos5下名为portmap,Centos6下名称为rpcbind。
- 端口服务
CentOS5.x动态随机端口都小于1024,CentOS6.x动态随机端口比较大。 NFS服务器需要开放的端口:mountd,nfs,nlockmgr,portmapper,rquotad这五个服务对应的端口号。 其中端口信息:
服务名称 |
端口信息 |
备注 |
|---|---|---|
portmapper |
111 |
|
nfs |
2049 |
|
nlockmgr |
动态端口号 |
可以通过“/etc/services”文件固定端口号 |
rquotad |
动态端口号 |
可以通过“/etc/services”文件固定端口号 |
mountd |
动态端口号 |
可以通过“/etc/services”文件固定端口号 |
4.1.2. nfs适用场景
- nfs适用的场景:
通过网络远程共享存储;
用户上传的文件适合存储在nfs上;
nfs适合网站访问量不是太大的情况,如果高并发且访问量大的情况不太适合nfs。
nfs数据安全性比较好,一般不会丢数据。
一般中小网站都会用到nfs。
4.1.3. nfs发展历史
参考下图:
4.1.4. nfs软件包
- nfs服务需要的软件包:
- nfs-utils
nfs服务器的主程序包,包括rpc.nfsd、rpc.mountd和相关文档。
- portmap
CentOS5.x系统rpc的主程序,CentOS6.x名字是rpcbind。
- rpcbind
CentOS6.x系统的rpc主程序。在nfs服务器启动之前此服务需要正常启动运行,否则nfs会不能运行。 因为这个服务软件负责端口和服务的映射。