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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

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

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

1
2
3
4
5
6
7
8
[root@* /] 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的文件,看有没有什么文件可以先删除:

1
2
3
4
[root@* /] find  -size +1G
. /var/log/messages
. /var/log/messages-20170109
------output omitted------

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

1
2
3
4
5
[root@* 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,内网升级太麻烦,索性关了吧:

1
2
[root@* log]service cachefilesd stop
[root@* log]chkconfig cachefilesd --level 35 off


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

1
2
3
4
[root@* log] grep  - v  cachefilesd messages-20170109 > messages.bak
[root@* log] grep  - v  cachefilesd messages >> messages.bak
[root@* log] rm  -f messages-20170109
[root@* log] echo  > messages


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

1
cachefilesd[1226]: Scan complete

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


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



本文转自 gole_huang 51CTO博客,原文链接:http://blog.51cto.com/golehuang/1892334

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
缓存 算法 开发者
【Conan 入门问题】Conan 删除本地缓存后的解决方法
【Conan 入门问题】Conan 删除本地缓存后的解决方法
315 0
|
2月前
|
存储 安全 Unix
网络文件系统 (NFS)
【10月更文挑战第12天】
134 5
|
2月前
|
存储 缓存 安全
网络文件系统 (NFS)
【10月更文挑战第11天】
45 1
|
7月前
|
缓存 监控 NoSQL
redis 缓存穿透 击穿 雪崩 的原因及解决方法
redis 缓存穿透 击穿 雪崩 的原因及解决方法
|
2月前
|
Kubernetes 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
基于Ubuntu-22.04安装K8s-v1.28.2实验(三)数据卷挂载NFS(网络文件系统)
149 0
|
3月前
|
缓存 JavaScript
vue使用keep-alive实现页面前进刷新,后退缓存,完美运行无bug
vue使用keep-alive实现页面前进刷新,后退缓存,完美运行无bug
575 1
|
4月前
|
存储 Ubuntu Linux
NFS服务部署全攻略:从零到一,轻松驾驭网络文件系统,让你的文件共享像飞一样畅快无阻!
【8月更文挑战第5天】NFS(网络文件系统)能让网络中的电脑无缝共享文件与目录。基于客户端-服务器模式,用户可像访问本地文件般透明操作远程文件。部署前需准备至少两台Linux机器:一台服务器,其余作客户端;确保已装NFS相关软件包且网络通畅。服务器端安装NFS服务与rpcbind,客户端安装nfs-utils。
126 4
|
4月前
|
存储 Linux 网络安全
【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
【Azure 存储服务】如何把开启NFS 3.0协议的Azure Blob挂载在Linux VM中呢?(NFS: Network File System 网络文件系统)
|
缓存 NoSQL 安全
Redis缓存雪崩、击穿、穿透解释及解决方法,缓存预热,布隆过滤器 ,互斥锁
Redis缓存雪崩、击穿、穿透解释及解决方法,缓存预热,布隆过滤器 ,互斥锁
255 5
|
Linux
第八章 NFS文件系统:
第八章 NFS文件系统:
146 1