NFS
1.NFS网络文件共享
2.主要作用
- 解决web静态资源一致
- 解决web静态资源共享
- 解决多台web节点磁盘空间浪费
PS:存储不可以带来网站的加速,反而会增加网络延时,借助CDN技术来实现[分布式缓存],加速网站访问效果,提升用户体验。
3.NFS的实现原理(启动nfs前需启动rpmbind服务)
4.NFS的部署
-
服务端
- 下载软件
[root@nfs ~]# yum install -y nfs-utils
- 创建共享目录并修改属主、属组
[root@nfs ~]# mkdir /data [root@nfs ~]# chown -R nfsnobody.nfsnobody /data [root@nfs ~]# ll /data -d drwxr-xr-x 2 nfsnobody nfsnobody 6 Oct 19 18:17 /data
- 修改配置文件
[root@nfs ~]# vim /etc/exports /data 172.16.1.0/24(rw)
- 启动nfs服务
[root@nfs ~]# systemctl start nfs [root@nfs ~]# systemctl enable nfs
-
客户端
- 下载软件
[root@nfs ~]# yum install -y nfs-utils
- 创建目录
[root@nfs ~]# mkdir /data
- 检测服务端为哪些网段开放了哪些目录
[root@web01 /data]# showmount -e 172.16.1.31 Export list for 172.16.1.31: /data 172.16.1.0/24
- 将服务端的共享目录挂载到本地
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /data [root@web01 ~]# ll -d /data drwxr-xr-x 2 nfsnobody nfsnobody 6 Oct 19 18:17 /data
- 启动nfs
[root@web01 /data]# systemctl start nfs [root@web01 /data]# systemctl enable nfs
5.NFS共享参数作用
[root@nfs ~]# cat /var/lib/nfs/etab
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)
- rw 读写权限
- ro 只读权限
- all_squash 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户
- no_all_squash 无论NFS客户端使用什么账户访问,都不进行压缩。
- sync 同时将数据写入到内存与硬盘中,保证数据不丢失
- async 优先将数据保存到内存,然后再写入硬盘,效率虽然高,但可能丢是数据。
- anonuid 配置all_squash使用,指定NFS的用户UID,必须存在系统中。
- anongid 配置all_squash使用,指定NFS的用户GID,必须存在系统。
- root_squash 当NFS客户端以root管理员访问时,映射为NFS为NFS的匿名用户(不常用)
- no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员(不常用)
6.NFS存储总结
- 1.NFS存储优点
- 简单易用,方便部署,数据可靠,服务稳定,满足中小企业需求。
- NFS的数据都在文件系统之上,所有数据都是能看见的。
- 2.NFS存储局限
- 存在单点故障,如果构建高可用维护麻烦(web–>nfs–>backup)
- NFS数据都是明文,并不对数据做任何校验,也没有密码验证(强烈建议内网使用)
- 3.NFS应用建议
- 生产场景应将静态数据尽可能放置CDN分布式缓存服务
- 如果没有缓存或架构、代码等,本身历史遗留问题太大,再多存储也没意义。
7.CND分布式缓存服务
- 1.终端北京的用户向www.a.com发起请求,请求到达LDNS服务器。
- 2.LDNS服务器检查是否有www.a.com的IP记录,如果有直接返回给用户数据,若果没有,则向授权DNS查询。
- 3.授权DNS返回CNAME对应的IP地址,
- 4.DNS调度系统为用户的请求获得最佳的IP地址
- 5.LDNS获取DNS调度系统解析到的IP地址
- 6.用户解析获取解析到的IP地址,向该资源发起请求。
- 如果该最佳节点上有要访问的数据,则将数据直接返回给用户。
- 如果最佳节点上没有要访问的数据,则向源站发起请求,获取资源后,最佳节点缓存数据,再将数据返回给用户。