NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它容许网络中的计算机之间经过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用能够透明地读写位于远端NFS服务器上的文件,就像访问本地文件同样。NFS的数据传输基于RPC(remote procedure call)协议。mysql
A,B,C三台机器上须要被访问到的文件是同样的,A共享数据出来,B和C分别取挂载A共享的数据目录,从而B和C访问到的数据和A上的一致。sql
准备两台虚拟机,一台做为服务端,一台做为客户端。vim
IP:192.168.8.130服务器
[root@1 ~]# yum install -y nfs-utils rpcbind
[root@1 ~]# vim /etc/exports /home/nfstestdir 192.168.8.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000) #指定要进行分享的目录;指定要共享该目录的机器 建立分享目录并制定权限: [root@1 ~]# mkdir /home/nfstestdir [root@1 ~]# chmod 777 /home/nfstestdir
在yum安装完成后,系统会自动启动rpcbind服务(在服务端进程名称为systemd),默认监听的端口时111端口。网络
[root@1 ~]# systemctl start nfs 将NFS服务加入开机启动项: [root@1 ~]# systemctl enable nfs
IP:192.168.8.132app
[root@1 ~]# yum install -y nfs-utils
[root@1 ~]# showmount -e 192.168.8.130 clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
报错: 没法链接到服务端机器(网络不通)!
解决办法:async
解决完上述错误后再次执行命令:工具
[root@1 ~]# showmount -e 192.168.8.130 Export list for 192.168.8.130: /home/nfstestdir 192.168.8.0/24
即,客户端能够正常访问服务端机器。测试
[root@1 ~]# mount -t nfs 192.168.8.130:/home/nfstestdir /mnt/ [root@1 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 192.168.8.130:/home/nfstestdir 18G 7.5G 11G 42% /mnt
在客户机挂载目录建立文件:ui
[root@1 ~]# cd /mnt/ [root@1 mnt]# ll 总用量 0 -rw-r--r-- 1 mysql mysql 0 8月 23 19:50 test123
查看服务端共享目录:
[root@1 ~]# ll /home/nfstestdir/ 总用量 0 -rw-r--r--. 1 mysql mysql 0 8月 23 19:50 test123
即,实现了同步共享!
[root[@localhost](https://my.oschina.net/u/570656) ~]# vim /etc/exports /home/nfstestdir 192.168.8.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000) #指定要进行分享的目录;指定要共享该目录的机器 #rw 读写;ro 只读 #sync 同步模式,内存数据实时写入磁盘 #async 非同步模式 #no_root_squash 客户端挂载NFS服务后,root用户不受约束,权限很大 #root_squash 与上面选项相对,客户端上的root用户受到约束,被限定成某个普通用户 #all_squash 客户端上全部用户在使用NFS共享目录时都被限定为一个普通用户 #anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid