NFS网络文件系统的搭建

NFS到底是个什么东西?
  简而言之,就是一个文件系统,用来存储文件。
  与其他文件系统所不同的是,这个文件系统在客户端使用上避免了调用API等繁琐的方式,只需要将NFS客户端上的路径和NFS服务器上的路径进行挂载mount(客户端的路径挂在到服务器上的路径)。
  这样,客户端就可以直接在自己的文件路径中写入文件,写入的文件可以在所有挂载在同一个NFS服务器路径下的所有的客户端的路径下可见。同样,其他客户端在挂载路径下写入和修改的操作,对其他客户端和服务端都是可见的。
  两个字,丝滑~~~~~

搭建过程

环境

node02:192.168.23.13   NFS服务端
node03:192.168.23.14   NFS客户端
操作系统:Linux centos 6.5

先准备服务端,这样客户端才有地方挂载!

网上NFS的架构图一大堆,简单来说,就是NFS的服务每次启动的端口都不一样,这样我们的客户端没办法去找到服务端的接口去进行操作,所以需要一个rpc工具,这样客户端就可以在访问NFS前先去访问rpc获得在rpc上注册的NFS的各个服务的端口,这样客户端就可以访问正确的NFS端口了。
  因此有两个个非常重要的点,

  1. 一个NFS服务需要安装两个工具:rpcbindnfs-utils
  2. RPC的服务要在NFS服务启动前启动,用于NFS服务注册端口
搭建服务端:
1,安装工具
yum install nfs-utils rpcbind -y

在这里插入图片描述

2,创建挂载目录

创建一个文件夹,用于其他客户端进行挂载。

mkdir -p /home/shareDir
3,将文件夹的权限所属赋给NFS安装时所创建的用户及用户组
chown -R nfsnobody.nfsnobody /home/shareDir/

在这里插入图片描述

4,编辑NFS配置文件,设置挂载点,及访问权限等
vi /etc/exports

内容:

/home/shareDir 192.168.23.0/24(rw,sync,no_root_squash)

格式:挂载点 访问机器IP(权限)

权限

参数解释
Ro该主机对该共享目录有只读权限
Rw该主机对该共享目录有读写权限
sync数据同步写入硬盘。
async不同步写在硬盘中,在内存中缓存,这样速度更快,但是在极端情况下可能丢失数据
no_root_squash不压制root权限,用root登录nfs,身份就是root
root_squash压制root权限 ,使用root登录nfs,身份自动切换为nfsnobody,nfsnobody是一个匿名用户
5,启动rpc服务和nfs服务

注意启动先后顺序

