Skip to content

snapraid使用

自从折腾Nas开始就开始选择一个比较适合的数据冗余的软件,对比了zfs unraid snapraid,最后还是决定使用snapraid,主要看重snapraid的灵活性,各种不同容量的硬盘都可以组起来,后续扩容也比较方便,最差的情况,有硬盘坏了,无法恢复也不影响其它盘的数据读取,所以还是决定使用snapraid。

Snapraid的限制情况

SnapRAID定位于RAID和备份程序之间,试图取得最佳折中点。当然它也有一些限制,你应该在使用前注意。

主要的一点是,如果一个磁盘发生故障,并且您最近没有”SYNC”(更新冗余)过,则可能无法进行完全恢复。更具体地说,您可能无法恢复上次更新冗余操作后更改或删除的文件。即使更改或删除的文件不在故障磁盘中,也会发生这种情况。所以SnapRAID更适合于很少改变的数据。

相反,新添加的文件不会阻止恢复已经存在的文件。只有在发生故障的磁盘上,您才有可能丢失刚添加的文件。

和传统RAID比较,SnapRAID还有一些其他限制:

  • 每个磁盘都是单独的文件系统。而使用传统RAID的话,你只有一个大的文件系统。

  • 它不分条数据。而使用传统RAID,您可以通过分条来提高速度。

  • 它不支持实时恢复。而使用传统RAID,当磁盘发生故障时,您不必停止工作。

  • 它只能从有限数量的磁盘中恢复损坏。而使用传统备份的话,您可以从整个磁盘阵列的完全故障中恢复。

  • 只保存文件,时间戳,符号链接和硬链接。权限,所有权和扩展属性不会保存。

Snapraid的使用

  1. 快照
bash
snapraid sync #第一次创建快照会比较慢,因为需要扫描所有硬盘,后续的快照创建会快很多,使用增量备份策略

snapraid diff # 从上次快照到现在的文件变动

snapraid list | more # 列出快照索引文件列表
  1. 数据完整性检查
bash
snapraid scrub # 
# 命令的每次运行默认检查阵列中8%的数据,但不包括前10天内已经检查过的数据。
# 您可以使用-p,--plan选项指定不同的百分比,使用-o,--older-than选项调整超过的天数。
snapraid scrub -p 5 -o 20 scrub # 例如,要检查超过20天的数组的5%
  1. 快照状态 如果发现静默或输入/输出错误,则相应的块在.content文件中被标记为坏,可以用”status”命令列出。
bash
snapraid status

snapraid -e fix # 要修复他们,可以使用”fix”加上筛选坏块命令-e,--filter-error
  1. 恢复删除

SnapRAID比起传统RAID系统,更像备份程序,可以使用-f,--filter选项将文件恢复或取消删除以前的状态 恢复,只需要输入OMV的相对文件夹路径

bash
snapraid fix -f FILE
snapraid fix -f DIR/
# 可以使用它恢复目录中的意外删除的文件,使用-m,--filter-missing选项,只恢复丢失的文件,不改动所有其他文件。
snapraid fix -m -f DIR/
snapraid fix -m


snapraid -d <硬盘> -l fix.log fix # 恢复整个硬盘

snapraid -d <硬盘> -a check # 恢复后进行数据验证

参考: 1、https://www.snapraid.it/manual 2、https://zhuanlan.zhihu.com/p/32040033

Gitalking ...