在Linux上导出NFS共享---网络文件系统

目录

一、NFS介绍

[二、NFS 所需要的服务](#二、NFS 所需要的服务)

三、搭建NFS服务器共享文件到客户端

在虚拟机129上配置:

在虚拟机135上配置

测试

四、autofs自动挂载

1、安装软件启动

[2、编写 /etc/auto.master,在里面添加内容如下](#2、编写 /etc/auto.master,在里面添加内容如下)

[3、编写 /etc/auto.nfs,其内容如下](#3、编写 /etc/auto.nfs,其内容如下)

4、重启测试查看


一、NFS介绍

NFS是允许远程主机通过网络挂载文件系统,并像它们挂载在本地那样与这些⽂件系统进⾏交互。

NFS服务器参考/etc/exports配置文件

二、NFS 所需要的服务

|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| nfsd | 为共享 NFS ⽂件系统请求的 NFS 服务器内核模块。 |
| rpcbind | 接受本地 RPC 服务的端⼝保留。这些端⼝随后可⽤(或公布出去),这样相应的远程 RPC 服务可以访问它们。 rpcbind 服务响应对 RPC 服务的请求,并建⽴到请求的 RPC 服务的连接。这不能与 NFSv4 ⼀起使⽤。 |
| rpc.mountd | NFS 服务器使⽤这个进程来处理来⾃ NFSv3 客⼾端的 MOUNT 请求。它检查所请求的 NFS 共享是否⽬前由 NFS 服务器导出,并且允许客⼾端访问它。如果允许挂载请求, nfs- mountd 服务会回复 Success 状态,并将此 NFS 共享的⽂件句柄返回给 NFS 客⼾端。 |
| rpc.nfsd | 这个过程启⽤了要定义的服务器公告的显式 NFS 版本和协议。它与 Linux 内核⼀起使 ⽤,来满⾜ NFS 客⼾端的动态需求,例如,在每次连接 NFS 客⼾端时提供服务器线 程。这个进程对应于 nfs- server 服务。 |
| lockd | 这是⼀个在客⼾端和服务器中运⾏的内核线程。它实现⽹络锁管理器(NLM)协议,它允 许 NFSv3 客⼾端锁住服务器上的⽂件。每当运⾏ NFS 服务器以及挂载 NFS ⽂件系统时,它会⾃动启动。 |
| rpc.statd | 这个进程实现⽹络状态监控器(NSM)RPC 协议,该协议可在NFS 服务器没有正常关机⽽ 重启时通知 NFS 客⼾端。 rpc-statd 服务由 nfs- server 服务⾃动启动,不需要⽤⼾配置。这不能与 NFSv4 ⼀起使⽤。 |
| rpc.rquotad | 这个过程为远程⽤⼾提供⽤⼾配额信息。启动 nfs- server 时,⽤⼾也必须启动 quota- rpc 软件包提供的 rpc- rquotad 服务。 |
| rpc.idmapd | 此进程为 NFSv4 客⼾端和服务器提供上⾏调⽤,这些调⽤在线上 NFSv4 名称 ( *user* @* domain* 形式的字符串)和本地UID 和 GID 之间进⾏映射。要使 idmapd 与 NFSv4 正常⼯作,必须配置 /etc/idmapd.conf ⽂件。⾄少应指 定 Domain 参数,该参数定义 NFSv4 映射域。如果 NFSv4 映射域与 DNS 域名相 同,可以跳过这个参数。客⼾端和服务器必须同意 NFSv4 映射域才能使 ID 映射正常⼯ 作。只有 NFSv4 服务器使⽤ pc.idmapd ,它由 nfs- idmapd 服务启动。 NFSv4 客⼾端使⽤基于密钥环的 nfsidmap ⼯具,内核按需调⽤它来执⾏ ID 映射。 如果 nfsidmap 有问题,客⼾端将退回使⽤ rpc.idmapd 。 |

NFSv4的RPC服务:
挂载和锁定协议已合并到 NFSv4 协议中。该服务器还会监听已知的 TCP 端⼝ 2049。因此,
NFSv4 不需要与 rpcbind 、 lockd 和 rpc- statd 服务进⾏交互。NFS 服务器上
仍然需要 nfs- mountd 服务来设置导出,但不涉及任何线上操作。

三、搭建NFS服务器共享文件到客户端

开启两个虚拟机129,135,一个作为NFS服务器来共享文件,另一个通过挂载来接受其共享的文件

在虚拟机129上配置:

1、安装nfs,并启动服务
2

bash 复制代码
dnf install nfs-utils
systemctl start nfs-server

2、在本地服务器写共享文件

bash 复制代码
mkdir /nfs
vim /etc/exports #写共享的对象
cat /etc/exports
/nfs    192.168.5.135(rw)
exportfs -r #通过此命令来共享

可以使用showmount -e 192.168.5.135查看挂载共享的内容。

3、放行防火墙

bash 复制代码
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mounted
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --reload

在虚拟机135上配置

1、安装nfs,并启动服务

bash 复制代码
dnf install nfs-utils
systemctl start nfs-server

2、写相互之间共享的文件目录,并放行防火墙

bash 复制代码
mkdir /haha
mount 192.168.5.129:/nfs /haha #将129的/nfs文件挂载共享到/haha
df -h /haha/ #通过该命令来查看其挂载点 

测试

在虚拟机129创建文件

在虚拟机135上创建文件,也可以看到虚拟机129创建的文件:

(在nfs服务器虚拟机129上查看客户机创建的文件:相互之间可以创建文件共享)

四、autofs自动挂载

在⼀般NFS⽂件系统的使⽤过程中,如果客⼾端要使⽤服务端所提供的⽂件系统,可以在
/etc/rc.d/rc.local 中设置开机时⾃动挂载( /etc/rc.d/rc.local ⽂件中写⼊的命令,在每次启
动系统⽤⼾登录之前都会执⾏⼀次);也可以在登录系统后⼿动利⽤mount来挂载。 由于⽹络的问题,NFS服务器与客⼾端的连接不会⼀直存在,当我们挂载了NFS服务器之后, 任何⼀⽅脱机都可能造成另外⼀⽅等待超时。为了解决这样的问题,就出现了下⾯的想法:
当客⼾端在有使⽤NFS⽂件系统的需求时才让系统⾃动挂载。
当NFS⽂件系统使⽤完毕后,让NFS⾃动卸载。
于是就产⽣了autofs这个服务。

其只需要在客户机上配置即(虚拟机135)

1、安装软件启动

bash 复制代码
yum install autofs -y
systemctl start autofs

2、编写 /etc/auto.master,在里面添加内容如下

3、编写 /etc/auto.nfs,其内容如下

bash 复制代码
nfs  192.168.5.129:/nfs

4、重启测试查看

在/haha目录下出现/nfs,就成功了

相关推荐
tuokuac2 小时前
docker中nginx配置报错解决
linux·运维·服务器
掘根2 小时前
【消息队列项目】虚拟机管理实现
网络
Joren的学习记录3 小时前
【Linux运维大神系列】docker详解(四)
linux·运维·docker
老王熬夜敲代码3 小时前
网络中数据传输的具体过程
linux·网络·笔记
Elastic 中国社区官方博客4 小时前
让我们把这个 expense 工具从 n8n 迁移到 Elastic One Workflow
大数据·运维·elasticsearch·搜索引擎·ai·信息可视化·全文检索
汤愈韬4 小时前
TK_网络基础和常见攻击(笔记)
网络·笔记
( •̀∀•́ )9205 小时前
GitHub Actions SSH 部署密钥
运维·ssh·github
louqle5 小时前
docker基本知识及常用命令汇总
运维·docker·容器
学烹饪的小胡桃5 小时前
【运维学习】实时性能监控工具 WGCLOUD v3.6.2 更新介绍
linux·运维·服务器·学习·工单系统
北邮刘老师5 小时前
【智能体互联协议解析】需要“智能体名字系统”(ANS)吗?
网络·人工智能·大模型·智能体·智能体互联网