暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux ext4文件系统调整磁盘保留空间大小

运维笔谈 2024-09-30
456
点击上方蓝字”运维笔谈”,对话回复 “阿里云k8s” 可以获取《阿里云Kubernetes项目实战手册》PDF。

之前我们的 GlusterFS 集群磁盘使用率超过警戒值,我登录服务器df -h 查看发现实际可用空间远远低于Prometheus上记录的可用空间,同时也会发现通过 df -h 获取到的已使用和可用空间之和是小于磁盘实际空间的。比如如下根分区:

    $  df -h /
    Filesystem Size Used Avail Use% Mounted on
    /dev/vda1 40G 6.4G 32G 17% /

    已使用了6.4GB,可用还有32GB,那么按照我们一般的认知磁盘大小应该是38.4GB,然而实际却是40GB;或者当前磁盘总共40GB,已使用了6.4GB,那么应该还有33.6GB才对呀。Prometheus监控获取到可用空间却是33.6GB(若阈值比较高,很容易导致磁盘实际满了,告警还没出来)。

    磁盘总和大小不一致原因

    我们使用df -T / 查看下根分区的文件系统类型是什么?

      $ df -T /
      Filesystem Type 1K-blocks Used Available Use% Mounted on
      /dev/vda1 ext4 41152812 6645344 32603760 17% /

      我们发现根分区是ext4文件系统,并且(Used+Available)/Size

        (6644508+32604596)/41152812.0=0.9537405123129861
        #无限接近95%

        原来啊,Linux的ext文件系统分区会有保留区的概念,会给root或指定用户预留5%或更大的空间,ext文件系统(包括ext2、ext3、ext4)都会默认预留5%的磁盘空间,使用root用户维护系统或记录系统关键日志使用。

        同时XFS文件系统没有类似情况。

          $ df -Th /var/log
          Filesystem Type Size Used Avail Use% Mounted on
          /dev/vdb1 xfs 40G 1.1G 39G 3% /var/log

          如何调整ext4文件系统保留空间大

          若我们磁盘空间不大,5%的设定浪费不了多少空间,尤其是根分区保护还是相当重要。若我们磁盘达到TB级别,那么每1TB空间我们就会实际损失50GB左右,我当前GlusterFS节点5TB却有256GB空间是浪费的,并且还是非系统分区,所以我们要根据实际情况调整百分比,那么如何调整呢?

          我们可以使用工具tune2fs,tune2fs允许系统管理员在Linux ext2、ext3或ext4文件系统上调整各种可调的文件系统参数。

            tune2fs -m 3 /dev/vdb1     #(保留3%,默认5%)

            调整之后使用df查看,磁盘可以Available就变多了,相对应的节省一点开支吧。。(是的,我主要目的是为了节省一点钱,现在太难了)

            文章转载自运维笔谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

            评论