NFS服务搭建

环境介绍

NFS网络文件系统服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上,从而使得本地主机(Linux客户端)基于TCP/IP协议,像使用本地主机上的资源那样读写远程Linux系统上的共享文件。

安装及配置

  1. 安装nfs软件
[root@elk ~]# yum -y install nfs-utils
已加载插件:fastestmirror
Determining fastest mirrors
base                                                                                                                             | 3.6 kB  00:00:00     
extras                                                                                                                           | 2.9 kB  00:00:00     
updates                                                                                                                          | 2.9 kB  00:00:00     
updates/7/x86_64/primary_db                                                                                                      |  13 MB  00:00:35     
正在解决依赖关系
--> 正在检查事务
---> 软件包 nfs-utils.x86_64.1.1.3.0-0.68.el7.2 将被 安装
--> 正在处理依赖关系 libtirpc >= 0.2.4-0.7,它被软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 需要
--> 正在处理依赖关系 gssproxy >= 0.7.0-3,它被软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 需要
--> 正在处理依赖关系 rpcbind,它被软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 需要
--> 正在处理依赖关系 quota,它被软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 需要
--> 正在处理依赖关系 libnfsidmap,它被软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 需要
--> 正在处理依赖关系 libevent,它被软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 需要
--> 正在处理依赖关系 keyutils,它被软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 需要
--> 正在处理依赖关系 libtirpc.so.1()(64bit),它被软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 需要
--> 正在处理依赖关系 libnfsidmap.so.0()(64bit),它被软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 需要
--> 正在处理依赖关系 libevent-2.0.so.5()(64bit),它被软件包 1:nfs-utils-1.3.0-0.68.el7.2.x86_64 需要
--> 正在检查事务
---> 软件包 gssproxy.x86_64.0.0.7.0-30.el7_9 将被 安装
--> 正在处理依赖关系 libini_config >= 1.3.1-31,它被软件包 gssproxy-0.7.0-30.el7_9.x86_64 需要
--> 正在处理依赖关系 libverto-module-base,它被软件包 gssproxy-0.7.0-30.el7_9.x86_64 需要
--> 正在处理依赖关系 libref_array.so.1(REF_ARRAY_0.1.1)(64bit),它被软件包 gssproxy-0.7.0-30.el7_9.x86_64 需要
--> 正在处理依赖关系 libini_config.so.3(INI_CONFIG_1.2.0)(64bit),它被软件包 gssproxy-0.7.0-30.el7_9.x86_64 需要
--> 正在处理依赖关系 libini_config.so.3(INI_CONFIG_1.1.0)(64bit),它被软件包 gssproxy-0.7.0-30.el7_9.x86_64 需要
--> 正在处理依赖关系 libref_array.so.1()(64bit),它被软件包 gssproxy-0.7.0-30.el7_9.x86_64 需要
--> 正在处理依赖关系 libini_config.so.3()(64bit),它被软件包 gssproxy-0.7.0-30.el7_9.x86_64 需要
--> 正在处理依赖关系 libcollection.so.2()(64bit),它被软件包 gssproxy-0.7.0-30.el7_9.x86_64 需要
--> 正在处理依赖关系 libbasicobjects.so.0()(64bit),它被软件包 gssproxy-0.7.0-30.el7_9.x86_64 需要
---> 软件包 keyutils.x86_64.0.1.5.8-3.el7 将被 安装
---> 软件包 libevent.x86_64.0.2.0.21-4.el7 将被 安装
---> 软件包 libnfsidmap.x86_64.0.0.25-19.el7 将被 安装
---> 软件包 libtirpc.x86_64.0.0.2.4-0.16.el7 将被 安装
---> 软件包 quota.x86_64.1.4.01-19.el7 将被 安装
--> 正在处理依赖关系 quota-nls = 1:4.01-19.el7,它被软件包 1:quota-4.01-19.el7.x86_64 需要
--> 正在处理依赖关系 tcp_wrappers,它被软件包 1:quota-4.01-19.el7.x86_64 需要
---> 软件包 rpcbind.x86_64.0.0.2.0-49.el7 将被 安装
--> 正在检查事务
---> 软件包 libbasicobjects.x86_64.0.0.1.1-32.el7 将被 安装
---> 软件包 libcollection.x86_64.0.0.7.0-32.el7 将被 安装
---> 软件包 libini_config.x86_64.0.1.3.1-32.el7 将被 安装
--> 正在处理依赖关系 libpath_utils.so.1(PATH_UTILS_0.2.1)(64bit),它被软件包 libini_config-1.3.1-32.el7.x86_64 需要
--> 正在处理依赖关系 libpath_utils.so.1()(64bit),它被软件包 libini_config-1.3.1-32.el7.x86_64 需要
---> 软件包 libref_array.x86_64.0.0.1.5-32.el7 将被 安装
---> 软件包 libverto-tevent.x86_64.0.0.2.5-4.el7 将被 安装
---> 软件包 quota-nls.noarch.1.4.01-19.el7 将被 安装
---> 软件包 tcp_wrappers.x86_64.0.7.6-77.el7 将被 安装
--> 正在检查事务
---> 软件包 libpath_utils.x86_64.0.0.2.1-32.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

