[转帖]【mount】Linux根目录空间不足
【mount】Linux根目录空间不足
一、问题背景
一台数据库服务器,突然监控告警,报根目录空间不足(no space left on device),登录机器初步查看,发现根目录确实满了。
# df -hT

二、问题排查
根目录下包括所有的目录,而有些目录是挂了盘的,这些目录不会占用根目录下的系统磁盘空间。
出现根目录空间不足的情况只要关注那些未挂盘的文件大小,使用du命令查看各个目录的大小(只显示一层目录)
# du -h --max-depth=1 /

但是却并没有发现某个目录下有特大的文件存在。
灵机一动,是否有文件已被删除,但是引用该文件的进程仍然活动,导致文件所占磁盘没有被释放。
# lsof | grep deleted

根目录磁盘空间已满,根目录没有大文件,文件如果正在使用的时候被删除,进程可以继续读取文件,文件仍然占用空间,导致文件被删除但是空间未释放。
解决方法是删掉占用文件的进程,但结果中仍然没有发现有大文件。
有没有可能是这台服务器的block虽然还有剩余,但inode已经用满,因此在创建新目录或文件时,系统提示磁盘空间不足?
inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是 block,block是用来存储数据用的,而inode就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。
inode为每个文件进行信息索引,所以就有了inode的数值。操作系统根据指令,能通过inode值最快的找到相对应的文件。
如果这台服务器的Block虽然还有剩余,但inode已经用满,在创建新目录或文件时,系统提示磁盘空间不足。
inode的数量是有限制的,每个文件对应一个Inode,那么如何查看inode的最大数量呢?
# df -i

可以看到,inode节点只用了小部分,依然不是问题的原因所在。
那么,是不是在此之前做过什么操作,可能造成了一些预期之外的后果?
此时想起,我曾经重新mount过数据盘,但是数据盘是独立的磁盘,照理说是不会占用根目录所在的系统盘空间。
实际上:如果mount目录下原来是有文件存在的,那么该目录被mount之后这些文件就会被隐藏,不属于该文件系统,使用du命令是看不到的!

停掉相关服务,验证一下:
# umount /opt
# ll /opt/

