本文共 2782 字,大约阅读时间需要 9 分钟。
NFS是Network File System的缩写
NFS最早由Sun公司开发,分2,3,4三个版本,2和3由Sun起草开发,4.0开始Netapp公司参与并主导开发,最新为4.1版本NFS数据传输基于RPC协议,RPC为Remote Procedure Call的简写。NFS应用场景是:A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致NFS架构
NFS原理图
实验环境:centos7.3
名称 | IP | |
---|---|---|
服务器: | JAMF | 172.16.22.247 |
客户端: | zabbix | 172.16.22.233 |
安装包:
服务器: | yum -y install rpcbind.x86_64 nfs-utils.x86_64 |
---|---|
客户端: | yum -y install nfs-utils |
服务器:
vim /etc/exports/home/nfsdir 172.16.22.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
[root@JAMF ~]# systemctl start rpcbind[root@JAMF ~]# systemctl start nfs[root@JAMF ~]# systemctl enable rpcbind[root@JAMF ~]# systemctl enable nfs
服务器关闭selinux,防火墙信任客户端源IP或者关闭防火墙
getenforce Disabled[root@JAMF ~]# firewall-cmd --permanent --zone=trusted --add-source=172.16.22.233success[root@JAMF ~]# firewall-cmd --reload success
服务器:
[root@JAMF mnt]# cd /home/nfsdir/[root@JAMF nfsdir]# lltotal 4-rw-r--r-- 1 www www 15 Mar 16 18:00 testnfs.txtdrwxr-xr-x 2 www www 6 Mar 16 01:40 tmp[root@JAMF nfsdir]# id wwwuid=1000(www) gid=1000(www) groups=1000(www)
NFS配置选项
参数名称 参数用途
rw(熟记) 表示可读写权限sync(熟记) 请求或写入数据时,数据同步写入到NFS Server的硬盘后才返回,优点:数据安全不会丢,缺点:性能比不启用该参数要差async(熟记) 写入数据时会先写到内存缓冲区,直到硬盘有空档才会在写入磁盘,这样可以提升写入效率。风险是若服务器宕机或不正常关机,会损失缓冲区中未写入硬盘的数据(解决办法:服务器主板电池或UPS不间断电源)all_squash(熟记) 不管访问NFS Server共享目录的用户身份如何,它的权限都将被压缩为匿名用户,同时它的UID和GID都会变成nfsnobody账号身份,在早期多个NFS客户端同时读写NFS Server数据时,这个参数很有用,在生产环境中配置NFS的重要技巧:1)确保所有客户端服务器对NFS共享目录具备相同的用户访问权限,all_squash把所有客户端都压缩成匿名用户(UID相同),就是anonuid,anongid指定的UID和GID相同,2)所有的客户端和服务器端都需要有一个相同的UID和GID的用户,nfsnodoby(UID必须相同)anonuid(熟记) 参数以anon*开头即值anonymous匿名用户,这个用户的UID设置值通常为nfsnobody的UID值,当然我们也可以自行设置这个UID值。但是,UID必须存在于/etc/passwd中。在多个NFS Clients时,如多台web server共享一个NFS目录时,通过这个参数可以使得不同的NFS Clients写入的数据对所有NFS Clients保持同样的用户权限,即为配置的匿名UID对应用户权限,这个参数很有用。一般默认就好anongid(熟记) 同anonuid,区别是把uid(用户id)换成gid(组id)ro 表示只读权限
客户端挂载:
[root@zabbix ~]# showmount -e 172.16.22.247Export list for 172.16.22.247:/home/nfsdir 172.16.22.0/24[root@zabbix ~]# mount | grep nfsnfsd on /proc/fs/nfsd type nfsd (rw,relatime)sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)172.16.22.247:/home/nfsdir on /mnt type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.16.22.233,local_lock=none,addr=172.16.22.247)[root@zabbix ~]# df -h | grep nfs172.16.22.247:/home/nfsdir 76G 24G 53G 31% /mnt
客户端:
[root@zabbix ~]# echo -e "testnfs\nmysql\n" > /mnt/testnf.txt-rw-r--r-- 1 www www 15 Mar 16 01:28 testnf.txt[root@zabbix ~]# ll /mnt/total 8-rw-r--r-- 1 www www 15 Mar 16 2018 testnf.txt[root@zabbix ~]# id wwwuid=1000(www) gid=1000(www) groups=1000(www)[root@zabbix ~]#
转载于:https://blog.51cto.com/235571/2130367