4T硬盘剩余很多提示“No space left on device“磁盘空间不足

在linux中,硬盘有两个概念,就是block和inode

  • block:用于存放实际数据 ,实际占用空间用 df -h 查看
  • inode:存放文件属性 ,实际占用的节点用 df -i 查看

只要这两个其中一个占满空间了,都会导致提示报错"No space left on device"磁盘空间不足,也就是如果文件系统中的所有inode都已耗尽,即使磁盘上有可用空间,内核也不能创建新文件。

使用mkfs.ext4默认参数格式化磁盘后,发现格式化时间特别长,并且格式化会占用磁盘很大的空间。例如2TB的磁盘格式化会占用10分钟左右时间,并占用30G左右的磁盘空间。
究其原因,原来inode会占用磁盘空间,每个inode占用256b大小空间。
默认情况下,mkfs2fs会为每16kb的磁盘空间分配一个inode;

所以,在分区上创建新文件系统时,可以使用-i选项设置每inode字节数(字节/inode比率),每inode字节数比率越大,将创建的inode越少。例如:

$ sudo mkfs.ext4 -i 16400 /dev/sdc1

注意:一旦创建了文件系统,就无法更改每inode字节数的比率(除非重新格式化),而调整文件系统的大小会更改inode的数目以维持该比率。

Linux的快速格式化命令

使用-T标志来指定如何使用文件系统,告诉文件系统将用于创建或存储largefile和largefile4,它们分别提供更多比率,即每1 MiB和4 MiB一个索引节点,减少inode个数,格式化速率也会变快。

$ sudo mkfs.ext4 -T largefile /dev/device
$ sudo mkfs.ext4 -T largefile4 /dev/device

largefile和largefile4对应的【多大磁盘空间分配一个inode】其实是在 /etc/mke2fs.conf 定义的。
largefile 类型就是 1M 一个 inode
largefile4 类型就是 4M 一个 inode

如此格式化会变快,但是inode会减少,如果你确定存储的都是大文件是可以这样用的,如果存储的都是小文件,inode耗尽就会出现磁盘剩余空间很多,但提示"No space left on device"磁盘空间不足无法再创建文件的情况:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值