NFS网络文件系统共享(内含autofs)

一:NFS网络文件系统的简介

概念:

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

文件系统是内核空间的:网络文件系统是在内核上的一个映射

用 途

网络上与他人共享目录和文件

优 点

  1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
  2. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
  3. 一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。

扩展

NFS是通过网络来进行服务端和客户端之间的数据传输。两者之间要传输数据就要有想对应的网络端口来进行传输。NFS服务器到底使用什么网络端口来传输数据的,NFS服务器端其实是随机选择端口来进行数据传输。那NFS客户端又是如何知道NFS服务器端到底使用的是哪个端口呢?其实NFS服务器时通过远程过程调用(remote
procedure call
简称RPC)协议/服务来实现的。也就是说RPC服务会统一管理NFS的端口,客户端和服务端通过RPC来先沟通NFS使用了哪些端口,之后再利用这些端口(小于1024)来进行数据的传输。

二:NFS网络文件系统的部署

当我们在nfs服务器设置好一个共享目录/meng(客户端看到的不一定是这个名字,因为我们可以改变客户端看见共享目录的名称)后,其他的有权访问NFS服务器的NFS客户端就可以将这个目录挂载到本地。并且能够看到服务端/data的所有数据。因为挂载在本地的/data目录,其实就是服务器端的/data目录。如果服务器端配置的客户端只读,那么客户端就只能够只读。如果配置读写,客户端就能够进行读写。

前提:这个实验需要两个虚拟机

为了实验环境纯净,我们将两个虚拟机reset

在这里插入图片描述
配置ip,修改主机名

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

用ssh连接:
在这里插入图片描述
在这里插入图片描述
两台虚拟机配置yum源
在这里插入图片描述
在这里插入图片描述
配置本地解析:

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

实验步骤如下:

注意事项:

sync代表内存数据与硬盘里的数据的是同步的(可靠性高)
async不实时同步,会使写的效率提高(响应速度快)可靠性低
nfs不需要重启,用参数exportfs -rv更新(重启之后客户端挂载就出问题了,因为重启就有一个空档期,客户端如果在写,就会一直访问,这个时候会出问题,如果客户端不用,可以重启但是不建议。)

在服务端:

yum install nfs-utils -y
systemctl stop firewalld
vim /etc/exports
在里面写入
/mnt    172.25.254.0/24(ro,async)     172.25.254.0/24这个网段都可以映射到,172.25.254.206:/mnt只读挂载,不实时同步,为了实验效果明显,我们采用的是async

在这里插入图片描述
在这里插入图片描述
关闭防火墙
在这里插入图片描述
在这里插入图片描述

systemctl start nfs-server
systemctl status nfs-server
exportfs -rv

在这里插入图片描述
更新/加载
在这里插入图片描述

在客户端

yum install nfs-utils -y
showmount -e 172.25.254.206    
会看到以下内容,映射成功
Export list for 172.25.254.206:
/mnt 172.25.254.0/24                              
mount 172.25.254.206:/mnt/   /mnt
df   (会看到挂载上了)

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

cd /mnt     
ls
touch file      (不能建立文件,因为是只读挂载)
touch: cannot touch ‘file’: Read-only file system
cd -                 退出共享文件系统
umount  /mnt       卸载

在这里插入图片描述
在这里插入图片描述
进行读写挂载
在这里插入图片描述

可以建立文件
在这里插入图片描述

注意:如果不关闭防火墙的话,是映射不到的,除非执行以下步骤

 firewall-cmd --permanent --add-service=nfs             开启nfs服务
 firewall-cmd --permanent --add-service=rpc-bind     给客户端随即分配端口的一个工具  
 firewall-cmd --permanent --add-service=mountd       在服务端开启,客户主机挂载的时候需要的一个服务
 firewall-cmd --reload

三:NFS网络文件系统管理

参数介绍

