我有两个 4TB 硬盘,打算用于存储媒体(音乐、电影等)和笔记本电脑的备份。计划是建立一个定期访问的媒体,用于访问媒体和生成每日增量备份。另一个用于“冷”备份 - 大约每月一次,我计划对所有媒体进行快照,加上最近的备份,然后将其放入橱柜中。
我想在“热”驱动器上使用 btrfs,这样我就不会无意中获得损坏的数据。然而,这个答案建议不要使用 btrfs 进行备份,他们的文档也是如此。所以我想如果我在 btrfs 上有“热”驱动器,在 ext4 上有“冷”驱动器,我可能会两全其美。我认为这意味着经常使用的驱动器可以获得所有自我修复的好处,并且如果出现任何问题,我有一个稳定的备份,我可以确定它永远不会因为内核问题而损坏。
这是一个合理的策略吗?有什么我应该注意的陷阱吗?
答案1
除了您想要使用的明显技术功能之外,选择文件系统仍然是个人喜好。您还应该意识到,只有当为 BTRFS 文件系统分配了多个驱动器并且相应地设置了元/数据存储时,“自我修复”才能发挥作用。 BTRFS 使用单个驱动器可以可靠地完成的任务是检测损坏,并避免进一步使用损坏的数据部分。在元数据损坏的极少数情况下,可以使用第二个副本来恢复它,否则您得到的只是 I/O 错误和内核日志条目。请注意,默认情况下,元数据不会在 SSD 上复制,只会在传统驱动器上复制。
对不同类型的数据使用不同的文件系统也是一个很好的做法,以避免任何内核错误影响两个驱动器;但同样,BTRFS 因能够以以前无法识别的方式检测破坏数据的环境因素而闻名,因此这可能是在这两个地方使用 BTRFS 的一个论据。
从 BTRFS 并不是最容易在不同平台上使用的角度来看,使用两个不同的文件系统也是明智的 - 如果您的所有备份都位于带有 ext4 的便携式驱动器上,那么您很可能可以在其他任何地方轻松访问它们,但都是一样的,您可以使用任何现代 Live CD 来访问 BTRFS 数据
BTRFS 备份驱动器的唯一缺点是,如果出现严重混乱,仅恢复访问数据可能比 fsck 更复杂,但由于错误检测,我在 3-驱动器 RAID5 系统中,两个驱动器同时开始工作,其中一个驱动器实际上从总线上断开,直到断电。借助 BTRFS,我能够复制大部分数据,并标记最近损坏的一些不重要的更改文件。
对于任何 BTRFS 用户来说,拥有 BTRFS 文件系统最有用的部分是快速快照,但它们需要手动管理,如果不加考虑地使用它们,可能会耗尽磁盘空间。
BTRFS 快照的另一个优点是它们之间的增量备份 - 即,如果您在具有非常大的文件且只有很少的更改块的子卷上创建快照(即很少使用的虚拟机、某些类型的数据库文件、邮箱存档),则增量btrfs send
可用于重建少数实际更改,而不是传送整个文件;如果您过去rsync
将快照复制到冷驱动器,就会发生这种情况。
但同样,只有当备份的源和目标都是 BTRFS 时,这才是一个优势。
解决这个问题的一种方法是使用 BTRFS 作为工作驱动器,大量使用快照,然后使用外部驱动器作为 ext2/ext3/ext4 仅存储btrfs send
映像以进行完整和频繁的增量备份;为了数据完整性,对存储的btrfs send
文件使用哈希值,并使用类似par2
生成附加奇偶校验的方法来确保从损坏/删除的文件中恢复。
上述听起来像是我梦想的备份系统,但是,它确实是冷存储 - 如果不将数据重新导入到具有足够空间的新 BTRFS 卷上,则无法恢复数据的任何部分,并且测试该过程是否安全可能非常困难或错误-易于。