果然,发现/opt目录下有一个2.8G的文件,这个文件把根目录磁盘占满了!
问题原因找到了,应该是之前拷贝文件时,/opt 没有被mount,拷贝动作就将文件拷贝到了根目录,而重新mount数据盘之前没有检查该目录是否为空,导致了后来的根目录磁盘空间不足。
三、问题总结
如果mount目录下原来是有文件存在的,那么该目录被mount之后这些文件就会被隐藏,不属于该文件系统,使用du命令是看不到的!
在实际生产环境中,mount之前需要确认目录是否为空!
四、参考
Linux根目录空间不足
https://www.jianshu.com/p/0698336f5b8e
https://blog.csdn.net/xiao_wj/article/details/52875458
理解inode
http://www.ruanyifeng.com/blog/2011/12/inode.html
How To Resize ext3 Partitions Without Losing Data
https://www.howtoforge.com/linux_resizing_ext3_partitions
No space left on device – running out of inodes
https://www.ivankuznetsov.com/2010/02/no-space-left-on-device-running-out-of-inodes.html
https://unix.stackexchange.com/questions/396965/no-free-space-left-inode-shortage
[转帖]【mount】Linux根目录空间不足的更多相关文章
- 增大VM下linux的根目录空间
增大VM下linux的根目录空间 用的太久,发现VM下的系统空间不足.简单的方法是,分一个新硬盘,挂载到根目录下. 下面是直接增大根目录下空间: 1. 增大vm下的磁盘大小, VM -&g ...
- [转载]实战Linux下VMware虚拟机根目录空间扩充
[转载]实战Linux下VMware虚拟机根目录空间扩充 (2011-07-31 21:34:34) 转载▼ 标签: 转载 原文地址:实战Linux下VMware虚拟机根目录空间扩充作者:shar ...
- VMware linux 增加根目录空间 (使用图形分区工具gparted LiveCd)
写这篇文章的原因: 最近要给服务器Centos上的ruby版本升级,由于是第一次升级,不敢直接在服务器上操作. 所以在我的winxp上装了Vmware ,又在Vmware中装了Centos5.2. 用 ...
- 网络虚拟化基础一:linux名称空间Namespaces
一 介绍 如果把linux操作系统比作一个大房子,那命名空间指的就是这个房子中的一个个房间,住在每个房间里的人都自以为独享了整个房子的资源,但其实大家仅仅只是在共享的基础之上互相隔离,共享指的是共享全 ...
- linux 根目录扩容
之前搭建了一个CentOS(7.0, x64)的VM,一直没留意它的硬盘空间.昨天,系统突然弹出警示,说 根目录 空间不足了. 这样的话,就只能给它增加空间呗. 我自己其实已经增加过硬盘空间了,但是为 ...
- VMware中linux硬盘空间不足的解决方法
相信很多人都和我一样是利用虚拟机安装linux的,在玩转linux的时候,可能就会遇到系统提示磁盘空间不足的情况.由于VMware中当初装系统时的设置的最大磁盘容量是不可以动态修改的,所以为我们使用带 ...
- Linux磁盘空间扩容(LVM)
Linux磁盘空间扩容(lvm) 随着系统的运行时间增长,业务数据的增长,原有磁盘的空间会存在空间不足情况,导致系统不能正常运行,或者系统管理员磁盘没有完全划完,根据使用者的需求自行划分.那么怎么才能 ...
- linux磁盘空间使用问题
linux磁盘空间用满的处理方法 linux下空间满可能有两种情况 可以通过命令 df -h 查看磁盘空间占用,实际上是查看磁盘块占用的文件(block) df -i 查看索引节点的占用(Inod ...
- linux磁盘空间满了 但是没有大文件
很常见的一个问题 linux磁盘空间满了 但是没有大文件 解决思路: 1.用df 检查发现/根目录可用空间为0 [root@/]#df -h 2.用du检查发现各目录占用的空间都很少,有约3G的空间莫 ...
随机推荐
- Qt Examples - Boxes (在Qt场景视图中结合OpenGL渲染)
QT自带例程Boxes使用QT Graphics View框架实现了2D图形和3D图形的混合渲染,综合性比较强,整合知识较多,值得学习. 可以使用鼠标通过以下方式控制演示中的元素: 按住鼠标左键的同时 ...
- CTF-代码审计(1)——parse_str()变量覆盖
题目连接:http://222.18.158.226:7000/iscc.php 考点:parse_str()变量覆盖 代码: PHP知识点: 1.parse_url() 参照网址:https://w ...
- webrtc (6) 在Webrtc中集成VideoToolbox
来源:http://blog.csdn.net/wangruihit/article/details/46550853 VideoToolbox是iOS平台在iOS8之后开放的一个Framework, ...
- kubernetes学习之service、deployment、pod的关系
deployment根据Pod的标签关联到Pod,是为了管理pod的生命周期 service根据Pod的标签关联到pod,是为了让外部访问到pod,给pod做负载均衡 需要注意: deployment ...
- Nginx 核心配置-location的匹配案例实战篇
Nginx 核心配置-location的匹配案例实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.location语法规则介绍 在没有使用正则表达式的时候,nginx会先在 ...
- Jupyter Notebook---不需认证,与nginx搭配远程访问及下载
如果默认启动,jupyter notebook需要token或是password登陆,且在nginx后面,下载会报403限制. Blocking Cross Origin request from h ...
- Linux下bash的一些总结
关于"交互式-非交互式"与"登录-非登陆"shell的总结 关于".bash_profile"和".bashrc"区别的 ...
- IE6兼容性bug汇总
1.终极方法:条件注释 <!--[if lte IE 6]> 这段文字仅显示在 IE6及IE6以下版本. <![endif]--> <!--[if gte IE 6]&g ...
- USACO Roadblock
洛谷 P2176 [USACO14FEB]路障Roadblock 洛谷传送门 JDOJ 2406: USACO 2014 Feb Silver 2.Roadblock JDOJ传送门1 JDOJ 24 ...
- 攻防世界(Ctf-Web 新手练习区)
题目:view_source 在url的前面加上个 “view-source: ”就看到flag了,或者“CTRL+U”快捷键查看源码 flag:cyberpeace{e07dcafaeeb31df2 ...