Linux之:nfs文件系统

一.NFS基本概述

1.定义:

NFS是Network File System的缩写及网络文件系统,主要功能是通过局域网让不同的主机之间可以共享文件或者目录.
NFS系统和windows网络共享,网络驱动器类似,只不过Windows用于局域网,NFS用于企业集群集群架构中。
2.运用NFS服务进行数据存储的意义:

  • 实现多台服务器之间的共享
  • 实现多台服务器之间的数据的一致

3.本地文件操作方式:
当用户执行mkdir命令时,该命令会通过shell解释器翻译给内核,由内核解析完成后驱动硬件,完成相应的操作。

4.NFS实现原理:

  • 用户进程访问NFS客户端,使用不同的函数对数据进行处理
  • NFS客户端通过TCP/IP的方式传送给nfs的服务端
  • NFS的服务端接受请求后,会先调用portmap进行端口映射
  • nfsd进程用于判断NFS客户端是否具有权限连接NFS服务端
  • Rpc.mount进程判断客户端是否具有对应的权限进行验证
  • idmap进程实现用户映射和压缩
  • 最后NFS服务端会将对应的请求函数转换为本地识别的命令,传送至内核,由内核驱动硬件。

5.NFS存储优点:

  • NFS文件系统简单易用,方便部署,数据可靠,服务稳定,满足中小企业需求。
  • NFS文件系统中存放的数据都在文件系统之上,所有数据都是能看的见

6.NFS存储局限:

  • 存在单点故障,如果构建高可用维护麻烦
  • NFS数据明文,并不对数据进行任何校验
  • 客户端挂载无需账户密码,安全性一般。

二.NFS的基本使用

实验环境的搭建:

服务端(主机名zll.westos.com) ip=172.25.77.102
客户端(主机名client.westos.com ip=172.25.77.202

1.nfs的启用

在服务端:

yum  install nfs-utils
systemctl start firewalld
[root@zll yum.repos.d]# systemctl start nfs  ##开启nfs服务

在这里插入图片描述
在这里插入图片描述
验证如下:
在客户端:
在这里插入图片描述
出现报错,解决如下:
(1)服务端火墙添加nfs服务

[root@zll ~]# firewall-cmd --permanent --add-service=nfs
[root@zll ~]# firewall-cmd --reload

在这里插入图片描述
在客户端验证如下:
在这里插入图片描述
出现报错
(2)火墙添加挂载端口

扫描二维码关注公众号,回复: 5351957 查看本文章
  • 在服务端
[root@zll ~]# firewall-cmd --permanent --add-service=rpc-bind   ##在服务端

在这里插入图片描述

  • 在客户端
    在这里插入图片描述
    (3)添加火墙挂载

  • 在服务端

[root@zll ~]# firewall-cmd --permanent --add-service=mountd
[root@zll ~]# firewall-cmd --reload

在这里插入图片描述

  • 在客户端
    在这里插入图片描述
    显示可以登录
    (4)设定浏览指定目录
  • 在服务端:
[root@zll ~]# vim /etc/exports   ##编辑配置文件
/westoslinux   *(ro,sync)  ##允许对目录所有内容sync数据同步
[root@zll ~]# exportfs -rv   ##刷新

文件编辑内容为:
在这里插入图片描述
在这里插入图片描述

  • 在客户端
    在这里插入图片描述
    2.实现nfs的自动挂载
    (1) 实现自动挂载
意义:再使用的时候可以自动挂载,不使用的时候就自动卸载,不占用资源及空间
[root@foundation2 ~]# yum install autofs.x86_64 -y  ##下载该功能支持的软件
[root@foundation2 ~]# systemctl start autofs

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注:在下载好支持自动挂载的软件并且开启服务之后,就会生成/net这个目录,在该目录下可以直接切到nfs服务端的ip的这个目录下,然后iu就可以查看共享的文件和文件下面的内容
查看挂载状态的侍候发现自动挂载,从该目录退出时发现自动卸载,但是系统默认卸载需要300s,可以进行下面的操作,减小卸载所需时间
在这里插入图片描述

[root@foundation2 ~]# vim /etc/autofs.conf
编辑内容为:
 15 timeout = 3   然后再次验证的时候,当从该目录出去的时候3s之后查看挂载状态发现已经卸载

在这里插入图片描述
在这里插入图片描述
验证如下:
在这里插入图片描述
当3s之后查看挂载状态发现已经卸载
在这里插入图片描述
(2)更改自动挂载目录

  • 修改配置文件中的内容
[root@foundation2 ~]# vim /etc/auto.master
编辑内容为:
8 /opt(只显示自动挂载的上级目录) /etc/auto.westos(指定文件)   ##/opt指的是/opt/westos

在这里插入图片描述

  • 编辑指定文件,建立联系
[root@foundation2 ~]# vim /etc/auto.westos
编辑内容:
westos(挂载服务端)  172.25.254.202:/westoslinux(挂载的目录)

在这里插入图片描述
在这里插入图片描述
验证如下:
在这里插入图片描述
在这里插入图片描述
发现自动卸载

三.nfs的基本配置

(1)指定用户可写权限

  • 在服务端:
[root@zll ~]# vim /etc/exports   ##编辑该文件添加相应的权限
编辑内容为:
/westoslinux     *(ro,sync)  172.25.77.250(rw,sync)  ##表示允许该ip可读写
[root@zll ~]# exportfs -rv    ##刷新

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

  • 在客户端
    验证如下:
    在这里插入图片描述
    发现可以建立文件
    (2)设定默认建立文件的用户为超级用户
  • 在服务端:
文件编辑内容:
/westoslinux     *(ro,sync)  172.25.254.2(rw,sync,no_root_squash)  ##设定默认建立文件的用户为超级用户

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

  • 在服务端
    验证如下:
    在这里插入图片描述
    发现建立文件的用户为超级用户

(3)指定建立文件的用户的uid

  • 在服务端
/westoslinux     *(ro,sync)  172.25.254.2(rw,sync,anonuid=1002)##表示添加文件的用户为1002,服务端真实存在

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

  • 在客户端
    验证如下:
    在这里插入图片描述
    (4)指定建立文件用户的gid

  • 在服务端

/westoslinux     *(ro,sync)  172.25.77.202(rw,sync,anonuid=1002,anongid=1001)  ##指定添加文件的uid和gid

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

  • 在客户端
    验证如下:
    在这里插入图片描述
    发现建立文件的用户和组与文件中编辑的一致
    (4)
    vers=4只能使用指定的NFS版本进行挂载。如果服务器不支持该版本,则挂载请求失败
    (5)
    soft:如果NFS请求超时,三次尝试后返回错误。权衡数据完整性与提高客户端响应性。(默认行为为hard,将无限期的重试

猜你喜欢

转载自blog.csdn.net/weixin_44224288/article/details/87987134