如果下层也需要清理,我是否需要清理 btrfs?

如果下层也需要清理,我是否需要清理 btrfs?

btrfs我有一个由位于 NetApp NFS 文件服务器上的虚拟磁盘映像组成的多 TB 数据。数据在 NetApp 级别是冗余的,因此btrfs是 RAID-0。

除了提供冗余之外,NetApps 还会自行清理以确保数据完整性。

由于该级别没有冗余btrfs,校验和失败不能自动纠正,但我可以从备份中恢复损坏的文件。

我自己进行清理是否有价值,还是我应该依赖较低层并节省 I/O?

答案1

使用您自己的清理没有任何价值 - 事实上,它可能会导致较低的缓存命中率并降低生产 IO 的性能。

您所要防范的一切因素都已由 Netapp OS 更好地监控。

答案2

不,在您的设置中,在 Btrfs 级别上进行清理没有实际价值。清理只有在您至少启动并运行 RAID1 时才有意义,因为它是 Btrfs 检测 HDD 上的缺陷数据并恢复它的机制。但为了恢复它,数据需要多次存在,因此在 RAID0 上进行清理只能检测到错误,但永远无法恢复它。如果您希望能够使用 Btrfs 随清理而来的自我修复机制,那么您至少需要 RAID1!

RAID0 上的清理将检测到错误,但无法纠正大多数错误。无论如何,RAID0 应该只用于快速、一次性的数据,而根本不适合用于有价值的数据集。

还要注意,在 Btrfs 上运行虚拟映像是 Btrfs 性能会快速下降并碎片化的用例之一,除非您对文件使用 nodatacow。当然,使用 nodatacow 有点违背 COW 文件系统的选择。

意思是:如果您只需要一个用于虚拟映像的经过验证的文件系统,那么您应该在 Ext4 或 XFS 之间进行选择,而放弃 Btrfs。

相关内容