在 Linux 里实现 NFS 优化配置

2024-06-04 09:36:07 浏览数 (2)

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:允许指定的网络掩码访问。

0 人点赞