anonuid=1001,anongid=1001              指定转换为1001这个用户身份,1001这个是服务端的
no_root_squash          谁管理用谁的身份并且anonuid不生效(沿用客户端自己的用户身份)
all_squash           身份全部转换(这个在的时候no_root_squash不生效,anonuid生效,去使用服务端的客户身份,如果不指定anonuid,就沿用服务端的匿名身份)

anonuid=1001,anongid=1001 参数效果
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
no_root_squash 参数效果
在这里插入图片描述
在这里插入图片描述

all_squash 参数效果
在这里插入图片描述
在客户端查看
在这里插入图片描述
在服务端查看

在这里插入图片描述

我们发现,每次看这个共享目录里面的东西,都要我们手动的进行挂载,卸载,这样不仅麻烦,而且在我们一不小心忘记卸载的时候还浪费挂载空间,有没有什么办法,能让它自己进行挂载与卸载呢?为了解决这个问题,我们了解一下autofs服务。

四:autofs服务(可以使NFS系统和存储分离)。

autofs:自动挂载器
自动挂载器是一个监视目录的守护进程,并在目标子目录被引用时,自动执行预定义的NFS挂载 自动挂载器由autofs服务脚本管理
自动挂载器由auto.master配置文件进行配置,该文件引用了一个按惯例称作/etc/auto.misc或其他类似名称的二级配置文件(子策略文件)

<1>自动挂载与卸载

在客户端

yum install autofs  -y (安装完会看到autofs软件包的具体信息)
rpm -qc autofs.x86_64 1:5.0.7-40.el7去查看它的配置文件
7.0以及7.0之前redhat版本/etc/sysconfig/autofs
7.1renhat版本或者autofs软件包5/6以上,以后的文件就是/etc/autofs.conf

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

在这里插入图片描述

vim/etc/sysconfig/autofs
将时间修改为10秒(方便实验)           (默认三百秒)

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

在这里插入图片描述

ll -d  /net/此时没有这个目录   默认共享文件系统挂载点
systemctl start autofs.service
systemctl enable autofs.service
ll  -d /net/ 有了这个目录
cd /net/172.25.254.206/mnt/
ls 查看到了东西
df 发现自动挂载上了
cd - (退出这个目录,相当于不用了)
十秒过后,在去查看
df    (发现自动卸载了)

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

<2>更改共享文件系统挂载点

修改主策略文件:vim /etc/auto.master
在这个加入以下内容
/mnt    /etc/auto.nfs    (/mnt是挂载目录的上一层目录,子策略文件名称可以自定义,比如/etc/westos.lee,但是为了规范,我们写成/etc/auto.nfs )

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

vim /etc/auto.nfs 子策略文件(挂载参数在子策略文件指定)
在里面可以写入
westos   172.25.254.206:/mnt

在这里插入图片描述

systemctl restart autofs

在这里插入图片描述

此时进入cd /mnt/westos
df
发现挂载点变成了/mnt/westos
再退出,十秒之后自动卸载

在这里插入图片描述

vim /etc/auto.nfs 也可以在里面写入
westos  -ro,vers=3  172.25.254.206:/mnt

在这里插入图片描述

此时进入cd /mnt/westos 
df
mount
发现是只读挂载,vers=3
再退出,十秒之后自动卸载

在这里插入图片描述

在这里插入图片描述

<3>不同用户进不同挂载点

因为我们发现,我们建立的文件,大家都可以看,这从保密性来说不合理,也不安全,为了解决这个问题,我们进行以下步骤:

实验步骤如下

在服务器的/mnt建立目录westos{1…3},并建立各自的文件

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

客户端

vim /etc/auto.nfs
 在里面写入
*  -ro,vers=3 172.25.254.206:/mnt/&
systemctl restart autofs

在这里插入图片描述

cd /mnt/westos1
df
发现172.25.254.206:/mnt/westos1    挂载在/mnt/westos1上
cd /mnt/westos2
df
发现172.25.254.206:/mnt/westos2    挂载在/mnt/westos2上
westos3同理
退出这个目录,十秒之后自动卸载

在这里插入图片描述

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

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值