Linux NFS挂载优化,inotify+rsync实时备份
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux NFS挂载优化,inotify+rsync实时备份相关的知识,希望对你有一定的参考价值。
查看客户端挂载的参数
强制卸载
高并发情况下,可以通过明确加上noatime,以达到提升优化I/O性能
ro:以只读方式挂载一个文件系统
rw: 以可写的方式挂载一个文件系统
defaults(默认):这是fstab里的默认值,包括rw、suid、dev、exec、auto、nouser、and async。
默认情况下,都用的默认。
mount挂载性能优化参数选项
1、禁止更新目录及文件时间戳挂载:
mount -t nfs -o noatime,nodiratime 172.16.1.31:/data /mnt
2、安全加优化的挂载方式
mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,intr,rsize=131072,wsize=131072 172.16.1.31:/data /mnt
3、默认挂载
mount -t nfs 172.16.1.31:/data /mnt
如果是本地文件系统
mount /dev/sdb1 /mnt -o defaults,async,noatime,data=writeback,barrier=0
一般6.6系统可使用如下参数
mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime, rsize=131072,wsize=131072 172.16.1.31:/data /mnt
不过CentOS6.6默认的挂载参数性能还不错
具体的要根据业务需要来设定
NFS内核优化建议(服务器端):
NFS内核调优;调整接收/发送套接字缓冲区大小
cat /proc/sys/net/core/rmem_default 默认
cat /proc/sys/net/core/rmem_max 最大
cat /proc/sys/net/core/wmem_default 默认
cat /proc/sys/net/core/wmem_max 最大
上述文件对应命令如下:
cat >>/etc/sysctl.conf<<EOF
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216
EOF
执行sysctl -p生效
企业场景NFS共享存储优化:
1、ssd,多块,raid5/raid10。网卡至少千兆(多块bond)
2、配置文件:
all_squash 不论登入NFS的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是nobody
anonuid 可以自行设定这个UID的值,这个UID必需要存在于你的/etc/passwd当中
anongid 同anonuid,但是变成groupID就是了
sync 资料同步写入到内存与硬盘当中
async 资料会先暂存于内存当中,而非直接写入硬盘
3、客户端挂载优化配置命令:
mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime, rsize=131072,wsize=131072 172.16.1.31:/data /mnt
兼顾性能安全
NFS优点:
简单,容易上手
NFS文件系统内数据是在文件系统之上的,也就是说数据是能看得见的
部署快速,维护简单方便,可控
可靠,从软件层面上看,数据可靠性高
服务非常稳定
NFS局限:
存在单点故障,如果NFS Server宕机了,都不能访问(可通过高可用弥补)
大数据高并发场合,性能有限(2千万/日以下PV的网站不是瓶颈)
客户端认证是基于ip和主机名,权限要根据ID识别,安全性一般(用于内网则问题不大)
NFS数据是明文的,NFS本身不对数据完整性作验证
多台客户机挂载一个NFS服务器时,连接管理维护麻烦(耦合度高),尤其NFS服务端出问题后,
所有客户端都处于挂掉状态(测试环境可用autofs自动挂载解决,正式环境可修复NFS或强制卸载)
生产场景应该多把数据的访问往前推,尽量把静态存储里的资源通过CDN或缓存服务器提供服务
showmount一般用于从NFS客户端检查NFS服务器共享目录的情况,其常用参数如下
-e 显示NFS服务器输出的目录列表
-d 显示NFS服务器提供的共享目录
exportfs命令
exportfs -rv 命令相当于/etc/init.d/nfs reload
exportfs -o rw,sync,all_squash,anonuid=888,anongid=888 10.0.0.0/24:/data
有啥卵用???
防火墙控制
一般内网环境,不需要,如果要配置的话,两选一
这个源比较特殊
inotify 可以监视的文件系统常见事件包括:
IN_ACCESS:文件被访问
IN_MODIFY:文件被修改
IN_ATTRIB,文件属性被修改
IN_CLOSE_WRITE,以可写方式打开的文件被关闭
IN_CLOSE_NOWRITE,以不可写方式打开的文件被关闭
IN_OPEN,文件被打开
IN_MOVED_FROM,文件被移出监控的目录
IN_MOVED_TO,文件被移入监控着的目录
IN_CREATE,在监控的目录中新建文件或子目录
IN_DELETE,文件或目录被删除
IN_DELETE_SELF,自删除,即一个可执行文件在执行时删除自己
IN_MOVE_SELF,自移动,即一个可执行文件在执行时移动自己
测试创建
测试删除
测试关闭-写
测试关闭-写时,创建也能监测
简化输出
有时重启会失效,所以放rc.local里
以上是关于Linux NFS挂载优化,inotify+rsync实时备份的主要内容,如果未能解决你的问题,请参考以下文章
NFS +inotify+rsync 实现数据的远程挂载与实时增量备份