• 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"磁盘空间不足无法再创建文件的情况:
    在这里插入图片描述

  • 相关阅读:
    数据分析三剑客之Matplotlib
    关于对ServletContext对象的应用详解
    openEuler 22.03 LTS编译安装libreoffice并制作rpm包——筑梦之路
    @RequestParam注解的正确使用方式
    【相机标定&基于消失点的外参标定】
    网线制作方法
    数组reduce方法详解
    jmeter-常用的一些java代码
    使用crontab定时脚本备份Mysql数据
    全栈自动化测试之 python基础语法介绍
  • 原文地址:https://blog.csdn.net/aixueai/article/details/126156211