NFS介绍
什么是NFS?
NFS(Network File System,网络文件系统),是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样
NFS的应用场景
A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致
NFS的工作原理
远程客户端进行nfs请求,RPC获得请求,通知PORTMAP(rpcbind)来获取端口号,然后PORTMAP(rpcbind)将可用的端口号传给NFS、RPC,然后NFS模块再进行权限检验,如果有足够的权限,RPC就通过PORTMAP给出的端口进行数据传输,并通过该端口到达客户端。
NFS服务端安装配置
两台机器
A机器IP:192.168.71.131 服务端
B机器IP:192.168.71.132 客户端
A机器 安装 nfs-utils 和 rpcbind 这两个包,执行如下命令yum install -y nfs-utils rpcbind
B机器 安装 nfs-utils 这个包,执行如下命令yum install -y nfs-utils
A机器 编辑文件
vim /etc/exports
在文件中加入1行:/home/nfstestdir 192.168.71.132/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
A机器 创建分享的目录并更改权限为777mkdir /home/nfstestdir
chmod 777 /home/nfstestdir
A机器 启动NFS服务systemctl start nfs
A机器 设置NFS开机启动systemctl enable nfs
NFS配置选项
rw 读写
ro 只读
sync 同步模式,内存数据实时写入磁盘
async 非同步模式
no_root_squash 客户端挂载NFS共享目录后,root用户不受约束,权限很大
root_squash 与上面选项相对,客户端上的root用户收到约束,被限定成某个普通用户
all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid
客户端挂载
showmount命令用于查询NFS服务器的相关信息
查看通讯是否正常,B机器上执行命令showmount -e 192.168.71.131
showmount -e 显示NFS服务器的输出清单
如果出现报错,注意下防火请是否关闭
B机器 挂载磁盘,将磁盘挂载到mount下mount -t nfs 192.168.71.131:/home/nfstestdir /mnt/