XFS“设备上没有剩余空间”的错误表述

XFS“设备上没有剩余空间”的错误表述

我有一台服务器设置XFS 分区逻辑卷管理器Ubuntu 14.04.1 LTS。将文件复制到主分区时,“设备上没有剩余空间“ 被展示。

DF-H显示足够的空间:

/dev/mapper/prod--vg-home     35G   21G   15G  60% /home

我还使用 fallocate 在同一个主帐户中几乎完全填充了磁盘,以确保配额或其他磁盘空间问题不相关:

/dev/mapper/prod--vg-home     35G   34G  1.5G  96% /home

DF-我还显示足够的 inode:

/dev/mapper/prod--vg-home   36700160  379390 36320770    2% /home

我也用了大量小的随机文件在同一个家庭账户中,复制了该问题

mkdir 1
cd 1
dd if=/dev/zero of=masterfile bs=10000000 count=1
split -b 10 -a 10 masterfile
cd ..
cp -R 1 2

这导致再次出现“设备上没有剩余空间”,几乎不需要额外的空间(约 30MB),并且DF-我提及:

/dev/mapper/prod--vg-home   36700160 1310464 35389696    4% /home

我确实做了在同一台机器上进行第二次测试(Ubuntu 14.04.1 LTS)。

我创建了一个新的逻辑卷5 GB,并填充小文件使用上面的 dd 和 split 过程。

我收到“设备上没有剩余空间”的提示,可用的磁盘空间和 inode 如下:

/dev/mapper/prod--vg-test    5.0G  4.2G  811M  85% /mnt/test
/dev/mapper/prod--vg-test    4257712  937920  3319792   23% /mnt/test

我已经使用 root 权限执行了此测试,以确保保留空间在这里仍然无关紧要。

我确实做了在另一台机器上进行第三次测试(Debian 2.6.32-5)。

我创建了一个 5 GB 的新逻辑卷,并使用上面的 dd 和 split 过程用小文件填充它。

程序成功具有以下可用的磁盘空间和 inode:

/dev/mapper/data-test      5.0G  4.2G  909M  83% /mnt/test
/dev/mapper/data-test      4721904 1000005 3721899   22% /mnt/test

我也使用 root 权限执行了此测试,以确保保留空间在这里仍然无关紧要。

这是否意味着Ubuntu 14.04.1 LTS 中的错误

我确实验证了在 Ubuntu 14.04.1 LTS 上更改 in odes 最大百分比的影响:

xfs_growfs -m 25 /dev/mapper/prod--vg-home

这个数量可以轻松减少或增加。

在试验此设置时,我注意到将其降低到 3% 并再次增加到 25%,并删除一些文件,允许我再次添加更多文件,但在填满存储或 inode 之前仍然会导致错误。

文件系统信息显示:

meta-data=/dev/mapper/prod--vg-home isize=256    agcount=14, agsize=655360 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=9175040, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

是否有其他设置可能导致出现“设备上没有剩余空间”消息?或者我应该断定这是一个错误?

谢谢

答案1

xfs_growfs 有一个错误,导致 inode 无法正确分布在分区中。解决方案是使用 inode64 选项重新挂载。例如,如果这是 /dev/vda1,您可以执行以下操作:

mount -o remount,inode64 /dev/vda1

您可以找到有关该错误的更多信息这里

答案2

有一种情况是目录(特别是/home)可能会显示磁盘已满,但实际上并非如此,这种情况意味着用户的配额。用户的可用空间可能存在一些限制,请检查是否是这个问题。

相关内容