NFS安装
young / / / 阅读量

简介

NFS是Network File System的缩写,即网络文件系统。客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下。
RPC

因为NFS支持的功能很多,不同功能会使用不同程序来启动,因此,NFS对应的功能所对应的端口无法固定。
端口不固定造成客户端与服务端之间的通信障碍,所以需要RPC来从中帮忙。

NFS启动时会随机取用若干端口,然后主动向RPC服务注册取用相关端口和功能信息,RPC使用固定端口111来监听来自NFS客户端的请求,并将正确的NFS服务端口信息返回给客户端,这样客户端与服务端就可以进行数据传输了。

NFS的工作流程

1、由程序在NFS客户端发起存取文件的请求,客户端本地的RPC(rpcbind)服务会通过网络向NFS服务端的RPC的111端口发出文件存取功能的请求。
2、NFS服务端的RPC找到对应已注册的NFS端口,通知客户端RPC服务。
3、客户端获取正确的端口,并与NFS daemon联机存取数据。
4、存取数据成功后,返回前端访问程序,完成一次存取操作。

所以无论客户端,服务端,需要使用NFS,必须安装RPC服务。

NFS服务安装配置

yum install nfs-utils rpcbind -y

启动rpcbind服务

systemctl enable nfs rpcbind --now

NFS服务端配置

vim /etc/exports

exports文件配置格式:

NFS共享的目录 NFS客户端地址1(参数1,参数2,…) 客户端地址2(参数1,参数2,…)

说明:

NFS共享目录:

要用绝对路径,可被nfsnobody读写。

NFS客户端地址:

指定IP: 192.168.0.1

指定子网所有主机: 192.168.0.0/24

指定域名的主机: test.com

指定域名所有主机: *.test.com

所有主机: *

参数:

ro:目录只读
rw:目录读写
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async:将数据先保存在内存缓冲区中,必要时才写入磁盘
all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody)
no_all_squash:与all_squash取反(默认设置)
root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置)
no_root_squash:与rootsquash取反
anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx)
anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户

例如:

/data/nfs_data 192.168.0.0/16(rw,sync,no_root_squash)

创建需要共享的目录

mkdir -p /data/tmp

chown nfsnobody.nfsnobody /data/tmp

重新加载nfs配置

exportfs -rv

查看nfs服务器挂载情况

showmount -e localhost

挂载测试

注意如在其它机器挂在请开放对应端口(tcp/2049)

mkdir -p /data/tmp2
mount -t nfs 192.168.1.233:/data/tmp /data/tmp2

# 查看挂载
df -h

# 在tmp下创建文件
touch /data/tmp/1.txt

#查看tmp2下是否有文件
ls /data/tmp2

#卸载挂载
umount /data/tmp2
支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章