Linux NFS挂载优化,inotify+rsync实时备份

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux NFS挂载优化,inotify+rsync实时备份相关的知识,希望对你有一定的参考价值。

查看客户端挂载的参数

技术分享图片

技术分享图片

强制卸载


技术分享图片

高并发情况下,可以通过明确加上noatime,以达到提升优化I/O性能


ro:以只读方式挂载一个文件系统

rw:   以可写的方式挂载一个文件系统

 

defaults(默认):这是fstab里的默认值,包括rwsuiddevexecautonouserand 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共享存储优化:

1ssd,多块,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 实现数据的远程挂载与实时增量备份

在 Linux 上通过 NFS 触发 inotify 事件?

Linux中nfsiscsi共享服务的部署及安全优化详解

Linux系统——Inotify事件监控工具

NFS服务优化 挂载优化 关于NFS内核优化

NFS+inotify实时同步