Debian btrfs 文件系统显示总共零个 inode,零使用,零空闲

Pos*_*iet 6 filesystems lvm inode btrfs

直到一周左右之前,这台 Debian 服务器运行良好。现在它不允许分配文件,尽管仍有空间。

  • 根卷配置了 LVM。
  • 内核是 Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.51-3 (2017-12-13) x86_64 GNU/Linux

Afsck和重新启动没有帮助。删除一些文件也没有帮助。

df -i
        Filesystem                                         Inodes    IUsed       IFree IUse% Mounted on
    /dev/mapper/vg-root                       0        0           0     - /
    udev                                              2051270      380     2050890    1% /dev
    tmpfs                                             2053627      632     2052995    1% /run
    tmpfs                                             2053627        5     2053622    1% /dev/shm
    tmpfs                                             2053627        4     2053623    1% /run/lock
    tmpfs                                             2053627       13     2053614    1% /sys/fs/cgroup
    /dev/sda1                                           62248      328       61920    1% /boot
    tmpfs                                             2053627       13     2053614    1% /run/user/117
    tmpfs                                             2053627        4     2053623    1% /run/user/0
    tmpfs                                             2053627        4     2053623    1% /run/user/1000
Run Code Online (Sandbox Code Playgroud)

同时,设备上有足够的空间

df -h
Filesystem                                     Size  Used Avail Use% Mounted on
/dev/mapper/vg-root              447G  293G  154G  66% /
Run Code Online (Sandbox Code Playgroud)

lvm2 设置是一个 465G 的卷组,完全由 / 和交换(15G)使用。

/ 格式为 btrfs:

btrfs filesystem df /
Data, single: total=444.63GiB, used=290.67GiB
System, DUP: total=8.00MiB, used=64.00KiB
System, single: total=4.00MiB, used=0.00B
Metadata, DUP: total=1.00GiB, used=764.58MiB
Metadata, single: total=8.00MiB, used=0.00B
GlobalReserve, single: total=256.00MiB, used=0.00B
Run Code Online (Sandbox Code Playgroud)

btrfs 卷确实已满:

btrfs filesystem show
Label: none  uuid: 82ff2c95-6c6d-48c8-a0a0-3219e5cc2845
        Total devices 1 FS bytes used 212.50GiB
        devid    1 size 446.66GiB used 446.66GiB path /dev/mapper/vg-root
Run Code Online (Sandbox Code Playgroud)

删除一个巨大的日志文件后,卷使用没有变化;它仍然是满的。

关于发生了什么以及如何解决它的任何想法?

tel*_*coM 4

作为现代文件系统,btrfs根本没有固定的 inode 限制,这就是为什么它将 inode 报告为全零。

检查子卷的状态btrfs

btrfs subvolume list -s /
Run Code Online (Sandbox Code Playgroud)

如果事实证明您的快照占用了您的磁盘空间,您可能需要这样的方法来删除它们:

btrfs subvolume delete -c /.snapshots/NNN/snapshot
Run Code Online (Sandbox Code Playgroud)

另请参阅此链接,了解其他用户使用 btrfs 和快照的冒险经历。该网页上的评论包括btrfs所有盐中有用的管理命令。