我应该使用哪种文件系统来格式化我的外部备份硬盘?btrfs?

我应该使用哪种文件系统来格式化我的外部备份硬盘?btrfs?

我有一个新的外部 USB 驱动器,计划仅用于存储备份。(它是安装在 USB 外壳中的 WD Red 2TB NAS 硬盘驱动器 SATA III 型号 WD20EFRX。)

该驱动器没有分区表。我使用 gdisk (GPT) 对其进行了分区。

我应该使用 btrfs 文件系统吗?我在内置硬盘上使用 btrfs,自从去年首次安装 Kubuntu 12.04 以来,一直没有出现任何问题。

但我想知道用 ext4 对该备份存储驱动器进行分区是否更为明智。

仅供参考,btrfs 尚未投入生产的说法似乎已经过时了。以下是我找到的一些信息。

SUSE Enterprise Linux 高级产品经理 Matthias Eckermann 表示,Btrfs 已准备好用于生产系统,从 SUSE Linux Enterprise 11 SP2 开始,Btrfs 已获得官方支持。

此外,根据 btrfs wiki 的说法,“自 2012 年 2 月以来有两家供应商在其发行版中支持 btrfs,即 Oracle 和 SUSE。”

答案1

据 BTRFS 的主要设计者称,随着文件系统越来越满,BTRFS 仍然存在一些问题。用于异地备份的发送/接收快照差异的发送/接收功能也尚未完全发挥作用,在线重复数据删除(用于备份虚拟机映像)即将实现或许适用于 3.11 内核(尚未发布)。raidz 支持是 3.10 的新功能,我还没有机会测试它,我可能今天晚上会测试。总而言之,BTRFS 仍然处于非常 积极开发,我宁愿等到它完成(或者至少不会在每个内核版本发布时都获得重大的功能改进!)之后再在生产中实际使用它。

在用于基于 rsync 的备份的外部机箱上使用 BTRFS 或 ZFS 的优势在于,您可以通过每日 cron 作业等方式制作快照,然后在必要时进行时间旅行以检索旧数据(例如,如果文件因未知原因从硬盘驱动器中消失,您需要从过去的备份中恢复它们)。我为此使用带有 ZFSonLinux 的 USB3 机箱,因为我需要虚拟机的重复数据删除支持(因为从 rsync 的角度来看,大 .img 文件总是不同的,重复数据删除意味着备份中只有 .img 文件中实际更改的块会发生变化,而不是 30gb 大文件的多个副本)。希望当 3.12 内核发布时,BTRFS 重复数据删除支持能够足够成熟,这样我就可以从 ZFS 迁移到这个应用程序——ZFS 很酷,但是它没有与 Linux 内核集成这一事实会导致问题(例如,我使用 Centos 6.4 虚拟机进行备份,因为 ZFS 无法针对 3.10 内核进行编译)。

要备份 Linux 文件系统,请在 BTRFS(或 LVM)上创建快照,然后挂载该快照(如果是 LVM)并通过 rsync 进行备份。这样可以确保您拥有与快照时间一致的备份。然后,在完成快照后将其删除。(对于 LVM 来说,这更为重要,因为快照对其性能有重大影响)。启动备份作业的 cron 脚本还会在实际开始备份之前在我的 ZFS 备份文件系统上轮换快照(每日、每周、每月),以便我可以根据需要进行时间旅行。

就可靠性而言,古老的 ext4 可能是最可靠的文件系统,因为它在磁盘上静态分配结构的方式,这意味着如果出现严重崩溃,您总能找到它们,至少可以恢复大部分数据。缺点是,在非常大的文件的极端情况下性能不佳(其中 inode 链块的工作方式使这些文件中的随机访问非常慢)、大型文件系统的问题(创建和 fsck 非常慢)或大量小文件(耗尽 inode 表)的极端情况下。我个人继续在 LVM 之上的 RAID 上运行 ext4 作为我的根文件系统,并根据需要出于性能原因或功能原因使用其他文件系统。

相关内容