14.1 NFS介绍
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS的数据传输基于RPC(remote procedure call)协议。
应用场景
A,B,C三台机器上需要被访问到的文件是一样的,A共享数据出来,B和C分别取挂载A共享的数据目录,从而B和C访问到的数据和A上的一致。
14.2 NFS服务端安装配置
准备两台虚拟机,一台作为服务端,一台作为客户端。
服务端
IP:192.168.196.101
安装NFS工具:
[root@localhost ~]# yum install -y nfs-utils rpcbind
配置
[root@localhost ~]# vim /etc/exports
/data 192.168.196.0/24(rw,sync,no_root_squash)
#指定要进行分享的目录;指定要共享该目录的机器
创建分享目录并制定权限:
[root@localhost ~]# mkdir /home/nfstestdir
[root@localhost ~]# chmod 777 /home/nfstestdir
启动NFS服务
在yum安装完成后,系统会自动启动rpcbind服务(在服务端进程名称为systemd),默认监听的端口时111端口。
[root@localhost ~]# systemctl start nfs
将NFS服务加入开机启动项:
[root@localhost ~]# systemctl enable nfs
客户端
IP:192.168.196.102
安装NFS工具:
[root@adailinux ~]# yum install -y nfs-utils
客户端挂载
检查客户端是否有权限访问服务端文件:
[root@adailinux ~]# showmount -e 192.168.8.130
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
报错: 无法连接到服务端机器(网络不通)!
解决办法:
检查服务端NFS服务是否开启(监听111端口)
如果确认服务端NFS服务已经开启,那么检查防火墙状态,关闭服务端和客户端firewalld和SELinux防火墙
解决完上述错误后再次执行命令:
[root@adailinux ~]# showmount -e 192.168.8.130
Export list for 192.168.8.130:
/home/nfstestdir 192.168.8.0/24
即,客户端可以正常访问服务端机器
开始挂载
[root@adailinux ~]# mount -t nfs 192.168.8.130:/home/nfstestdir /mnt/
[root@adailinux ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
192.168.8.130:/home/nfstestdir 18G 7.5G 11G 42% /mnt
测试
在客户机挂载目录创建文件:
[root@adailinux ~]# cd /mnt/
[root@adailinux mnt]# ll
总用量 0
-rw-r--r-- 1 mysql mysql 0 8月 23 19:50 test123
查看服务端共享目录:
[root@localhost ~]# ll /home/nfstestdir/
总用量 0
-rw-r--r--. 1 mysql mysql 0 8月 23 19:50 test123
即,实现了同步共享!
14.3 NFS配置选项
[root@localhost ~]# vim /etc/exports
/home/nfstestdir 192.168.8.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)