XFS:设备上没有剩余空间,(但我有 850GB 可用!)

XFS:设备上没有剩余空间,(但我有 850GB 可用!)

我在 Amazon EC2 上结合使用了 mdadm、lvm2 和 XFS。

到目前为止,我已经成功运行了由多个 EBS 卷构建的 RAID 5 卷。EBS 卷已连接并与 mdadm 一起使用以创建 RAID 5。然后,我使用 LVM 将生成的 RAID 呈现为单个物理卷和单个逻辑卷。

过去,我可以通过添加新的 EBS 卷、附加它,然后运行以下过程来扩展文件系统。


mdadm --add /dev/md0 /dev/xvdi

# grow the raid... (could take a while for a large disk!)
mdadm --grow /dev/md0 --raid-devices=4

# grow the LVM physical volume
pvresize /dev/md0

# grow the LVM logical volume ... fairly certain
# -l100%PVS will make the extents use as much space
# as possible on physical disks (and hopefully won't overwrite anything)
lvresize -l100%PVS /dev/data_vg/data_lv

# resize the file system, too!
xfs_growfs /dev/data_vg/data_lv

# yay!
df -h

我最近尝试这样做,表面上看效果很好。运行 df -ih/fh 显示我已安装文件系统,并且有额外的 1 TB 可用空间,正如预期的那样。此外,使用的 inode 总数仅为 1%。此外,pvdisplay 和 lvdisplay 也显示了正确的卷大小。

自从增加卷容量以来,我甚至可以向卷中添加一些数据(大约 150GB)。但是,今天我尝试创建一个目录并获取

mkdir:设备上没有剩余空间

如果我声称有大量可用的 inode,为什么还会遇到这个问题?

我已经卸载了磁盘并运行了 xfs_check,但没有报告任何问题。

谢谢!

答案1

我能够通过以下方式解决该问题:

umount [the mountpoint]
mount /dev/data_vg/data_lv -o inode64 [the mountpoint]

显然,默认的(32 位 inode?)xfs 会将所有 inode 存储在磁盘的前 1TB 部分中。这意味着,如果前 1TB 已满,那么即使看起来您有足够的空间/inode 可用,您也会遇到磁盘空间不足的错误。如果我理解正确的话,通过添加 inode64 选项,节点可以存储在磁盘上的任何位置。

来源:XFS 常见问题解答。

相关内容