2024-06-04 09:36:07
浏览数 (1)
NFS
- NFS 是 Network File System(网络文件系统)的缩写。它是一种分布式文件系统协议,允许客户端通过网络访问服务器上的文件和目录,就如同这些文件和目录在本地一样,从而实现跨网络的文件共享和协同工作。
应用
- 数据共享与集中管理:
- 可以将服务器上的特定目录共享给多个客户端,实现数据的集中存储和管理,方便多个节点协同工作和访问相同的数据资源。
- 简化配置和管理:
- 客户端无需在本地重复配置大量数据,只需挂载服务器的共享目录即可,大大减少了配置工作量和复杂性。
- 提高灵活性:
- 可以动态地添加或调整共享目录,而无需对客户端进行大规模的更改。
- 节省存储空间:
- 避免了每个客户端都重复存储相同的数据,有效地利用存储空间。
- 跨平台支持:
- 通常可以在不同操作系统的客户端和服务器之间实现良好的兼容性。
- 高效协作:
- 为分布式系统中的多个节点提供了便捷的共享数据途径,有利于团队成员之间高效地协作和信息共享。
配置
代码语言:javascript
复制# 安装
sudo yum install -y nfs-utils rpcbind
# 启动
sudo systemctl start nfs-server
sudo systemctl start nfs-server
# 开机自启
sudo systemctl enable nfs-server
sudo systemctl enable rpcbind
# 创建共享目录并赋权
mkdir /var/nfsshare
chmod 755 /var/nfsshare
# 编辑共享配置 /etc/exports 参数含义请移步文章结尾
/var/nfsshare/ 135.123.56.98(ro,sync,no_root_squash)
# 重启nfs
sudo systemctl restart nfs-server.service
# 查看nfs状态
sudo systemctl status nfs-server.service
# 监听端口
netstat -ntpl|grep 2049
# 配置防火墙
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='135.123.56.98' port protocol='tcp' port='2049' accept"
# 重启防火墙
firewall-cmd --reload
# 查看规则
firewall-cmd --zone=public --list-rich-rules
# 客户端配置
# 安装
sudo yum install nfs-utils
# 启动
sudo yum install nfs-utils
mkdir /mnt/nfs
# 此处IP为NFS服务端IP
sudo mount -t nfs 112.181.152.86:/var/nfsshare /mnt/nfs
NFS 参数说明:
- sync:数据同步写入到内存和磁盘中,保证数据持久性。
- async:数据会先暂存于内存,然后再写入磁盘。
- ro:将共享目录设置为只读。
- rw:将共享目录设置为可读写。
- no_root_squash:当NFS客户端以root用户访问共享目录时,它会拥有对应的超级用户权限。
- root_squash:NFS客户端以root用户访问共享目录时,它的权限会被限制为匿名用户。
- all_squash:不管NFS客户端的用户是谁,它的权限都会被限制为匿名用户。
- anonuid=:指定NFS服务器上匿名用户的UID。
- anongid=:指定NFS服务器上匿名用户的GID。
- secure:限制NFS通过1024以下的端口发送。
- insecure:允许NFS通过大于1024的端口发送。
- wdelay:默认设置,写操作将被延迟,直到TCP协议栈有时间批处理数据。
- no_wdelay:取消写操作的延迟。
- subtree_check:当一个NFS共享被挂载时,NFS会检查父目录的权限,默认设置。
- no_subtree_check:不检查父目录的权限。
- hostname:允许指定的主机访问。
- netaddr:允许指定的网段访问。
- mask:允许指定的网络掩码访问。