我想设置一个笔记本(debian)1 个固态硬盘和1 个硬盘每个上面都有 Luks 和 Btrfs。因为 SSD 和 HDD 的速度不一样,我不想使用Btrfs 的 Raid-1但我也有不想错过 Btrfs 的校验和自动更正功能。
现在我正在考虑只使用 HDD 来存储来自 SSD 的快照。与此同时,我发现了这一点https://superuser.com/a/1099181中,脚本首次在源驱动器(SSD)上创建初始只读快照,稍后使用示例创建cron
每日增量快照btrfs send -p
和btrfs receive
。
我现在的问题是:例如,如果 SSD 出现问题bitrot 错误,我会如何知道这种情况发生?我不认为 SSD 上的 Btrfs 会在下次我制作快照并使用时自动更正此错误btrfs send -p
,btrfs receive
因为它根本就没有突袭-1, 我对吗?
顺便说一句,在同一台笔记本但不同的驱动器上快照不是我的(完整)备份策略。
答案1
我不是专家,现在正在学习 BTRFS。我知道这是一篇旧帖子,但无论如何还是会尝试回答。
根据一些邮件列表您可以在单个磁盘上使用 DUP 和 RAID1,因此如果您不介意一半空间,则可以使用 SSD 并保持自动数据更正。另一种方法是购买另一个 SSD,我就是这么做的。
如果你不想放弃一半的 SSD 空间或更多的钱,那么有些错误可以修复,而其他错误则不能在没有冗余的情况下修复。你可以尝试btrfs check --repair
如果您有文件系统错误。要检测数据腐烂,您需要使用btrfs scrub
,它会验证 crc32 校验和,并在状态消息中显示是否发现无法纠正的错误。您可以使用dmesg
。您可以使用备份手动恢复损坏的文件。我认为可以为此编写一个脚本。仍然不知道快照会受到文件替换的影响,我怀疑它们将包含旧的损坏版本。我会发布一个关于那部分的问题。