我有一台服务器设置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
)可能会显示磁盘已满,但实际上并非如此,这种情况意味着用户的配额。用户的可用空间可能存在一些限制,请检查是否是这个问题。