========================================================================================================================================================
 Package                                架构                          版本                                         源                              大小
========================================================================================================================================================
正在安装:
 nfs-utils                              x86_64                        1:1.3.0-0.68.el7.2                           updates                        413 k
为依赖而安装:
 gssproxy                               x86_64                        0.7.0-30.el7_9                               updates                        111 k
 keyutils                               x86_64                        1.5.8-3.el7                                  base                            54 k
 libbasicobjects                        x86_64                        0.1.1-32.el7                                 base                            26 k
 libcollection                          x86_64                        0.7.0-32.el7                                 base                            42 k
 libevent                               x86_64                        2.0.21-4.el7                                 base                           214 k
 libini_config                          x86_64                        1.3.1-32.el7                                 base                            64 k
 libnfsidmap                            x86_64                        0.25-19.el7                                  base                            50 k
 libpath_utils                          x86_64                        0.2.1-32.el7                                 base                            28 k
 libref_array                           x86_64                        0.1.5-32.el7                                 base                            27 k
 libtirpc                               x86_64                        0.2.4-0.16.el7                               base                            89 k
 libverto-tevent                        x86_64                        0.2.5-4.el7                                  base                           9.0 k
 quota                                  x86_64                        1:4.01-19.el7                                base                           179 k
 quota-nls                              noarch                        1:4.01-19.el7                                base                            90 k
 rpcbind                                x86_64                        0.2.0-49.el7                                 base                            60 k
 tcp_wrappers                           x86_64                        7.6-77.el7                                   base                            78 k

事务概要
========================================================================================================================================================
安装  1 软件包 (+15 依赖软件包)

