我在Amazon EC2上使用了mdadm,lvm2和XFS的组合。
到目前为止,我已经成功地运行了一个由许多EBS卷构build的RAID 5卷。 EBS卷被附加并与mdadm一起使用来创buildRAID 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表明我有一个可用的额外太字节的已安装的文件系统。 另外,所使用的inode总数只有1%。 此外,pvdisplay和lvdisplay也显示适当的音量大小。
我甚至已经能够增加一些数据(大约150GB)的音量,因为它增长。 不过,今天我试图创build一个目录并得到
mkdir:设备上没有剩余空间
为什么我会遇到这个问题,如果我据说有足够的inode可用?
我卸载了磁盘并运行xfs_check,但是没有报告任何问题。
谢谢!
我能够通过以下方式解决问题:
umount [the mountpoint] mount /dev/data_vg/data_lv -o inode64 [the mountpoint]
显然,默认(32位inodes?)xfs会将所有inode存储在磁盘的第一个1TB部分。 这意味着,如果第一个1TB已满,那么即使看起来您有足够的空间/ inode可用,您也将在磁盘错误中没有空间。 通过添加inode64选项,如果我理解正确,节点可以存储在磁盘上的任何位置。
来源: XFS FAQ。