1.1. 什么是NFS(1台机器提供服务)
Network File System(网络文件系统)通过局域网让不同的主机系统之间共享文件或目录。
NFS客户端可以通过挂载的方式将NFS服务器端共享的数据目录挂在到NFS客户端本地
mount 10.185.163.162:/dev/sdb1 /客户端的mnt
注:samba类似windows的文件共享系统,用于办公网
nfs用于中小型网站集群架构的数据共享
mfs,glusterfs,FastDFS分布式文件系统(多台机器提供服务)用于大型的门户网站
1.2. NFS在企业的应用
企业集群中,NFS网络文件系统被用来存储共享的视频,图片,附件等静态资源,一般由用户上传
注意网站的BBS程序(开发人员开发的程序)不要放到NFS共享里
客户 ->Nginx ->NFS(图片,视频)
->业务 ->Mysql
->监控 ->session共享
1.3. 为什么需要共享存储角色
简单,易用,高效,但是没有本地快(网络延迟),服务端提供一个共享目录,通过mount挂在到本地,本地只要访问挂载点,就相当于访问远端的共享目录了。不同的客户端可以提供不同的挂载点,但同时可以挂载服务端同一个目录。
1.4. RPC(Remote Procedure Call)服务(端口111)
1.NFS系统是通过网络进行数据传输的,所以一定会使用一些端口来传输数据
2.NFS支持的功能相当的多,而不同的程序都是使用不同的程序来启动,每个功能就会启用一些端口来传输数据,所以我们可以通过RPC(远程过程调用)来实现。
3.RPC服务的最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端向RPC做请求的时候,把该端口对应的信息传递个请求数据的客户端,可以确保客户端和服务器端的通信。
4.RPC原理总结:
1.服务器端和客户端都需要安装RPC服务。
2.服务器端的RPC服务要先于服务器端的NFS服务启动
3.当客户端的程序通过RpcBind发出一个有进程参数的调用信息到服务进程,然后等待服务器端的RPC的应答信息,有则返回端口信息给客户端。客户端就可以直接访问NFS系统,进行数据的交换
1.5. NFS常见的进程详细说明(man 查看帮助)
1.6. NFS参数总结
NFS参数总结: rw:读写 ro:只读 sync:客户端给服务器端写入数据,待写入成功后服务端后给客户端一个写入成功的标记,这个时候数据写入成功。 但是数据安全,但是性能差 async:异步写入 数据写入内存后显示写入成功,高性能,但是一旦断电后数据丢失, 电商秒杀是异步的。大型网站都是异步,会短时间数据不一致。 no_root_squash: 访问的NFS Server的共享目录的用户是root的话,它对该共享目录具有root权限 root_squash: 访问的NFS Server的共享目录的用户是root的话,它对该共享目录的权限压缩为匿名用户 all_squash: -->推荐使用 不管访问的NFS Server的共享目录权限是什么,它对该共享目录的权限压缩均为匿名用户
1.7. 搭建企业级NFS网络文件共享服务
【更多参考】
1.8.NFS优缺点
1.作用:
NFS可以让不同的客户端挂载使用同一个目录,作为共享存储使用,为保证不同节点数据的一致性,集群架构环境经常用到。
windows的Samba,它是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
2.优点:
简单,易上手
数据在文件系统之上,可见
方便,部署快,简单维护,可控
可靠,可靠性高,经久耐用
稳定,
3.缺点:
局限性是单点故障,服务端宕机,所有客户端不能访问(负载均衡和高可用方案弥补-->rsync+inodefound+双写)
大数据高并发场合,NFS效率优点
客户端基于IP识别,安全性不高
NFS数据时明文,对数据完整性不做验证
多台客户端挂载一个NFS服务器,维护起来麻烦(耦合性高)