总下载量:1.5 M
安装大小:4.3 M
Downloading packages:
(1/16): libbasicobjects-0.1.1-32.el7.x86_64.rpm                                                                                  |  26 kB  00:00:03     
(2/16): gssproxy-0.7.0-30.el7_9.x86_64.rpm                                                                                       | 111 kB  00:00:03     
(3/16): keyutils-1.5.8-3.el7.x86_64.rpm                                                                                          |  54 kB  00:00:03     
(4/16): libcollection-0.7.0-32.el7.x86_64.rpm                                                                                    |  42 kB  00:00:00     
(5/16): libevent-2.0.21-4.el7.x86_64.rpm                                                                                         | 214 kB  00:00:00     
(6/16): libnfsidmap-0.25-19.el7.x86_64.rpm                                                                                       |  50 kB  00:00:00     
(7/16): libpath_utils-0.2.1-32.el7.x86_64.rpm                                                                                    |  28 kB  00:00:00     
(8/16): libref_array-0.1.5-32.el7.x86_64.rpm                                                                                     |  27 kB  00:00:00     
(9/16): libtirpc-0.2.4-0.16.el7.x86_64.rpm                                                                                       |  89 kB  00:00:00     
(10/16): libini_config-1.3.1-32.el7.x86_64.rpm                                                                                   |  64 kB  00:00:00     
(11/16): quota-4.01-19.el7.x86_64.rpm                                                                                            | 179 kB  00:00:00     
(12/16): libverto-tevent-0.2.5-4.el7.x86_64.rpm                                                                                  | 9.0 kB  00:00:00     
(13/16): quota-nls-4.01-19.el7.noarch.rpm                                                                                        |  90 kB  00:00:00     
(14/16): tcp_wrappers-7.6-77.el7.x86_64.rpm                                                                                      |  78 kB  00:00:00     
(15/16): rpcbind-0.2.0-49.el7.x86_64.rpm                                                                                         |  60 kB  00:00:00     
(16/16): nfs-utils-1.3.0-0.68.el7.2.x86_64.rpm                                                                                   | 413 kB  00:00:02     
--------------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                                    217 kB/s | 1.5 MB  00:00:07     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : libbasicobjects-0.1.1-32.el7.x86_64                                                                                                1/16 
  正在安装    : libref_array-0.1.5-32.el7.x86_64                                                                                                   2/16 
  正在安装    : libcollection-0.7.0-32.el7.x86_64                                                                                                  3/16 
  正在安装    : libtirpc-0.2.4-0.16.el7.x86_64                                                                                                     4/16 
  正在安装    : rpcbind-0.2.0-49.el7.x86_64                                                                                                        5/16 
  正在安装    : 1:quota-nls-4.01-19.el7.noarch                                                                                                     6/16 
  正在安装    : tcp_wrappers-7.6-77.el7.x86_64                                                                                                     7/16 
  正在安装    : 1:quota-4.01-19.el7.x86_64                                                                                                         8/16 
  正在安装    : keyutils-1.5.8-3.el7.x86_64                                                                                                        9/16 
  正在安装    : libevent-2.0.21-4.el7.x86_64                                                                                                      10/16 
  正在安装    : libnfsidmap-0.25-19.el7.x86_64                                                                                                    11/16 
  正在安装    : libpath_utils-0.2.1-32.el7.x86_64                                                                                                 12/16 
  正在安装    : libini_config-1.3.1-32.el7.x86_64                                                                                                 13/16 
  正在安装    : libverto-tevent-0.2.5-4.el7.x86_64                                                                                                14/16 
  正在安装    : gssproxy-0.7.0-30.el7_9.x86_64                                                                                                    15/16 
  正在安装    : 1:nfs-utils-1.3.0-0.68.el7.2.x86_64                                                                                               16/16 
  验证中      : libtirpc-0.2.4-0.16.el7.x86_64                                                                                                     1/16 
  验证中      : gssproxy-0.7.0-30.el7_9.x86_64                                                                                                     2/16 
  验证中      : 1:quota-4.01-19.el7.x86_64                                                                                                         3/16 
  验证中      : libverto-tevent-0.2.5-4.el7.x86_64                                                                                                 4/16 
  验证中      : libpath_utils-0.2.1-32.el7.x86_64                                                                                                  5/16 
  验证中      : libnfsidmap-0.25-19.el7.x86_64                                                                                                     6/16 
  验证中      : libevent-2.0.21-4.el7.x86_64                                                                                                       7/16 
  验证中      : keyutils-1.5.8-3.el7.x86_64                                                                                                        8/16 
  验证中      : tcp_wrappers-7.6-77.el7.x86_64                                                                                                     9/16 
  验证中      : libcollection-0.7.0-32.el7.x86_64                                                                                                 10/16 
  验证中      : 1:quota-nls-4.01-19.el7.noarch                                                                                                    11/16 
  验证中      : libref_array-0.1.5-32.el7.x86_64                                                                                                  12/16 
  验证中      : libbasicobjects-0.1.1-32.el7.x86_64                                                                                               13/16 
  验证中      : 1:nfs-utils-1.3.0-0.68.el7.2.x86_64                                                                                               14/16 
  验证中      : libini_config-1.3.1-32.el7.x86_64                                                                                                 15/16 
  验证中      : rpcbind-0.2.0-49.el7.x86_64                                                                                                       16/16 

已安装:
  nfs-utils.x86_64 1:1.3.0-0.68.el7.2                                                                                                                   

作为依赖被安装:
  gssproxy.x86_64 0:0.7.0-30.el7_9    keyutils.x86_64 0:1.5.8-3.el7        libbasicobjects.x86_64 0:0.1.1-32.el7  libcollection.x86_64 0:0.7.0-32.el7 
  libevent.x86_64 0:2.0.21-4.el7      libini_config.x86_64 0:1.3.1-32.el7  libnfsidmap.x86_64 0:0.25-19.el7       libpath_utils.x86_64 0:0.2.1-32.el7 
  libref_array.x86_64 0:0.1.5-32.el7  libtirpc.x86_64 0:0.2.4-0.16.el7     libverto-tevent.x86_64 0:0.2.5-4.el7   quota.x86_64 1:4.01-19.el7          
  quota-nls.noarch 1:4.01-19.el7      rpcbind.x86_64 0:0.2.0-49.el7        tcp_wrappers.x86_64 0:7.6-77.el7      

完毕!
  1. 关闭防火墙和selinux
[root@elk ~]# iptables -F
[root@elk ~]# iptables-save
[root@elk ~]# systemctl stop firewalld.service
[root@elk ~]# systemctl disable firewalld.service
[root@elk ~] setenforce 0
[root@elk ~] #getenforce
Permissive
[root@elk ~]# vi /etc/sysconfig/selinux   
SELINUX=disabled
[root@elk ~]# reboot
[root@elk ~]# getenforce
Disabled
  1. 在NFS服务器上建立用于NFS文件共享的目录,并设置足够的权限确保其他人也有写入权限。
