文章目录
一、NFS概述
NFS服务是Network File System的缩写及网络文件系统。
NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。
NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS
为什么使用NFS:
1.实现多台服务器之间文件共享
2.实现多台服务器之间数据一致
缺点:
1.存在单点故障, 如果构建高可用维护麻烦web->nfs()->backup
2.NFS数据明文, 并不对数据做任何校验。
3.客户端挂载NFS服务没有密码验证, 安全性一般(内网使用)
- 没有NFS服务时
1.A用户上传图片经过负载均衡,负载均衡将上传请求调度至WEB1服务器上。
2.B用户访问A用户上传的图片,此时B用户被负载均衡调度至WEB2上,因为WEB2上没有这张图片,所以B用户无法看到A用户传的图片。
2) 搭建有NFS共享服务时
1.A用户上传图片无论被负载均衡调度至WEB1还是WEB2, 最终数据都被写入至共享存储
2.B用户访问A用户上传图片时,无论调度至WEB1还是WEB2,最终都会上共享存储访问对应的文件,这样就可以访问到资源了
3) NFS原理
1.用户进程访问NFS客户端目录
2.NFS将请求转化成函数
3.NFS客户端与服务端建立TCP\IP连接
4.NFS服务端接收请求,会调用portmap进行端口映射
5.服务端rpc.nfsd进程进行判断NFS客户端是否可以连接
6.如果可以连接,rpc.mount进程会对客户端进行判断允许的操作
7.都通过则可以对服务端磁盘进行操作
二、NFS实践
1. 准备机器
主机 | IP | 角色 |
---|---|---|
nfs | 172.16.1.31 | 服务端 |
web01 | 172.16.1.7 | 客户端 |
2. 服务端
1)关闭防火墙和selinux
#停止防火墙服务
[root@nfs ~]# systemctl stop firewalld
#开机不启动
[root@nfs ~]# systemctl disable firewalld
#关闭selinux
[root@nfs ~]# setenforce 0
[root@nfs ~]# vim /etc/selinux/config
SELINUX=disabled
2) 安装NFS和rpcbind
[root@nfs ~]# yum install -y nfs-utils rpcbind
#如果是centos6需要单独安装rpcbind,centos7可以不单独安装
3) NFS服务端配置
NFS服务程序的配置文