inode案例1:提示空间满 No space left on device,但 df 可以看 到空间很多,为什么?

解决方法:节点编号用完了,增加节点编号增加不了,说明你的磁盘上的文件都是小文件;

1、删除不用的文件和文件夹释放inode

2、迁移数据到新磁盘然后格式化重新指定inode

知识点:

    1.Linux下一个文件夹或者一个文件就会占用一个inode资源

    2.inode资源数量是在格式化磁盘的时候就指定的(可以不指定,但也会有一个值),要更改这个数量必须格式化磁盘

    3.如果某个磁盘的inode资源用尽,即便磁盘有空间,也不能进行任何文件或者文件夹的新增

    4.删除一个文件夹或者文件就能释放一个inode资源

[root@y_zilong ~]# df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda3      9283072 298033 8985039    4% /
devtmpfs        608540    400  608140    1% /dev
tmpfs           612218      6  612212    1% /dev/shm
tmpfs           612218    549  611669    1% /run
tmpfs           612218     16  612202    1% /sys/fs/cgroup
/dev/sda1       153600      4  153596    1% /boot
tmpfs           612218     17  612201    1% /run/user/42
tmpfs           612218      1  612217    1% /run/user/0
[root@y_zilong ~]# cd /boot/
[root@y_zilong boot]# mkdir testdir  
[root@y_zilong boot]# cd testdir/
[root@y_zilong testdir]# df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda3      9283072 298033 8985039    4% /
devtmpfs        608540    400  608140    1% /dev
tmpfs           612218      6  612212    1% /dev/shm
tmpfs           612218    549  611669    1% /run
tmpfs           612218     16  612202    1% /sys/fs/cgroup
/dev/sda1       153600      5  153595    1% /boot
tmpfs           612218     17  612201    1% /run/user/42
tmpfs           612218      1  612217    1% /run/user/0
[root@y_zilong testdir]# echo file{1..153595} |xargs touch
[root@y_zilong testdir]# df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda3      9283072 298033 8985039    4% /
devtmpfs        608540    400  608140    1% /dev
tmpfs           612218      6  612212    1% /dev/shm
tmpfs           612218    549  611669    1% /run
tmpfs           612218     16  612202    1% /sys/fs/cgroup
/dev/sda1       153600 153600       0  100% /boot
tmpfs           612218     17  612201    1% /run/user/42
tmpfs           612218      1  612217    1% /run/user/0
[root@y_zilong testdir]# touch a
touch: cannot touch ‘a’: No space left on device
[root@y_zilong testdri]# df 
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda3       18555904 4744420  13811484  26% /
devtmpfs         2434160       0   2434160   0% /dev
tmpfs            2448872      84   2448788   1% /dev/shm
tmpfs            2448872    9168   2439704   1% /run
tmpfs            2448872       0   2448872   0% /sys/fs/cgroup
/dev/sda1         303780   97868    205912  33% /boot
tmpfs             489776      16    489760   1% /run/user/42
tmpfs             489776       0    489776   0% /run/user/0
[root@y_zilong testdri]# 
[root@y_zilong ~]# rm -rf /boot/*
[root@y_zilong ~]# df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
/dev/sda3      9283072 298033 8985039    4% /
devtmpfs        608540    400  608140    1% /dev
tmpfs           612218      6  612212    1% /dev/shm
tmpfs           612218    549  611669    1% /run
tmpfs           612218     16  612202    1% /sys/fs/cgroup
/dev/sda1       153600      4  153596    1% /boot
tmpfs           612218     17  612201    1% /run/user/42
tmpfs           612218      1  612217    1% /run/user/0
[root@y_zilong ~]# cd /boot/
[root@y_zilong boot]# touch a
[root@y_zilong boot]# ls
a
[root@y_zilong boot]# 

 

Linux 提示no space left on device”通常表示磁盘空间不足的问题。这种情况可能会导致系统无法继续写入数据,影响程序运行和服务稳定性。 以下是几种常见原因及解决方法: ### 原因分析: 1. **硬盘已** 系统分区可用空间耗尽,可能是由于文件过多、日志未清理或其他大容量文件占用所致。 2. **inode资源耗尽** 即使磁盘仍有剩余空间,但如果所有 inode 已分配毕(如存在大量小文件),也可能触发此错误。 3. **临时文件或缓存堆积** 某些应用程序生成了太多临时文件或缓存数据,占用了磁盘空间。 4. **挂载点问题** 如果某个挂载点本身很小,并且已经了,也会影响整个系统的正常操作。 --- ### 解决步骤: #### 1. 查看磁盘使用情况 ```bash df -h ``` 通过该命令可以查看各个分区的空间使用状况。如果发现接近100%,则需要进一步排查哪些目录占用了大部分存储。 #### 2. 定位具体的占用来源 使用 `du` 命令定位消耗空间的大文件或目录: ```bash du -sh /* ``` 这将显示根目录下每个文件夹所占据的具体大小。 #### 3. 清理无用的数据 - 删除不必要的旧备份; - 手动清空 `/tmp`, `/var/tmp`; - 调整日志轮转策略并删除过期的日志文件(位于 `/var/log/`)。 #### 4. 针对inode检查 若怀疑是 inode 的问题,则可以用下面这个指令统计当前各路径下的 inodes 使用量: ```bash df -i find /path/to/check -xdev -type f | wc -l ``` #### 5. 扩展磁盘或调整挂载结构 对于确实硬件限制的情况考虑扩容物理设备;或者重新规划逻辑卷布局以分散负载压力到更大的区域上。 --- 成上述操作之后再尝试原来的任务即可避免“No Space Left On Device”的报错信息再次弹出!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

y_zilong

一分钱的肯定

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值