linux系统中之 nfs文件共享

一、NFS

  • NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

  • 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。

  • NFS体系至少有两个主要部分:一台NFS服务器和若干台客户机,客户机通过TCP/IP网络远程访问存放在NFS服务器上的数据。

  • 主要功能是:通过局域网让不同的主机之间可以共享文件或者目录。

  • vim /etc/exports #主配置文件

环境部署:
设置网络服务端和客户端的ip
搭建共享yum源,

  [root@localhost Desktop]# getenforce
  Disabled
  [root@localhost Desktop]# getenforce
  Disabled

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

二、设置nfs文件系统共享

服务端部署

  • 服务安装
    yum install nfs-utils -y #安装nfs文件系统软件
    systemctl start nfs-server #开启服务
    systemctl enable nfs-server.service #设置服务开机自动启动

在这里插入图片描述

  • 防火墙设置:
    [root@localhost westos]# firewall-cmd --add-service=nfs #允许服务器通过防火墙
    success
    [root@localhost westos]# firewall-cmd --add-service=rpc-bind #添加允许进行服务动态端口分配
    success
    [root@localhost westos]# firewall-cmd --add-service=mountd #添加允许进行远程挂载
    success
    在这里插入图片描述

  • 编辑共享说明文件,指定共享目录以及共享方式
    [root@localhost ~]# mkdir /westos #创建新的目录
    [root@localhost ~]# cd /westos/
    [root@localhost westos]# touch file{1…7} #在目录里创建新的文件
    [root@localhost westos]# systemctl status nfs-server #查看nfs服务的状态
    在这里插入图片描述
    [root@localhost westos]# vim /etc/exports #编辑主配置文件,并在文件中指定共享目录以及共享方式。

         /westos    *(sync,ro)             #文件内容:共享目录 所有人可以查看   (同步数据  ,只读挂载)**
    

在这里插入图片描述

      [root@localhost westos]# exportfs  -rv      #使文件生效(刷新内容)
      exporting *:/westos

在这里插入图片描述

客户端部署

   [root@kehu ~]# showmount -e 172.25.254.11
  Export list for 172.25.254.11:
  /westos *
 [root@kehu ~]# mount 172.25.254.11:/westos /mnt
 [root@kehu ~]# df
  Filesystem            1K-blocks    Used Available Use% Mounted on
  /dev/vda1              10473900 6865128   3608772  66% /
  devtmpfs                 469332       0    469332   0% /dev
  tmpfs                    484920     140    484780   1% /dev/shm
  tmpfs                    484920   12760    472160   3% /run
  tmpfs                    484920       0    484920   0% /sys/fs/cgroup
 172.25.254.11:/westos  10473984 4167552   6306432  40% /mnt

#可以看出172.25.254.11:/westos这个共享文件已经挂载在/mnt下了。
在这里插入图片描述

三、设置客户端自动挂载

客户端

  • 在以上设置完成之后,共享目录被挂载在客户端本地目录中,但是一直是处于挂载状态,不论客户端是否使用该共享目录挂载。
  • 实现该共享目录在使用的时候自动挂载在指定的本地目录中,不使用的时候自动卸载。该功能由服务软件autofs实现
  1. 默认挂载

    安装autofs服务
    yum install autofs.x86_64 -y #安装autofs服务,自动挂载软件
    systemctl start autofs #启动服务
    systemctl enable autofs.service #设置服务开机启动

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

[root@kehu ~]# systemctl status nfs
nfs-server.service - NFS Server
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled)
Active: inactive (dead)

