0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎么去解决服务器存储inode耗尽的问题呢?

dyquk4xk2p3d 来源:良许Linux 2023-09-19 11:38 次阅读

明明硬盘只用了 30% 左右的空间,但是却无法写入文件。使用df -iT命令查看文件系统使用情况时,发现根目录的 inode 使用率竟然是 100%。后来通过聊天得知,原来他的服务器主要用于存储 1KB 左右的小文件,这一下就破案了。

inode 主要用来记录文件的属性,及此文件的数据所在的块编号。每一个文件会占用一个 inode,因此如果都是小文件的话,那么就会出现 inode 已经耗尽,但文件系统还有很大的空闲空间,从而无法写入新文件。

如何获得更多的 inode

其实在创建 ext4 文件系统时,我们可以使用-T small参数来获得更多的 inode,从而优化对小文件的存储。接下来我们通过一个示例来看看效果。

这是两块相同大小的硬盘:

root@debian:~# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS

sdb 8:16 0 1G 0 disk

└─sdb1 8:17 0 1023M 0 part

sdc 8:32 0 1G 0 disk

└─sdc1 8:33 0 1023M 0 part

首先使用默认参数给/dev/sdb1创建文件系统:

root@debian:~# /sbin/mkfs.ext4 /dev/sdb1

mke2fs 1.47.0 (5-Feb-2023)

Creating filesystem with 261888 4k blocks and 65536 inodes

Filesystem UUID: 8935c902-df71-4808-b547-c85b6fd37a46

Superblock backups stored on blocks:

32768, 98304, 163840, 229376

Allocating group tables: done

Writing inode tables: done

Creating journal (4096 blocks): done

Writing superblocks and filesystem accounting information: done

从输出中可见,该文件系统有 261888 个 4KB 大小的块和 65536 个 inode。

然后使用-T参数对/dev/sdc1创建文件系统:

root@debian:~# /sbin/mkfs.ext4 -T small /dev/sdc1

mke2fs 1.47.0 (5-Feb-2023)

Creating filesystem with 1047552 1k blocks and 262144 inodes

Filesystem UUID: f521096d-a5a1-41c9-bbf7-e6102e74e87a

Superblock backups stored on blocks:

8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553,

1024001

Allocating group tables: done

Writing inode tables: done

Creating journal (16384 blocks): done

Writing superblocks and filesystem accounting information: done

从输出中可见,该文件系统有 1047552 个 1KB 大小的块和 262144 个 inode。

也可以通过以下方式对比两个文件系统的 inode 数量:

root@debian:~# mkdir default small

root@debian:~# mount /dev/sdb1 default/

root@debian:~# mount /dev/sdc1 small/

root@debian:~# df -iT

Filesystem Type Inodes IUsed IFree IUse% Mounted on

/dev/sdb1 ext4 65536 11 65525 1% /root/default

/dev/sdc1 ext4 262144 11 262133 1% /root/small

从以上示例中我们可以看出,在使用-T small参数后,inode 数量多了近 20 万个!

注意:这样做也是有代价的。在使用默认参数创建 ext4 文件系统时,默认数据块大小为 4KB,而使用-T small参数后,数据块大小为 1KB。这就意味着我们存储一个同样大小的文件,使用-T small参数创建的文件系统存储该数据时,占用的数据块更多,数据更分散,如果文件较大,会直接影响文件的读取速度

mke2fs(mkfs.ext4)的-T参数指定了如何使用该文件系统,以便mke2fs可以为该用途选择最佳的文件系统参数,其支持的使用类型在配置文件 /etc/mke2fs.conf 中定义,可以使用逗号分隔指定一个或多个使用类型

inode 不足的解决方法

当你已有的文件系统上出现 inode 不足的问题时,除了备份数据、重建分区并恢复分区数据外,还有两种临时解决方案:

1、删除文件大小为 0 的空文件,可以使用如下命令查找:

find PATH -name "*" -type f -size 0c

注意:使用-size参数时,不要用-size 1k,这个表示占用空间为 1KB,而不是文件大小为 1KB,应该使用-size 1024c才表示文件大小为 1KB。

