SnapRAID

出自 ArchWiki

SnapRAID 是一个基于文件夹的备份工具,其行为类似于软件或硬件 RAID5/6 磁盘阵列,但本身不是磁盘阵列。它没有实时恢复功能,磁盘之间的可用空间不能合并,并且需要手动执行备份。

由于基于文件夹备份的特性,SnapRAID 比软件 RAID 更灵活和简单。虽然磁盘 RAID 具有实时备份等优点,但也存在复杂性增加或性能降低等缺点。更不用说 RAID5 中发生双磁盘故障或 SATA URE(不可恢复的读取错误)可能会损坏所有数据,而 SnapRAID 则不会发生这种情况。因此,当备份是主要目标,而不是防止系统因磁盘故障而离线时,使用 SnapRAID 是合乎逻辑的。

SnapRAID 的工作原理是将所有文件夹的奇偶校验信息存储到另一个磁盘。存储奇偶校验文件的目标磁盘应该是最大的。其他磁盘没有此限制,可以是任何大小。总而言之,SnapRAID 适用于媒体中心,因为媒体中心的文件通常很大且很少更改。SnapRAID 非常灵活,可以配置为随时添加/删除磁盘。此外,还支持多个冗余磁盘。

提示: 如果您想在不设置磁盘 RAID 的情况下将文件夹合并成一个更大的文件夹,基于 FUSE 的文件系统是最佳选择。(例如 MergerFS,unionfs-fuse)Overlayfs 是另一个有趣的选择,并且自 3.18 版本以来已合并到内核中。虽然它的功能较少,并且存在限制,例如只有一个可写路径以及需要指定工作目录。其他文件系统(如 AUFS)通常涉及内核补丁或不受支持或过时的软件。

安装

安装 snapraidAUR 软件包。

使用

另请参阅 SnapRAID 手册

我们有四个磁盘存储数据,并希望保存一个冗余磁盘以防万一。这四个磁盘挂载在

  • /mnt/sda
  • /mnt/sdb
  • /mnt/sdc
  • /mnt/sdd

以及一个空的冗余磁盘挂载在

  • /mnt/sde

让我们创建一个配置文件!以 “content” 开头的行指定了内容文件的路径,该文件存储 SnapRAID 元数据。

警告: SnapRAID 需要一个内容文件来构建恢复。此文件的多个副本对于最大程度的数据安全至关重要。明智的做法是将此文件放在所有磁盘上并在其他地方进行备份。
/etc/snapraid.conf
data d1 /mnt/sda
data d2 /mnt/sdb
data d3 /mnt/sdc
data d4 /mnt/sdd/I_only_want_to_backup_this_folder
parity /mnt/sde/SnapRAID.parity
content /mnt/sda/SnapRAID.content
content /mnt/sdb/SnapRAID.content
content /mnt/sdc/SnapRAID.content
content /var/snapraid/SnapRAID.content
exclude /lost+found/
警告: 磁盘的顺序与奇偶校验有关。
提示: exclude 行表示要排除的路径。它相对于所有挂载点

备份

要开始备份过程,运行

# snapraid sync

取消删除

要将文件或文件夹恢复到早期版本(取消删除)

# snapraid fix -f FILENAME

(使用文件或目录的完整路径更好。文件路径相对于所有根目录)

磁盘恢复

如果挂载在 /mnt/sda 的磁盘已损坏并被替换,请在执行恢复之前编辑 /etc/snapraid.conf

更改行

data d1 /mnt/sda

data d1 /mnt/sda_new

要开始恢复

# snapraid -d d1 -l recovery.log fix