[root@elk ~]# mkdir /var/nfs
[root@elk ~]# chmod  -R 777 /var/nfs/
  1. NFS服务程序的配置文件为/etc/exports,默认情况下里面没有任何内容。我们可以按照“共享目录的路径 允许访问的NFS客户端(共享权限参数)”的格式,定义要共享的目录与相应的权限。例如,如果想要把/nfsfile目录共享给192.168.10.0/24网段内的所有主机,让这些主机都拥有读写权限,在将数据写入到NFS服务器的硬盘中后才会结束操作,最大限度保证数据不丢失,以及把来访客户端root管理员映射为本地的匿名用户等,则可以按照下面命令中的格式,将表12-7中的参数写到NFS服务程序的配置文件中。

参数

作用

ro

只读

rw

读写

root_squash

当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户

no_root_squash

当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员

all_squash

无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户

sync

同时将数据写入到内存与硬盘中,保证不丢失数据

async

优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

请注意,NFS客户端地址与权限之间没有空格。

[root@elk ~]# vim /etc/exports
/var/nfs *(rw,sync,root_squash)

在NFS服务的配置文件中巧用通配符能够实现很多便捷功能,就比如匹配IP地址就有三种方法:

第一种是直接写号,代表任何主机都可以访问;

第二种则是192.168.10.通配格式,代表来自192.168.10.0/24网段的主机;

第三种则是直接写对方的IP地址,如192.168.10.20,代表仅允许某个主机进行访问。

  1. 启动和启用NFS服务程序。由于在使用NFS服务进行文件共享之前,需要使用RPC(Remote Procedure Call,远程过程调用)服务将NFS服务器的IP地址和端口号等信息发送给客户端。因此,在启动NFS服务之前
[root@elk ~]# systemctl restart rpcbind
[root@elk ~]# systemctl enable rpcbind
[root@elk ~]# systemctl start nfs-server
[root@elk ~]# systemctl enable nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

NFS客户端的配置步骤也十分简单。先使用showmount命令查询NFS服务器的远程共享信息,其输出格式为“共享的目录名称 允许使用客户端地址”。

参数

作用

-e

显示NFS服务器的共享列表

-a

显示本机挂载的文件资源的情况NFS资源的情况

-v

显示版本号

root@elk ~]# showmount -e 127.0.0.1
Export list for 127.0.0.1:
/var/nfs *

然后在NFS客户端创建一个挂载目录。使用mount命令并结合-t参数,指定要挂载的文件系统的类型,并在命令后面写上服务器的IP地址、服务器上的共享目录以及要挂载到本地系统(即客户端)的目录。

[root@elk ~]# mkdir /var/nfsfile
[root@elk ~]# mount -t nfs 192.168.170.134:/var/nfs /var/nfsfile
[root@elk ~]# df -h
文件系统                  容量  已用  可用 已用% 挂载点
devtmpfs                  900M     0  900M    0% /dev
tmpfs                     910M  435M  476M   48% /dev/shm
tmpfs                     910M  9.7M  901M    2% /run
tmpfs                     910M     0  910M    0% /sys/fs/cgroup
/dev/sda2                  70G   15G   56G   21% /
/dev/sda1                  10G  143M  9.9G    2% /boot
/dev/sda3                  16G   33M   16G    1% /home
tmpfs                     182M     0  182M    0% /run/user/1004
tmpfs                     182M     0  182M    0% /run/user/0
192.168.170.134:/var/nfs   70G   15G   56G   21% /var/nfsfile

挂载成功后就应该能够顺利地看到在执行前面的操作时写入的文件内容了。如果希望NFS文件共享服务能一直有效,则需要将其写入到fstab文件中:

[root@elk ~]# vim /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Fri Sep 24 14:02:17 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=7fe12c48-3968-403b-9905-d0cf7bbb7643 /                       xfs     defaults        0 0
UUID=e31df5ce-846d-4df7-8dd2-410c14baa952 /boot                   xfs     defaults        0 0
UUID=dfc40aff-2407-41eb-87e8-8a6eaf672979 /home                   xfs     defaults        0 0
UUID=c807754e-7f7b-4234-b3c6-7096b053e92b swap                    swap    defaults        0 0
192.168.170.134:/var/nfs                  /var/nfsfile            nfs     defaults        0 0

结束之有话想说

既然看完了那就赶紧去试试吧骚年。👊

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xtgby

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值