标签:NFS
NFSNFS(NetworkFileSystem),网络文件系统,基于RPC实现在远程主机上完成读写功能,NFS服务端功能由Kernel中提供,所以只能在Linux、UNIX中使用,另外只能根据IP地址限制用户访问。
RPC (Remote Procedure Call),实现两个远程主机之间功能函数的调用、参数传递功能。在Linux中一些通用功能都被做成库,本地的应用程序需要使用这些功能时,直接调用即可,这就叫本地调用;本地所需要的库(功能函数)在远程主机上,这时候就可以使用RPC协议将调用请求、参数封装成报文在网络上传输,并且服务端能理解之后将调用请求在本地执行返回结果,这称为远程过程调用。很多服务都会基于RPC完成某些功能, 例如NFS服务就基于RPC调用远程 主机上的open() ,read(),write(),close()…等函数将执行结果返回本地,完成文件共享功能。
工作原理:
1.服务端启动时将NFS功能(NFS daemons)像RPC进行注册端口。
2.客户端通过RPC连接服务器获取NFS Daemon注册的端口。
3.客户端连与NFS daemon进行联机,mountd对用户进行认证,nfs提供文件共享服务功能。
注意:RPC(tcp/111,udp/111),NFS(tcp/2049,udp/2049) 使用的都是知名端口,但mountd并不是知名服务,客户端不知道mountd在哪,不知道如何去认证,而NFS必须要mountd认证通过返回令牌才能提供服务,所以NFS在启动时需要向RPC注册使用随机端口,这样客户端直接找RPC即可. [root@el6 ~]# rpcinfo -p 127.0.0.1 program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 57168 status 100024 1 tcp 57017 status 100011 1 udp 875 rquotad 100011 2 udp 875 rquotad 100011 1 tcp 875 rquotad 100011 2 tcp 875 rquotad 100005 1 udp 40548 mountd 100005 1 tcp 60166 mountd 100005 2 udp 46629 mountd 100005 2 tcp 39141 mountd 100005 3 udp 48524 mountd 100005 3 tcp 50953 mountd 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 2 tcp 2049 nfs_acl 100227 3 tcp 2049 nfs_acl 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 2 udp 2049 nfs_acl 100227 3 udp 2049 nfs_acl 100021 1 udp 48054 nlockmgr 100021 3 udp 48054 nlockmgr 100021 4 udp 48054 nlockmgr 100021 1 tcp 43004 nlockmgr 100021 3 tcp 43004 nlockmgr 100021 4 tcp 43004 nlockmgr (daemon进程有多个是因为NFS支持并发访问) |
NFS daemon:
rpc.nfsd 提供NFS服务
rpc.mountd 用于验证用户是否有权限使用NFS
rpc.lockd与rpc.statd 用于锁定文件防止多个用户同时修改,导致文件混乱。
rpc.quota 用于设置NFS的磁盘配额。
rpc.bind 用于将服务与端口绑定
rpc.statd 通知NFS客户端什么时候一个NFS服务器非正常重启动.这个进程被nfslock服务自动启动,不需要用户的配置.
rpc.idmapd 用于将所有用户的ID映射为nobody用户
安装NFS:
[root@7-1 ~]# yum install -y nfs-utils 一般OS自带无需安装 |
NFS配置文件
Usage: Directory(or filesystem) Client1(option1,option2…) Client2(option1,option2…) |
Directory 共享目录
Client 允许访问的客户端IP
172.16.1.1 单个IP
172.16.1.0/24 网段
hostname/FQDN 主机名或者FQDN名
Options 可使用权限选项
rw 读写权限,默认ro
async 异步读写,不启用多线程,也能进行多个I/O操作
secure 缺省选项,表示客户端挂载建立连接时采用小于1024的端口号
insecure 关闭上述功能
root_squash 缺省选项,将root用户映射成nfsnobody
no_root_squash 关闭上述功能,非常危险,这表示以root的身份进行读写
all_squash 将所有用户映射成nfsnobody
标签:NFS
原文地址:http://blog.51cto.com/jying/2120319