2、可以定期对历史小文件进行打包、归档,以减少文件数量。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7484

    浏览量

    163770

原文标题:如何解决服务器存储 inode 耗尽的问题

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    客户端模式是什么?服务器模式又是什么

    客户端模式是什么?服务器模式又是什么?怎样编写一种服务器模式程序
    发表于 02-22 07:44

    存储服务器的作用

    本视频主要详细介绍了存储服务器的作用,分别是文件共享、数据备份、网络打印、多媒体文件共享、媒体服务器、Web服务器、FTP服务器、iTune
    的头像 发表于 01-06 10:12 1.4w次阅读

    存储服务器和普通服务器区别

    本文主要阐述了存储服务器和普通服务器区别。
    发表于 05-06 15:12 5214次阅读

    存储服务器怎么配置_存储服务器的作用

    在配置存储服务器录像之前请先确认4200客户端和存储服务器都已经安装,即有 电脑 上有两个图标生成安装软件时,勾选安装存储
    发表于 05-06 15:18 5263次阅读

    存储要用服务器

    存储要不要用服务器?这要看你选用的云存储是什么类型的产品,如果是西部数码的云盘这种,可以不用服务器,作独立硬盘使用,也可以跟云服务器挂载使
    发表于 05-12 10:35 2123次阅读

    解析存储服务器之间的区别和优势

    当我们聊到存储服务器的高可用性时,我们通常会想到多控制或双活动存储服务器技术。在存储
    发表于 08-06 09:12 1849次阅读

    什么是NAS网络存储服务器_NAS存储的特点

    在这个数据爆炸的时代,数据的快速增长无疑给中小企业和专业人士带来了前所未有的挑战。即使在云存储的情况下,数据丢失的风险也非常高。因此,许多公司开始转向NAS网络存储服务器。那为什么NAS网络
    发表于 10-10 16:00 1.1w次阅读

    一文知道存储存储服务器的区别

    随着科技的发展,现在很多企业为了节省成本可能不会选择购买存储服务器了,在这群用户中可能会去选择存储,那存储存储
    发表于 10-23 15:20 4201次阅读

    服务器有什么作用?存储服务器和普通服务器到底有什么区别

    服务器是现代重要设备之一,即使是普通人,每天在使用笔记本的时候也都在同服务器打交道。为增进大家对服务器的了解,本文将对服务器的作用、存储
    发表于 11-14 10:30 6110次阅读

    Redis服务器的内存耗尽后,Redis会如何处理

    作为一台服务器来说,内存并不是无限的,所以总会存在内存耗尽的情况,那么当 Redis 服务器的内存耗尽后,如果继续执行请求命令,Redis 会如何处理
    的头像 发表于 03-08 09:26 566次阅读

    存储服务器

    存储服务器存储是一种网上在线存储(英语:Cloud storage)的模式,即把数据存放在通常由第三方托管的多台虚拟服务器,而非专属的
    发表于 04-13 13:52 1195次阅读

    存储服务器怎么配置

    存储服务器的配置取决于您的需求和预算。一般来说,存储服务器需要具备大容量、高可用性和可扩展性,因此需要考虑以下几个方面: 1、存储介质:
    的头像 发表于 04-17 16:20 3608次阅读

    存储服务器怎么搭建?

      搭建存储服务器需要根据我们的需求和环境选择合适的硬件和软件,并进行相应的配置。那么存储服务器怎么搭建?
    的头像 发表于 10-31 16:51 3028次阅读

    存储服务器怎么配置

    存储服务器配置是一个复杂的过程,涉及到硬件、软件、网络等多个方面。 云存储服务器配置概述 云存储是一种基于互联网的
    的头像 发表于 07-02 09:15 858次阅读

    存储服务器有哪些类型

    存储服务器是现代信息技术的重要组成部分,它们为各种规模的企业和个人提供了灵活、可扩展和成本效益高的存储解决方案。在本文中,我们将详细介绍云存储服务
    的头像 发表于 07-02 09:17 630次阅读