NFS⽹络⽂件系统实战
NFS 是 Network File System 的缩写及⽹络⽂件系统。
主要功能是通过局域⽹络让不同的主机系统之间可以共享⽂件或⽬录。
NFS 系统和 Windows ⽹络共享、⽹络驱动器类似, 只不过 windows ⽤于局域⽹, NFS⽤于企业集群架构中, 如
果是⼤型⽹站, 会⽤到更复杂的分布式⽂件系统 FastDFS,glusterfs,HDFS,Ceph,miniio
为什么要使⽤ NFS 服务进⾏数据存储
1.实现多台服务器之间数据共享
2.实现多台服务器之间数据的⼀致
NFS实现原理(需要先了解[程序|进程|线程])
1.⽤户进程访问NFS客户端,使⽤不同的函数对数据进⾏处理
2.NFS客户端通过TCP/IP的⽅式传递给NFS服务端。
3.NFS服务端接收到请求后,会先调⽤portmap进程进⾏端⼝映射。
4.nfsd进程⽤于判断NFS客户端是否拥有权限连接NFS服务端。
5.Rpc.mount进程判断客户端是否有对应的权限进⾏验证。
6.idmap进程实现⽤户映射和压缩
7.最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递⾄内核,由内核驱动硬件。
rpc是⼀个远程过程调⽤,那么使⽤nfs必须有rpc服务
NFS****存储⼩结
NFS存储优点
1.NFS⽂件系统简单易⽤、⽅便部署、数据可靠、服务稳定、满⾜中⼩企业需求。
2.NFS⽂件系统内存放的数据都在⽂件系统之上,所有数据都是能看得⻅。
NFS存储局限
1.存在单点故障, 如果构建⾼可⽤维护麻烦。
2.NFS数据明⽂, 并不对数据做任何校验。
3.客户端挂载⽆需账户密码, 安全性⼀般(内⽹使⽤)
⽣产应⽤建议
1.⽣产场景应将静态数据尽可能往前端推, 减少后端存储压⼒
2.必须将存储⾥的静态资源通过CDN缓存(jpg\png\mp4\avi\css\js)
3.如果没有缓存或架构本身历史遗留问题太⼤, 在多存储也⽆⽤
NFS****案例实践
autofs - 自动挂载
⽆论是 Samba 服务还是 NFS 服务, 都要把挂载信息写⼊到 /etc/fstab 中, 这样远程共享资源就会⾃动随服务器开
机⽽进⾏挂载。
1.虽然很⽅便,但挂载资源过多会造成⽹络带宽以及服务器硬件资源带来很⼤的负载
2.如果在资源挂载后⻓期不使⽤,也会造成服务器硬件资源的浪费。
3.每次使⽤之前执⾏mount⼿动挂载,这是个不错的选择, 但每次都需要先挂载在使⽤, 会⾮常的麻烦那么 autofs ⾃动挂载服务可以帮我们解决这⼀问题。 autofs 服务程序是⼀种守护进程, 当检测到⽤户试图访问⼀
个尚未挂载的⽂件系统时,将⾃动挂载该⽂件系统。
autofs 服务程序是在⽤户需要使⽤该⽂件系统时才去动态挂载, 从⽽节约了⽹络资源和服务器的硬件资源
autofs⾃动挂载服务, 有两种挂载⽅式: