NFS (Network File System) 网络文件系统
可以让不同的客户端挂载使用同一个共享目录,将其作为共享存储使用; 常用于互联网中小型网站集群架构后端的数据共享
RPC 管理服务端的 NFS 端口分配,客户端需要传数据,那客户端会先跟服务端的 RPC 请求服务器的端口,得到端口后再建立连接,再传输数据
- 首先服务器端启动RPC服务,并开启111端口
- 启动NFS服务,并向RPC注册端口信息
- 客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口
- 服务端的RPC(portmap)服务反馈NFS端口信息给客户端。
- 客户端通过获取的 NFS 端口来建立和服务端的NFS连接并进行数据的传输。
不能基于不同的用户做对应的访问权限控制 ??
环境介绍
192.168.31.32 nfs 服务端
192.168.31.31 nfs 客户端
服务端
1、服务端安装
# 安装
yum install nfs-utils
# 启动 rpcbind 及 nfs
systemctl start rpcbind && systemctl start nfs
# 防火墙开启对应服务
firewall-cmd --zone=public --permanent --add-service={rpc-bind,mountd,nfs}
firewall-cmd --reload
# 配置共享目录
mkdir /data && chmod 755 /data
vim /etc/exports
/data/ 192.168.31.0/24(rw,sync,no_root_squash,no_all_squash)
# 使共享目录生效
systemctl restart nfs
showmount -e localhost # 查看本地的共享目录
2、共享目录配置选项
/data/ 共享目录
192.168.31.0/24 客户端IP范围
rw 权限, 可读写; ro 可读
sync 数据同步写入到NFS server的硬盘后才返回, 数据安全、性能降低
async 优先将数据保存到内存,硬盘有空档时再写入硬盘,效率更高,但可能造成数据丢失
no_root_squash 如何理解 ??
客户端
Linux 端
# 安装
yum install nfs-utils
# 启动
systemctl start rpcbind
# 创建挂载点/data 及 手动挂载
mkdir /data
mount -t nfs 192.168.31.32:/data /data
mount # 查看挂载情况
df -h
# 自动挂载
vim /etc/fstab
192.168.31.32:/data /data nfs defaults 0 0
systemctl daemon-reload
Win7 端
# 安装 nfs 服务
开始 --> 控制面板 --> 程序和功能 --> 左上侧打开或关闭windows功能 --> NFS 服务 --> 确定
# win cmd 查看 nfs server 共享目录
showmount -e 192.168.31.32
# windows cmd 手动挂载到本地 I盘
mount 192.168.31.32:/data I:
> I: 现已成功连接到 192.168.31.32:/data
> 命令已成功完成
该方式挂载后win7 重启后是否需要重新挂载, 待测试 ??
参考
https://qizhanming.com/blog/2018/08/08/how-to-install-nfs-on-centos-7
https://www.cnblogs.com/hanshanxiaoheshang/p/9236951.html