我被xfs' No space left on device击中了。根据常见问题:
http://xfs.org/index.php/XFS_FAQ#Q:_Why_do_I_receive_No_space_left_on_device_after_xfs_growfs.3F
解决此问题的唯一方法是四处移动数据以释放 1TB 以下的空间。找到最旧的数据(即在第一次增长之前就已经存在)并将其从文件系统中移出(移动,而不是复制)。然后,如果您将其复制回去,数据块最终将超过 1TB,这应该为您留出足够的空间用于 1TB 以下的索引节点。
但是我如何识别要移动的数据呢?我不能按年龄分类,因为前 10 TB 是在同一天使用rsync
.
我努力了:
xfs_db -r -c "blockget -i 1 -n -v" /dev/md3
但我似乎只得到文件的基本名称而不是文件的完整路径。而且由于我的很多文件都被称为相同的(但在不同的目录中),所以这不是很有用。而且它似乎给了我更多信息,只是 inode 1。
我有一种感觉,我可以使用xfs_db
它来告诉我哪些文件正在使用前 1 TB 中的块,但我一直看不到如何使用。
(通过使用 mount 选项inode64
,文件系统不会给出No space left on device,但是如果您以后忘记使用 mount 选项inode64
,那么您将再次获得No space left on device。我想避免使用 mount 选项inode64
,因为文件系统可能被其他人安装在其他系统上,他们会忘记这一点,因此会得到令人惊讶的No space left on device)。
尝试使用该
-o inode64
选项(重新)安装您的文件系统,看看这是否已经解决了您的问题,但请注意man mount
:Quick & Dirty 示例(删除内联注释,调整数字):