ext3 文件系统对大多数应用程序显示已满,但对 DF 仅显示 77%

ext3 文件系统对大多数应用程序显示已满,但对 DF 仅显示 77%

对于 Nagios、Puppet 和 LVM 工具(pvs、vgs 等)等许多应用程序来说,Var 显示为完整状态

df -h 输出

6.0G  4.3G  1.4G  77% /var

VG输出

/var/lock/lvm/V_rootvg:aux: open failed: No space left on device
  Can't get lock for rootvg
  Skipping volume group rootvg

lsof +L1var 下不再显示任何内容,因此我认为没有尚未从/var文件系统中清除的未链接文件。我不明白为什么 6G 文件系统上的 1.4G 空闲空间被认为是已满的。我知道系统在每个文件系统上保留了一些空间,但不可能是这样,空间太大了。文件系统位于ext3Red Hat 5 上。

dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          c8f44510-e8f7-4e2e-950a-1410b069910e
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              393216
Block count:              1572864
Reserved block count:     78627
Free blocks:              1183083
Free inodes:              388144
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      63
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Filesystem created:       Mon Apr 29 13:12:02 2013
Last mount time:          Wed Oct 23 19:10:44 2013
Last write time:          Wed Oct 23 19:10:44 2013
Mount count:              6
Maximum mount count:      -1
Last checked:             Mon Apr 29 13:12:02 2013
Check interval:           0 (<none>)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      8766dfd5-c802-4bc3-81cc-21869e810656
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
Journal size:             32M
Journal length:           8192
Journal sequence:         0x0112568e
Journal start:            3334

答案1

查看其他人的评论可以帮助您诊断索引节点不足。如果您需要提供一些可用的文件,以便能够对系统进行一些基本访问,那么您可以在 CentOS 5 安装上删除以下文件,假设您可以在没有它们的情况下生活。

例子

$ sudo rm -fr /var/log/*.[1-9]?(.gz)

这将删除/var/log.这应该会为您购买几十个 inode 来启动。

计算索引节点

使用 df

我通常使用该命令df来确定可用的数量。

$ df -i /
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/mapper/VolGroup00-LogVol00
                     59932672  807492 59125180    2% /
使用tune2fs

您也可以使用tune2fs.有了它,您需要为其提供 LVM LV 映射器的路径。

$ tune2fs -l /dev/mapper/VolGroup00-LogVol00 | grep -i inode
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Inode count:              59932672
Free inodes:              59126861
Inodes per group:         32768
Inode blocks per group:   1024
First inode:              11
Inode size:       128
Journal inode:            8
First orphan inode:       21561629
Journal backup:           inode blocks

释放了一些 inode,现在怎么办?

有了一些喘息空间,你基本上就有了几种选择。

  1. 我首先尝试快速获取可作为删除目标的文件列表,以便您可以开始获得更多空间。我将重点关注/tmp更多/var可能要删除的文件。

  2. 如果您有旧版本的 Java 或安装的任何东西/usr/local/opt我接下来会选择这些。

  3. 我将开始制定可卸载的已安装 RPM 列表

  4. 如果您一直使用 YUM 在此服务器上进行更新,则可以清除其缓存。

    $ sudo yum clean all
    
  5. 考虑添加额外的空间。

答案2

索引节点耗尽的一个可能原因是,无论出于何种原因,特定目录中积累了大量文件。您可以检查常见的可疑项,例如、/tmp等。如果您没有找到任何内容,这里有一个我拼凑而成的命令,用于列出文件系统中包含第一级文件/目录最多的前 50 个目录。/var/tmp/var/log

find / -xdev -type d -exec sh -c '
  num=$(find "$0" -maxdepth 1 | wc -l); echo "$num $0"' {} \; |
  sort -n |
  tail -50

请注意,顶层的挂载点也包括在内——排除这一点并不容易。

相关内容