本文共 2108 字,大约阅读时间需要 7 分钟。
NFS(Network File System)即,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
NFS原理:NFS 支持的功能相当的多,而不同的功能都会使用不同的程序来启动, 每启动一个功能就会启用一些端口来传输数据,因此, NFS 的功能所对应的端口口才没有固定住, 而是随机取用一些未被使用的小于 1024 的端口来作为传输之用。但如此一来又造成客户端想要连上服务器时的困扰, 因为客户端得要知道服务器端的相关端口才能够联机吧!此时我们就得需要远程过程调用 (RPC) 的服务啦! RPC 最主要的功能就是在指定每个 NFS 功能所对应的 port number ,并且回报给客户端,让客户端可以连结到正确的埠口上去。 那 RPC 又是如何知道每个 NFS 的埠口呢?这是因为当服务器在启动NFS 时会随机取用数个埠口,并主动的向 RPC 注册,因此 RPC 可以知道每个端口对应的 NFS 功能,然后 RPC 又是固定使用 port 111 来监听客户端的需求并回报客户端正确的埠口, 所以当然可以让 NFS 的启动更为轻松愉快了!
简单点说:1.客户端会向服务器端的 RPC (port 111) 发出 NFS 档案存取功能的询问要求;
2.服务器端找到对应的已注册的 NFS daemon 埠口后,会回报给客户端;
3.客户端了解正确的埠口后,就可以直接与 NFS daemon 来联机
注:首次部署当发现多个nfs运行时,直接用yum remove nfs*全卸载,然后再安装
a.安装:
服务器端:yum install -y rpcbind
yum install -y nfs-utils
客户端:yum install -y nfs-utils
b.服务器端写配置文件
[root@Herry ~]# vim /etc/exports
/houzi 192.168.8.101(rw,sync,no_root_squash) #/houzi是需要共享的目录
#192.168.8.101是客户端IP,也可以是一个网段
#括号里的都是权限,客户端对这个共享目录可读可写,同步到磁盘,且不限制客户端root)
c.在服务器端启动rpcbind和nfs-utils服务
/etc/init.d/rpcbind
/etc/init.d/nfs restart
d.客户端挂载共享目录
mount -t nfs -o nolock,nfsvers=3 192.168.8.103:/houzi /data #192.168.8.103是服务端IP
#/data是客户端本地的目录
e.服务器端将共享目录权限设置成777
chmod 777 /houzi
f.客户端以root身份进入/data创建文件1.sh
客户端以普通用户Mysql进入/data创建文件9.sh
服务器端查看:
no_root_squash 没有限制客户端的root,客户端以root身份创建的文件,在服务器端文件所属主组都是root;
客户端以UID为501的mysql身份去创建文件,服务器端则以UID为501的aop身份对应,如果服务器端没有对应的UID,则直接显示数字;
root_squash :服务器端设置成/houzi 192.168.8.101(rw,sync,root_squash,anonuid=502,anongid=502)
客户端以root权限去写文件时,服务器端就将该文件限制成服务器端502属主属组;
以普通用户UID为501的Mysql身份去写文件时,服务器端默认将自己的对应的501属主属组aop赋予这个文件。
客户端:
服务器端:
all_squash:客户端以root身份创建4.sh,以mysql身份创建5.sh,在服务器端都限制成UID为502的php-fpm
服务器端/etc/exports文件内容/houzi 192.168.8.101(rw,sync,all_squash,anonuid=502,anongid=502)
将客户端所有的用户创建的文件的属主属组都限制成服务器端的502
如图:
客户端
服务器端:
注: 如果同时指定no_root_squash与all_squash 用户将被压缩为 nfsnobody,如果设置了anonuid、anongid将被压缩到所指定的用户与组,即no_root_squash不生效 ;
如果服务器端修改了/etc/exports文件,
a(或者直接exports -arv重新读取/etc/exports内容)则需要重启/etc/init.d/nfs restart;
b.然后再客户端重新挂载共享目录使生效