NFS 介绍
NFS是Network File System的缩写。可以让不同的操作系统,不同的主机通过 TCP/IP 网络共享彼此的资源(文件或目录)。
NFS 在文件传输或者信息传输过程中依赖RPC(remote Procedure Call)协议,远程过程调用RPC协议是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的。
NFS与RPC的关系简单来说,NFS是一个文件系统,而RPC是负责信息的传输的
NFS 服务安装
服务端
# 安装nfs-utils和rpcbind
yum -y install nfs-utils rpcbind
# 启动nfs和rpc服务并加入开机启动
systemctl enable rpcbind nfs --now
# 查看端口注册信息
rpcinfo -p localhost
客户端
# 安装nfs-utils和rpcbind
yum -y install nfs-utils
systemctl enable nfs --now
NFS 配置
在服务端创建一个共享目录
# 创建共享目录
mkdir -p /data/share
# 给共享文件夹赋权
chmod 777 /data/share/
# 修改配置文件
vim /etc/exports
# 共享目录 授权挂载网段 挂载权限
/data/share 192.168.1.0/24(rw,sync,no_root_squash)
# 设置完挂载目录后需要重新加载下nfs配置文件
systemctl reload nfs
常用的NFS挂载参数
参数 | 说明 |
ro | 只读访问 |
rw | 读写访问 |
sync | 数据写入内存时,同时将数据保存到磁盘 |
all_squash | 无论NFS客户端以哪种用户身份访问,均映射为NFS服务器的nfsnobody用户 |
no_all_squash | ⽆论使⽤什么⽤户,都不压缩权限,保留共享文件的UID和GID(默认) |
root_squash | 当NFS客户端以root用户身份访问时,映射为NFS服务器的nfsnobody用户 |
no_root_squash | 当NFS客户端以root身份访问时,映射为NFS服务器的root用户,也就是要为超级用户保留权限。这个选项会留下严重的安全隐患,一般不建议采用 |
anonuid=“ ” | 指定nfs服务器匿名用户的UID |
anongid=“ ” | 指定nfs服务器匿名用户的GID |
查看NFS共享目录
在服务端测试
showmount -e localhost
在客户端测试
showmount -e 192.168.1.200
NFS挂载及使用
去到客户端挂载共享目录
# 此挂载方式是临时挂载机器一重启挂载就会丢失。
mount 192.168.1.200:/data/share /data/
#服务端IP:共享目录 #挂载到本地那个目录
查看挂载
#df -Th|grep nfs
卸载挂载目录
umount /data
永久挂载共享目录
需将挂载目录写入/etc/fstab文件才可实现永久挂载
vim /etc/fstab
192.168.1.200:/data/share /data nfs defaults 0 0
这样就算服务器重启 目录也可以自动挂载