4.13、nfs挂载优化及优缺点
1、硬盘:sas/ssd磁盘,买多块,硬件raid5/raid0,网卡吞吐量要大,至少千兆(多网卡bond0)
2、nfs客户端挂载说明:
文件系统有自己的权限,挂载是建立在文件系统之上的,然后更改挂载的权限,一般不会更改挂载nfs的权限,使用默认值就好,也可以做相应的优化;
挂载权限是对文件权限的一个过滤,一个文件有多个权限,用户在使用文件时调用的是它们之间最小的权限;
3、客户端查看挂载:
df -hT
cat /proc/mounts
172.16.1.31:/data/ /mnt nfs4rw,relatime,vers=4,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,
clientaddr=172.16.1.8,minorversion=0,local_lock=none,addr=172.16.1.31 0 0
4、nfs挂载参数:
5、nfs服务器端配置:
/data 10.0.0.1(rw,rsync,all_squash,anonuid=65534,anongid=65534)
6、nfs客户端挂载配置:
(1)性能和安全兼顾:
mount -t nfs -o nosuid,noatime,nodiratime,nodev,noexec,rsize=131072,wsize=131072 10.0.0.1:/data/ /mnt/
(2)禁止更新目录及文件时间戳挂载-性能优化:
mount -t nfs -o noatime,nodirtime 10.0.0.8:/data
(3)安全优化的挂载方式(并发会很差,安全代表着性能的降低):
mount -t nfs -o nosuid,nodev,noexec,noatime,nodirtime,intr,rsize=131072,wsize=131072 10.0.0.8:/data
(4)默认的挂载方式(已经很好了,可以不用更改)
mount -t nfs 10.0.0.8:/data
(5)本地文件系统的优化 (一般不会优化的)
(6)如果是nodirtime会报错:
mount /dev/sda1 -o defaults,noatime,async /mnt
7、fstab修改错误导致系统无法启动故障修复:
(1)救援模式或是维护模式:
修改 /etc/fstab :可能不让操作
mount -o rw,remount / #可 (以rw的模式重新挂载分区,不会影响分区的挂载点和其它的属性设置)
(2)文件系统只读故障(文件系统内部自动一致性(只读),async bug):
mount :查看挂载的硬盘的写入格式,找到只读的分区
mount -o rw,remount /
8、对nfs进行内核的优化:
#接收套接字缓冲区的默认值和最大值
[root@nfs01 ~]# cat /proc/sys/net/core/rmem_default
124928
[root@nfs01 ~]# cat /proc/sys/net/core/rmem_max
124928
#发送套接字缓冲区的默认值和最大值
[root@nfs01 ~]# cat /proc/sys/net/core/wmem_default
124928
[root@nfs01 ~]# cat /proc/sys/net/core/wmem_max
124928
vim /etc/syctl.conf
net.core.rmem_default=8388608 #8M
net.core.rmem_max=16777216 #16M
net.core.wmem_default=8388608
net.core.wmem_max=16777216
[root@nfs01 ~]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
9、nfs卸载知识点:
强力卸载分区:
umount -lf /dev/sda1
如果卸载nfs挂载文件出现“umount:/mnt device is busy”需要退出挂载目录再进行卸载;
如果nfs server宕机了则需要用使用命令“umount -lf /mnt/” 进行强制的卸载;
10、nfs的优缺点:
nfs是集群中后端的共享存储,确保数据的一致性;
(1)nfs的优点:
nfs文件系统内数据是在文件系统之上的,即数据是能看的见得
部署快速,维护简单方便,且可控,能满足需求
可靠,从软件层面上来看,数据可靠性高,经久耐用,数据是在文件系统之上的
服务非常的稳定
(2)nfs的缺点:
存在单点故障,如果nfs server宕机了,所有的客户都不能访问共享目录。
在大数据高并发的场合,nfs效率低(cdn服务器,95%发数据被消化了,web缓存)
客户端认证是基于ip和主机名的,权限根据id识别,安全性一般(用于内网,则问题不大)
nfs数据是明文的,nfs本身不对数据完整性进行验证
多台客户机器挂载一个nfs服务器时,连接管理麻烦(耦合度高),尤其当nfsServer出现问题时
所有的nfs客户端都处于挂掉状态,可以使用强制卸载进行修复;
nfs服务端和客户端相对来说就是耦合性有些高,扩展性不是很好
11、应用建议:
大中小型网站(2000万/日pv以下)线上应用,门户网站也可以使用,生产场景应该多把数据的访问
往前推,即尽量把静态存储里的资料通过cdn或缓存服务器提供服务,如果没有缓存服务或者是架构不好
存储服务器数量再多也抗不住压力的,而且用户的体验会很差;
对于大型网站,nfs网络文件系统的替代软件为分布式文件系统mfs,glusterFS,fastDFS;