跳转至内容

SnapRAID

来自 ArchWiki

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

由于其基于文件夹的备份特性,SnapRAID 比软件 RAID 更灵活、更简单。尽管磁盘阵列具有实时备份等优点,但其缺点是复杂性增加或性能下降。更不用说 RAID5 中发生两次磁盘故障或 SATA URE(不可纠正读取错误)可能会损坏所有数据,而 SnapRAID 则不会。因此,当备份是主要目标而不是防止因磁盘故障导致系统离线时,使用 SnapRAID 是合乎逻辑的。

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

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

安装

安装 snapraidAUR 包。

用法

另请参阅 SnapRAID 手册

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

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

并且一个空的冗余磁盘挂载在

  • /mnt/sde

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

警告 SnapRAID 需要一个 content 文件来构建恢复。该文件的多个副本对于最大的数据安全至关重要。最好将此文件放在所有磁盘上并在其他地方进行备份。
/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