Cra*_*kel 10 linux files delete
几年来,存储系统从修订备份中收集了 17 亿个文件,并且已经有点满了。
所以我开始删除所有五年以上的文件。我假设大约有 17 亿(!!!)个文件,包含大约 90 TByte 的数据 - 我必须估计,因为即使只是一个 find 或 du 也需要几周甚至几个月的时间。后端(mdraid、ext4)本身实际上并不是太重要,因为无论如何我都想更改它。
我让 rm 删除文件一天,只删除了所有文件的 0.1% 左右。我估计以这种方式删除所有内容需要一到两年的时间。这样做时很可能会杀死一些驱动器。并不是我太担心,它是一个Hotswap RAID。
我一直在使用 ionice -c3 来确保仅在驱动器不忙时删除文件,以避免磁盘抖动,因为驱动器通常每天有 1-2 小时处于重负载状态。一个相当有趣的旁注是,当我第一次尝试运行 rm 时,数百万个硬链接将其内存使用量驱动到了 100GByte 左右,然后它进行了核心转储。因此,我将操作分成更小的部分,如果我只删除单个子目录,则可以工作文件,但仍然经常达到 20-30GByte 的峰值。
我的两个问题:
例如,我考虑手动编辑 Inode-Structures,这样文件就消失了,但空间没有归还,然后让 fsck 修复系统。
欢迎其他疯狂的想法。我总是可以通过制作 LVM 快照来恢复。
如果没有人提出更好的主意,我将大大减少创建的修订数量和/或将所有超过一个月的内容 tar/xz 到外部 USB 驱动器。这并不酷,因为用户实际上喜欢能够访问修订版中的旧内容。
小智 2
您可以使用较大的提交间隔(这相对节省但可能没有帮助)或使用nobarrier
(应该有帮助)挂载分区,这在断电或内核崩溃方面极其危险。
异步 I/O 魔法可能会有所帮助,但我无法推荐任何工具。
归档时间: |
|
查看次数: |
511 次 |
最近记录: |