NFS Network File System 网络文件系统

Network File System 网络文件系统

NFS基本概念

NFS(Network File System)是一种分布式文件系统协议,用于在网络上共享文件系统。它允许远程计算机系统通过网络访问共享的文件和存储资源,就好像它们是本地文件一样。NFS通常用于在UNIX和类UNIX操作系统之间共享文件,允许用户在网络上共享和访问文件。

NFS工作方式

NFS的工作方式是,服务器端将文件系统挂载(Mount)到网络上,客户端系统可以通过NFS协议访问这些挂载的文件系统。客户端可以读取、写入和执行这些文件,就像它们是本地文件一样。NFS提供了透明的访问,用户可以像操作本地文件一样操作远程文件。

NFS工作流程
  1. 客户端请求挂载文件系统:客户端发起一个请求,要求将远程服务器上的特定文件系统挂载到本地系统上。通常,这是通过操作系统提供的mount命令或者在系统启动时自动挂载完成的。
  2. 服务器确认请求:服务器收到挂载请求后,会验证客户端的身份和权限。如果客户端被授权访问该文件系统,服务器会允许挂载操作。
  3. 建立连接:一旦服务器确认挂载请求,它会与客户端建立连接。通常,这个连接是通过TCP/IP网络建立的,因为NFS是基于网络的。
  4. 传输数据:一旦连接建立,客户端可以向服务器发送文件访问请求。这包括读取、写入和执行文件等操作。客户端向服务器发送NFS请求,服务器响应并传输所需的数据。
  5. 断开连接:当文件访问操作完成后,或者客户端不再需要文件系统时,可以断开与服务器的连接。这通常通过取消挂载操作来完成,即使用操作系统提供的umount命令。
    在这里插入图片描述
CentOS 7.9使用NFS

在CentOS 7系统中,需要安装nfs-utils,rpcbind软件包来提供NFS共享服务
前者用于NFS共享发布和访问,后者用于RPC支持。
手动加载NFS共享服务时,应该先启动rpcbind,再启动NFS
NFS端口为2049,RPC端口:111

NFS配置选项
  1. /etc/exports:这是NFS服务器的主要配置文件,用于指定要共享的文件系统以及允许访问这些文件系统的客户端。每行配置通常包括共享的路径、允许访问的客户端、权限选项等。
/shared/path *(rw,sync)
  1. rw:允许客户端对共享的文件系统进行读写操作。
    ro:仅允许客户端对共享的文件系统进行只读操作。
  2. sync:同步写入操作,即在数据写入到NFS服务器之前,要求客户端确认数据已经成功写入。这可以确保数据的完整性,但可能会影响性能。
    async:异步写入操作,即在数据写入到NFS服务器之后,才向客户端发送确认消息。这会提高性能,但可能会影响数据的完整性。
  3. root_squash:将客户端以root用户身份访问共享的文件系统时,映射为匿名用户,通常是nobody用户。这有助于防止潜在的安全风险,因为root用户可能会访问到其他客户端不应该访问的文件。
    no_root_squash:允许客户端以root用户身份访问共享的文件系统,不进行映射。
  4. all_squash:将所有客户端的UID和GID映射为匿名用户,通常是nobody用户。
    anonuid和anongid:分别指定匿名用户的UID和GID,用于替代客户端的UID和GID。
  5. secure:只允许使用安全的NFS协议进行访问,如NFSv3或NFSv4。
    insecure:允许使用不安全的NFS协议进行访问,如NFSv2。
  6. fsid:用于指定唯一标识共享的文件系统。通常用于NFSv4的配置中。
  7. fsid=0:用于指定根文件系统,通常在NFSv4中使用。
NFS常用命令
  1. mount:用于将远程NFS文件系统挂载到本地文件系统上。
mount -t nfs server:/remote/path /local/mount/point
# mount -t nfs 192.168.48.6:/opt /mnt
# 将NFS服务端192.168.48.6下的/opt挂载到/mnt下
  1. umount:用于卸载已挂载的NFS文件系统。
umount /local/mount/point
  1. showmount:用于显示NFS服务器上共享的文件系统。
showmount -e # 查看本机发布的NFS共享目录
showmount -e server
# showmount -e 192.168.48.6
# 查看192.168.48.6发布的NFS共享目录
  1. exportfs:用于管理NFS服务器上共享的文件系统。
exportfs -a # 导出所有共享
exportfs -r # 重读配置文件(重新导出已导出的共享)
exportfs -u /path # 取消对指定路径的共享
exportfs -v # 查看详细的NFS信息
  1. rpcinfo:用于显示NFS服务器上的RPC信息。
rpcinfo -p server
# rpcinfo -p localhost
# 查看rpc注册的端口信息
NFS服务端配置
  1. 检查并安装软件
rpm -q rpcbind nfs-utils
yum install -y rpcbind nfs-utils
  1. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  1. 查看防火墙状态
systemctl status firewalld

在这里插入图片描述
4. 创建共享目录

vim /etc/exports # NFS的配置文件,默认文件内容为空(无任何共享)
/opt *(rw,sync,no_root_squash)
# 设置/opt为共享目录,允许任意网段的IP地址主机访问
  1. 启动NFS服务
systemctl start rpcbind # 一定要先开启rpcbind服务
systemctl start nfs # 如服务已启动,更改完配置信息后需要重启服务
  1. 查看服务端的共享目录及网段
showmount -e

在这里插入图片描述
7. 查看服务端的NFS详细信息

exportfs -v

在这里插入图片描述

NFS客户端配置
  1. 检查并安装软件
rpm -q rpcbind nfs-utils
yum install -y rpcbind nfs-utils
  1. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  1. 检查防火墙状态
systemctl status firewalld

在这里插入图片描述
4. 启动NFS服务

systemctl start rpcbind
systemctl start nfs
  1. 将共享目录挂载到本地
showmount -e 192.168.64.130
mount -t nfs 192.168.64.130:/opt /mnt
df -h

在这里插入图片描述
在这里插入图片描述

服务测试
  1. 在NFS服务端创建文件test.txt,写入内容
vim /opt/test.txt
This is a test for NFS service!
cat /opt/test.txt

在这里插入图片描述
2. 在NFS客户端查看test.txt文件

ls /mnt

在这里插入图片描述

cat /mnt/test.txt

在这里插入图片描述

出现的报错
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
# 服务端的防火墙没有关闭,导致RPC端口无法正确启动
  1. 查看服务端的防火墙
systemctl status firewalld
  1. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 14
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值