[root@kehu ~]# systemctl start autofs
在这里插入图片描述
[root@kehu ~]# cd /net
[root@kehu net]# ls
[root@kehu net]# cd 172.25.254.11
[root@kehu 172.25.254.11]# ls
westos
[root@kehu 172.25.254.116# pwd
/net/172.25.254.11
[root@kehu 172.25.254.11]# cd westos/
[root@kehu westos]# ls
file1 file{1…7} file2 file3 file4 file5 file6 file7
[root@kehu westos]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 10473900 3210856 7263044 31% /
devtmpfs 493408 0 493408 0% /dev
tmpfs 508996 140 508856 1% /dev/shm
tmpfs 508996 13448 495548 3% /run
tmpfs 508996 0 508996 0% /sys/fs/cgroup
172.25.254.116:/westos 10473984 3220992 7252992 31% /mnt
172.25.254.116:/westos 10473984 3220992 7252992 31% /net/172.25.254.116/westos #进入到该目录下则可以看到该目录在使用时会自动被挂载。
在这里插入图片描述

[root@kehu westos]# vim /etc/sysconfig/autofs #设置空闲等待时间
内容:TIMEOUT=3 #设置自动卸载的时间为3秒。一般默认是300秒。
[root@kehu ~]# systemctl restart autofs.service #重新启动服务器,即可看到效果。
注: 看效果时,必须离开工作时自动挂在的目录。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注:
/net/ 为服务autofs 默认的共享挂载目录,可以进行设置将共享文件挂载在指定目录

四、指定共享挂载点

  • 在不愿意将共享目录挂载在默认挂载点的情况下,可以通过设置指定挂载点:

  • /westos/nfshare #为指定的挂载点进行说明
    客户端
    [root@kehu ~]# vim /etc/auto.master #编辑挂载策略文件

     内容:/westos /etc/westos.auto         #挂载点上级目录     指定的挂载配置文件
    

在这里插入图片描述

[root@kehu ~]# vim /etc/westos.auto #编辑指定的挂载配置文件

 内容:nfshare -ro,vers=3    172.25.254.11:/westos   #挂载点的相对路径   挂载参数    以及需要挂载的共享目录 #“vers=3"表示是选择nfs的版本,一般情况可加可不加。具体看nfs版本再考虑是否加。

在这里插入图片描述
[root@kehu ~]# systemctl restart autofs.service #重启服务使得设置生效

测试:
cd /westos/nfshare #直接进入指定的挂载点 实现共享目录的指定挂载点挂载

[root@kehu nfshare]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 10473900 3210748 7263152 31% /
devtmpfs 493408 0 493408 0% /dev
tmpfs 508996 140 508856 1% /dev/shm
tmpfs 508996 13444 495552 3% /run
tmpfs 508996 0 508996 0% /sys/fs/cgroup
172.25.254.116:/westos 10473984 3224832 7249152 31% /westos/nfshare

在这里插入图片描述

五、设置读写权限、设置默认建立文件的用户名称:

  • 读写挂载
    实现客户端对共享目录具有写权限,需要设定:
    1 服务端的该共享目录对其他用户具有写权限
    2 共享目录实现读写共享
    3 客户端进行读写挂载该共享目录

服务端设置
在这里插入图片描述
systemctl restart nfs-server.service #重新启动服务,使得设置生效

客户端设置
在这里插入图片描述

systemctl restart autofs.service #重新启动服务,使得设置生效

测试:客户端挂载共享目录 具有写权限
在这里插入图片描述

  • 设定客户端创建文件的所有者以及所属组:

(1)默认情况下 nfsnobody nfsnobody

在这里插入图片描述

(2)指定客户端以student用户的身份创建文件
服务端进行设置共享参数:

 [root@server ~]# vim /etc/exports
  内容:/westos      *(sync,rw,anonuid=1000,anongid=1000)  ##"anonuid=1000,anonguid=1000"设置默认建立文件的用户名称为student,   

ystemctl restart nfs-server.service #重新启动服务,使得设置生效

在这里插入图片描述
测试:客户端挂载之后创建文件的所有人以及所属组均为指定的:
在这里插入图片描述

在这里插入图片描述
(3)指定客户端以root用户的身份创建文件

服务端进行设置共享参数:
vim /etc/exports

  /westos      *(sync,rw,no_root_squash)  ##设置默认建立文件的用户名称为root用户

systemctl restart nfs-server.service #重新启动服务,使得设置生效
在这里插入图片描述
测试:
客户端:挂载之后创建文件的所有人以及所属组均为root用户
在这里插入图片描述

(4)以对特定的客户端设置共享参数
服务端进行设置共享参数:
vim /etc/exports

  /westos      *(sync,rw,)   172.25.254.22(ro,sync)   ##172.25.254.22的用户只能读,其他默认用户是可以读写的。

在这里插入图片描述
systemctl restart nfs-server.service #重新启动服务,使得设置生效

测试:使用该主机进行挂载,核实是否为只读挂载
在这里插入图片描述

注: 在客户端编辑文件或着删除文件,查看默认建立文件用户名称。

猜你喜欢

转载自blog.csdn.net/Y950904/article/details/89924663