一.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,将无限期的重试