![xfs_fsr 报告大型虚拟机映像上的可用空间不足](https://linux22.com/image/728415/xfs_fsr%20%E6%8A%A5%E5%91%8A%E5%A4%A7%E5%9E%8B%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%98%A0%E5%83%8F%E4%B8%8A%E7%9A%84%E5%8F%AF%E7%94%A8%E7%A9%BA%E9%97%B4%E4%B8%8D%E8%B6%B3.png)
我有多个使用 glusterfs 和 xfs 分区的系统。其中一些系统是虚拟机的主机(使用 libvirt 并使用 qcow2 进行存储)。
我注意到在几个案例中存在大量碎片,因此我运行了 xfs_fsr 进行碎片整理。我的两个虚拟机相当大,当我尝试对托管它们的分区进行碎片整理时,我收到“可用空间不足”的提示。
有办法解决这个问题吗?我不确定我是否理解了 -f 选项,我应该使用它吗?
编辑:我取出了一个相关问题,我会在另一篇文章中提出。
答案1
xfs_fsr
对文件进行碎片整理复制将其移至新的临时位置,并自动将新(连续)文件与旧文件交换。这显然意味着它真的需要足够的空间来制作临时副本(即:至少与您正在碎片整理的文件一样多的可用空间)。
xfs_fsr 通过将整个文件复制到临时位置,然后以原子方式交换目标文件和临时文件的数据范围来改进每个文件的范围布局。此方法要求有足够的可用磁盘空间来复制任何给定的文件,并且该空间的碎片比原始文件的碎片更少。它还要求文件所有者拥有足够的剩余文件空间配额,以便在运行配额的系统上进行复制。如果空间不足以改善目标文件,xfs_fsr 会生成一条警告消息。
它的-f
选项使您可以指定进度文件位置,该文件位置反过来又用于恢复中断的碎片整理会话。再次,从手册页中:
-f 剩余
使用此文件而不是 /var/tmp/.fsrlast 来读取开始位置的状态,并将其作为存储重组停止位置的状态的文件。