--  先启动 rpc 服务
[root@node02 home]# /etc/init.d/rpcbind start
Starting rpcbind:                                          [  OK  ]
[root@node02 home]# /etc/init.d/rpcbind status
rpcbind (pid  1535) is running...
-- 再启动 NFS 服务
`[root@node02 home]# /etc/init.d/nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
[root@node02 home]# /etc/init.d/nfs status
rpc.svcgssd is stopped
rpc.mountd (pid 1637) is running...
nfsd (pid 1652 1651 1650 1649 1648 1647 1646 1645) is running...
6,查看本机rpc信息
rpcinfo -p localhost

在这里插入图片描述
  注意端口为1112049的服务,分别是rpc提供的服务和nfs主要提供服务的端口,只有这两个端口是固定的。

7,查看本机可以对外提供的挂载点和可访问的IP
[root@node02 home]# showmount -e localhost
Export list for localhost:
/home/shareDir 192.168.23.0/24
8,至此服务端基本上就准备好了

为什么说基本上?因为服务端的相关的端口可能未加进防火墙,客户端访问的时候会报错。

注意,此处是客户端访问
[root@node03 home]# showmount -e 192.168.23.13
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)

因此需要将服务端对外访问的111端口和2049端口设置进防火墙,为了省事,我关闭了防火墙。

[root@node02 home]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]

然后客户端就可以访问,服务端可以挂在的挂载点了。

[root@node03 home]# showmount -e 192.168.23.13
Export list for 192.168.23.13:
/home/shareDir 192.168.23.0/24

9,至此服务端基本上就又准备好了

为什么要说又呢?
 因为我们有时候会需要去修改我们的服务端的配置文件/etc/exports,让其去生成不同的挂在规则,这个时候有一些点就需要去注意了。
 
例如:

[root@node02 ~]# vi /etc/exports 
/home/shareDir 192.168.23.14/24(rw,sync,no_root_squash)
[root@node02 ~]# exportfs -rv
exporting 192.168.23.14/24:/home/shareDir

我们重新设置了,这个挂载点只能192.168.23.14的IP进行挂载。要让其生效,我们需要执行命令exportfs -rv

ok  服务可以了!


搭建客户端:

搭建客户端非常的简单,和服务端一样,我们需要安装nfs-utilsrpcbind

1,安装工具
yum install nfs-utils rpcbind -y
2,创建挂载目录
[root@node03 ~]# mkdir -p /home/shareDir
[root@node03 ~]# cd /home/shareDir/
3,查看服务端的挂载策略
[root@node03 home]# showmount -e 192.168.23.13
Export list for 192.168.23.13:
/home/shareDir 192.168.23.0/24

[root@node03 home]# df -Th
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/sda3      ext4    97G  1.1G   91G   2% /
tmpfs          tmpfs  495M     0  495M   0% /dev/shm
/dev/sda1      ext4   194M   28M  157M  15% /boot

可以看到服务端目前允许IP为192.168.23.0 子网掩码为255.255.255.0 的网段进行挂载。
允许挂载的目录为/home/shareDir
同时,我们使用的了dh -Th查看了目前,客户端的磁盘挂载情况。等下我们挂载NFS服务端后我们对比看下。

4,将需要的文件夹挂载在服务端

命令行:mount -t nfs 服务器IP:服务端挂载目录 本机挂载目录

[root@node03 home]# mount -t nfs 192.168.23.13:/home/shareDir/ /home/shareDir/
[root@node03 home]# df -Th
Filesystem                    Type   Size  Used Avail Use% Mounted on
/dev/sda3                     ext4    97G  1.1G   91G   2% /
tmpfs                         tmpfs  495M     0  495M   0% /dev/shm
/dev/sda1                     ext4   194M   28M  157M  15% /boot
192.168.23.13:/home/shareDir/ nfs     97G  1.1G   91G   2% /home/shareDir

挂载完毕后我们可以看到我们的本机的磁盘挂载下出现了一条挂载记录。
文件系统为:192.168.23.13:/home/shareDir/ 系统类型为nfs 以及大小、使用率等和在本机的挂载目录。


测试

1,服务端新增文件 客户端查看

服务端:

[root@node02 shareDir]# touch 1.txt
[root@node02 shareDir]# ll
total 0
-rw-r--r--. 1 root root 0 Apr 23 23:56 1.txt

客户端:

[root@node03 shareDir]# ll
total 0
-rw-r--r--. 1 nfsnobody nfsnobody 0 Apr 23 23:56 1.txt

可以看到服务端新增文件,我们在客户端的挂载目录中可以进行访问。

2,客户端新增文件 服务端查看

客户端:

[root@node03 shareDir]# touch 2.txt
[root@node03 shareDir]# ll
total 0
-rw-r--r--. 1 nfsnobody nfsnobody 0 Apr 23 23:56 1.txt
-rw-r--r--. 1 root      root      0 Apr 24 00:51 2.txt

服务端:

[root@node02 shareDir]# ll
total 0
-rw-r--r--. 1 nfsnobody nfsnobody 0 Apr 23 23:56 1.txt
-rw-r--r--. 1 root      root      0 Apr 24 00:51 2.txt

可见,NFS文件系统可以实现,多台服务器上的文件的共享服务,在对文件的访问,修改等操作上,可以实现像在本机操作一样的。使用起来非常方便。

以上,是本人的一次NFS的搭建过程的记录,浅陋的很,网上有很多大牛的教程,都可以拿来拜读。

参考此教程,非常的清除:NFS文件服务器的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NFS(Network File System)是一种允许网络中的计算机通过TCP/IP网络共享资源的文件系统。在NFS的应用中,客户端可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。使用NFS可以方便地将文件从PC复制到开发板上进行调试,省去了频繁插拔U盘的麻烦。要实现NFS文件系统,需要在PC的Ubuntu系统上搭建NFS服务器,并设置共享目录,然后在开发板上挂载该共享目录,实现文件传输的功能。具体步骤如下: 1. 在PC上配置NFS服务器。可以按照引用\[2\]中提供的相关简介进行配置,设置共享目录。 2. 在开发板上配置NFS客户端。可以按照引用\[3\]中提供的配置命令进行设置,包括打开网卡、分配IP和挂载NFS共享目录。 3. 完成配置后,就可以在虚拟机中编译C文件,并将编译好的文件拷贝到共享目录中。 4. 在开发板上挂载共享目录,并将文件从共享目录拷贝到开发板目录中运行。 这样就完成了NFS网络文件系统搭建,可以实现文件在PC和开发板之间的传输和共享。 #### 引用[.reference_title] - *1* *2* *3* [【Linux】新唐NUC977挂载NFS实现网络文件传输](https://blog.csdn.net/qq_43581670/article/details/124859735)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值