移动数百万个小文件会导致“空间不足”错误

移动数百万个小文件会导致“空间不足”错误

我不想将大约 450 万个文件(大小范围为 100 - 1000 字节)从一个分区移动到另一个分区。文件夹总大小约为 2.4 GB

首先,我尝试对其进行压缩并将压缩文件移动到新位置。它只能粘贴 ~800k 文件并显示“空间不足”错误。

接下来我尝试了 mv 命令,它也导致了相同的情况。

使用 rsync 也会导致相同的错误,仅移动约 800k 文件。

我检查了磁盘可用状态,它远低于限制。 (新分区有约 700 GB 可用空间,所需空间为约 2.4 GB)。

我检查了该分区的空闲索引节点,它是相同的。它只使用了最大可能的 191 M inode 中的约 800k。 (我实际上已经用 'mkfs.ext4 -Tsmall /dev/sdb3' 格式化了分区)

我不知道这里出了什么问题。每次它只能复制或移动约 800k 文件。

答案1

我已经找到了错误的原因(在不同的论坛上找到了它)。该错误是由于 ext4 使用的哈希算法引起的,该算法由“dir_index”参数启用。对我来说,哈希冲突太多了,所以我通过以下命令禁用了它:

tune2fs -O "^dir_index" /dev/sdb3

缺点是由于没有索引,我的分区比以前慢。

有关该问题的更多信息: ext4:神秘的“设备上没有剩余空间”错误

相关内容