linux-CentOS7 nfs服务

tech2025-04-28  6

linux-CentOS7 nfs服务

一、什么是NFS?二、为什么要用共享存储?三、NFS工作流程四、工作原理五、实践六、优点与局限性

一、什么是NFS?

全称 network file system 网络文件系统 通过网络存储和组织文件的一种方法或机制。

什么是文件系统? 操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统

二、为什么要用共享存储?

前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一的放到后端的存储上。为什么要共享?所有节点服务器都需要将内容存到存储上,取的统一来取。

有无NFS对比:

三、NFS工作流程

四、工作原理

五、实践

1、客户端与服务端

rpm -qa nfs-utils rpcbind yum install nfs-utils rpcbind -y systemctl start rpcbind.service(端口111) systemctl enable rpcbind.service

2、NFS服务端(172.16.1.31)

配置/etc/exports------配置客户端网段与权限等等 /data 172.16.1.0/24(rw,sync,all_squash,anonuid=1111,anongid=1111) /data1 10.0.0.0/24(ro) #表示共享服务器上的/data1目录只有10.0.0.0主机可以访问,且有只读权限

NFS配置权限设置常用参数说明<=====

创建、授权共享目录:chown -R nfsnobody.nfsnobody /data 查看ll 平滑重启NFS服务:systemctl reload nfs等价于exportfs -r 检查挂载:showmount -e 172.16.1.31 服务端本地挂载:mount -t nfs 172.16.1.31:/data /mnt 查看:df -h

3、客户端(10.0.0.7)

查看是否开启rpcbind:ps -ef|grep rpcbind 查看NFS服务器提供的共享目录:showmount -e 172.16.1.31 查看一下RPC有没有注册:rpcinfo -p 172.16.1.31 创建、授权:chown -R nfsnobody.nfsnobody /data 挂载测试: mount -t nfs 172.16.1.31:/data /mnt(把服务端共享目录/data挂载到本地目录/mnt) df -h 测试的时候可以在/mnt目录创建文件(看/etc/exports给的权限)测试。

扩展:

[ root@ nfs01 ~]# exportfs -o rw,sync 172.16.1.31:/test 临时挂载目录 [ root@ nfs01 ~]# showmount -e 172.16.1.31 查看挂载目录

六、优点与局限性

优点

①简单,容易上手,容易掌握。②NFS文件系统内数据是在文件系统之上的,即数据是能看得见的。③部署快速,维护简单方便,且可控,满足需求的就是最好的。④可靠,从软件层面上看,数据可靠性高,经久耐用。数据是在文件系统之上的。⑤服务非常稳定。

局限:

1、存在单点故障,如果NFS Server宕机了,所有客户端都不能访问共享目录。 2、在大数据高并发的场合,NFS效率、性能有限(2千万/日以下PV的网站不是瓶颈,除非网站架构设计太差)。 可以考虑购买CDN服务。CDN:网站加速器,分布式缓存服务。 3、客户端认证是基于IP和主机名的,权限要根据ID识别,安全性一般(用于内网则问题不大)。(没有用户名跟密码——》安全性不高) 4、NFS数据是明文的,NFS本身不对数据完整性作验证。 5、多台客户机器挂载一个NFS服务器时,连接管理维护麻烦(耦合度高)。尤其NFS服务端出问题后,所有NFS客户端都处于挂掉状态 (测试环境可使用autofs自动挂载解决,正式环境可修复NFS服务或强制卸载)。

应用建议:

大中小型网站(参考点2000/日PV以下)线上应用,都有用武之地。门户站也会有应用,生产场景应该多把数据的访问往前推, 即尽量把静态存储里的资源通过CDN或缓存服务器提供服务,如果没有缓存服务或架构不好,存储服务器数量再多也是扛不住压力的, 而且用户体验会很差。

解决NFS性能问题:

(内存优化,挂载优化,磁盘选择:scsi,raid10,CDN,弃用NFS,切割目录)。 1、硬件:sas/ssd磁盘,买多块,硬件raid,制作raid5或raid10。网卡吞吐量要大,至少千兆(多块bond)。 2、NFS服务器端配置: /data 172.16.1.0/24(rw,sync,all_squash,anonuid=65534,anongid=65534) 3、NFS客户端挂载优化配置命令: mount -t nfs -o,nosuid,noexec,nodev,noatime,nodiratime,rsize=131072,wsize=131072 172.16.1.31:/data/ /mnt<==兼顾安全性能 4、对NFS服务的所有服务器内核进行优化时,执行如下命令: cat >>/etc/sysctl.conf<<EOF net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 EOF 5、使用CDN加速以及自己搭建文件缓存服务(squid.nginx,varnish)。 6、把多个目录分配到不同的NFS服务器上。 7、弃用NFS 8、使用分布式文件系统。
最新回复(0)