一个NFS缓存管理包的bug导致文件系统满的问题和解决方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个NFS缓存管理包的bug导致文件系统满的问题和解决方法相关的知识,希望对你有一定的参考价值。

这几天安装CentOS 6的虚拟机总是提示文件系统满,一开始以为是最近oracle经常操作大数据量提交导致undo tbs无限扩大,后来发现原来是NFS缓存管理包cachefilesd的问题。分享一下:

由于是测试虚拟机,文件系统懒得专门规划,只划分了一个根目录分区。(各位admin切记不要犯这种实际生产环境的大忌):

[[email protected]* /]df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_*-lv_root
                       54G   54G  0G  100% /
tmpfs                 3.9G  604M  3.3G  16% /dev/shm
/dev/sda1             485M   32M  428M   7% /boot
/dev/mapper/vg_*-lv_home
                      5.5G  478M  4.8G   9% /home


查找大于1g的文件,看有没有什么文件可以先删除:

[[email protected]* /]find -size +1G
./var/log/messages
./var/log/messages-20170109
------output omitted------

/var/log/messages和带日期后缀的日志有问题,怎么会这么大?取文件后100行看看:

[[email protected]* log]tail -100 messages
Jan 16 16:29:42 * cachefilesd[1226]: Scan complete
Jan 16 16:29:42 * cachefilesd[1226]: Scan complete
Jan 16 16:29:42 * cachefilesd[1226]: Scan complete
------output omitted-------


cachefilesd scan complete是什么鬼?找大侠问度娘:

http://blog.itpub.net/17203031/viewspace-1130002/


Cachefilesd进程是负责进行网络文件系统的文件和目录缓存管理的,比如AFSNFS这类网络文件系统,需要在本地系统中存在一个Cache对象。这个问题是由于cachefilesd服务自身的bug造成的,由于内部设置了错误的日志级别(log level)。所以每次cachefilesd在工作进行Scan的时候,都会写入到/var/log/messages日志文件里面。”


详细信息请点击上述链接查阅。

明白了,反正是虚拟机,上面没跑NFS,内网升级太麻烦,索性关了吧:

[[email protected]* log]service cachefilesd stop
[[email protected]* log]chkconfig cachefilesd --level 35 off


最后,把非cachefilesd日志保存起来,清理源文件:

[[email protected]* log]grep -v cachefilesd messages-20170109 > messages.bak
[[email protected]* log]grep -v cachefilesd messages >> messages.bak
[[email protected]* log]rm -f messages-20170109
[[email protected]* log]echo > messages


最后再查看一下messages还有没有

cachefilesd[1226]: Scan complete

的日志,没有的话大功告成。


总结:1、业务文件系统必须和操作系统文件系统分离!2、定期检查并清理messages 。

本文出自 “苦瓜” 博客,请务必保留此出处http://golehuang.blog.51cto.com/7499/1892334

以上是关于一个NFS缓存管理包的bug导致文件系统满的问题和解决方法的主要内容,如果未能解决你的问题,请参考以下文章

解决Oracle 11gR2 空闲连接过多,导致连接数满的问题

解决Oracle 11gR2 空闲连接过多,导致连接数满的问题

nfs-utils bug导致nfs挂载失败

Nfs卸载自定义文件系统数据

ftp/nfs卸载自定义文件系统数据

ftp/nfs卸载自定义文件系统数据