Linux终端索引节点inode占满案例

本文保存完整案例如下(包括关键操作视频,文档):

「INode索引节点占满问题」https://www.aliyundrive.com/s/jp6z5gJo7nf 点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

问题描述

linux终端开机时提示“No space left on device”而无法正常启动的情况。

过程分析

ssh至终端linux系统后台,相关业务日志SpaceAgent.log中记录有“Failed to save the torrent”,说明torrent文件无法保存是问题的原因。

尝试在终端本地创建一个文档检查文件系统的读写是否正常,提示终端本地没有空间。但df -h查看物理空间的使用率并没有占满。

df -ih查看的inode空间的使用率发现被占满了。inode也叫索引节点,是用于存储元数据的区域。

最后排查到/var/spool/postfix/maildrop目录下有大量的小文件产生,crond在执行脚本时会将保持信息以邮件的形式发送给crond用户,而环境的postfix没有正常运行,导致邮件发送失败,都会堆积在/var/spool/postfix/maildrop/目录中。而部分终端无法正常开机也是因为inode空间不足所导致的。

将maildrop中的小文件全部删除后,inode空间占用降低,终端重启后便可以正常下载镜像。

但是很快maildrop目录下又产生很多文件,如果不及时清理问题依旧会复现。

解决方法

要规避该问题,一种方法是启动postfix,让邮件服务正常运行。另外还可以在/etc/crontab中修改配置MAILTO=""发送为空,这样就不会再产生许多小文件堆积占用inode空间了。

对于终端因inode空间占满而无法正常开机的情况,终端已无法通过ssh的方式去访问后台。这种情况则需要通过U盘制作SpaceOS/Linux启动盘,挂载故障硬盘后对其进行清理。具体步骤如下:

1,选择trobuleshooting

2,选择rescue a centos system

3,选择选项中的3 skip to shell,进入shell命令

附录:INode介绍

inode 是 linux/unix 文件系统的基础。

硬盘的最小存储单位是扇区(Sector),块(block)由多个扇区组成。

文件数据存储在块中。块的最常见的大小是 4kb,约为 8 个连续的扇区组成(每个扇区存储 512 字节)。一个文件可能会占用多个 block,但是一个块只能存放一个文件。

虽然,我们将文件存储在了块(block)中,但是我们还需要一个空间来存储文件的 元信息 metadata :如某个文件被分成几块、每一块在的地址、文件拥有者,创建时间,权限,大小等。这种 存储文件元信息的区域就叫 inode,译为索引节点:i(index)+node。 每个文件都有一个 inode,存储文件的元信息。

可以使用 stat 命令可以查看文件的 inode 信息。每个 inode 都有一个号码,Linux/Unix 操作系统不使用文件名来区分文件,而是使用 inode 号码区分不同的文件。

简单来说:

inode 就是用来维护某个文件被分成几块、每一块在的地址、文件拥有者,创建时间,权限,大小等信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值