最近在折腾NAS,家里的那块Mycloud看着要挂,做一个自检,整个SMART都没反应了。毕竟mycloud是Debian深度定制版,我也不想去折腾。

指望着一个NAS跑NFS做vCenter的datastore,怎么解,再弄一个NAS把。于是瞄上了OMV(NAS三部曲)。今天讲备份,于是瞄上了Snapraid,新技能get。

题记

少年的我有过硬盘损坏的硬伤,导致丢失了很多数据,最要命的是照片,那青春的定格现在只存在恍惚的记忆里面了。

所以任何时刻我都会有移动硬盘的备份;还得+2,还得异地。因为只是离线快照,所以一直以来用FreeFileSync就搞定了。

总之我们的口号就是:我们我们猴子,爱吃爱吃桃子… oh 不,简单就是美。

公司用Office 365,所有的存储都用onedrive,云存储好处在于实时同步与备份;坏处就是Admin可以随时获取你onedrive文件内容。谁在窥探我的隐私!oh不, 公司的电脑不就是工作么。但是最近Work From Home和COVID 19一起大流行。

以至于我有点分不清东南西北了,但是决定抛弃onedrive而拥抱nextcloud(NAS三部曲)

回到今天的主题snapraid;安装过程真是很曲折,Exsi Virtual Machine(VM)跑OpenMediaVault(OMV),然后OMV上装snapraid的插件,当然OMV上装docker插件跑nextcloud。

那么问题来了,snapraid是干什么吃的?这哥们说到底就是做离线快照,顺带把数据给备份了。它使用类似RAID的检验算法(Parity),在文件层上做备份。而文件层上备份的好处是其高移动性(不受底层硬盘限制),和NAS简直是绝配。

Snapraid好处多多

  • 保证数据完整性(data integrity to avoid silent corruption)
  • 做备份/快照不需要硬盘格式化(文件层面)
  • 随时恢复上一个快照的的文件或者目录

Snapraid的使用

  1. 快照(snapshot)

    snapraid sync
    注: 使用增量备份策略,第一次做快照会进行全盘索引,跑个大半天?后续增量快照会比较快

    snapraid diff
    注: 列出下次要备份的文件列表(从上次快照到现在的文件变动)

    snapraid list | more
    注: 列出快照索引文件列表

  2. 数据完整性检查

    snapraid scrub
    注: 数据存储时间越长,越容易产生完整性问题。此操作检查10天前8%的硬盘数据完整性。你要100%全覆盖检查200天前的数据完整性?

    snapraid scrub -p 100 -o 200 scrub

  3. 快照状态

    snapraid status
    注: 看到no error就ok;如果有坏道/完整性错误,标记之

    snapraid -e fix

  4. 快照恢复

    毕竟是做文件快照,所以除了恢复硬盘这个基础需求,它还可以恢复当个文件和文件夹

  • 恢复单个文件

    snapraid fix -f ‘<文件名>’
    注: 单个文件恢复,不用写文件路径: snapraid fix -f ‘Feels Like Summer’

  • 恢复整个文件夹

    snapraid fix -f ‘<文件目录>’
    注: 文件夹(含文件)恢复,只需要输入OMV的相对文件夹路径: snapraid fix -f ‘/Media/’

    OMV的共享文件夹目录通过在mntent xml进行设置 /srv/dev-disk-by-label-VOLUME1

    如果我把硬盘标签设置为nas,那么共享文件夹的根目录就在:/srv/dev-disk-by-label-nas。

    Snapraid要备份的就是OMV的共享文件目录。

    所以我在这个目录下创建了一个共享文件夹叫Media,恢复的时候就输入 /Media/

  • 恢复上次快照前的误删除文件

    snapraid fix -m
    注: 有点版本回滚的意思,snapraid是做文件快照,但它不会存储多个文件快照,所以离线备份不能丢。

  • 恢复整个硬盘

    snapraid -d <硬盘名> -l fix.log fix
    注: 全盘扫描,哪怕没有数据变更,速度很慢很慢,很慢很慢,很慢很慢。

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

Snapraid配置文件

OMV的存放目录: /etc/snapraid.conf

ls -l /etc/sn*

划重点就是设定硬盘类型

  • data (数据盘): 放电影,放音乐,放飞自我…..

  • content (索引文件):所有数据盘和校验盘里都保存一份(索引文件丢了,咋恢复)

  • parity (校验盘):不可以存储数据!一个校验盘可以支持四个数据盘,前提是校验盘一定是所有硬盘中最大容量的。
    注: 一个校验盘只能恢复一个数据盘,所以如果同时两块硬盘挂了,你只能其中恢复部分数据。所以离线备份还是不能丢(万一连续几块硬盘坏呢?)

Snapraid功能限制

  1. Only file, time-stamps, symlinks and hardlinks are saved. Permissions, ownership and extended attributes are not saved.

    如果ssh到OMV服务器上做单个目录恢复的话,目录权限会变成root;意味着恢复之后NAS的用户就无法读写了。所以只能硬改用户权限了

    #chown -R (NAS User) (folder path)

  2. Snapraid只做硬盘快照(文件层面),你可以定时备份策略1小时,1天,1星期;但就是不能实时。

  3. 每个文件都会建立索引,所以如果硬盘上有大量的琐碎文件,索引就会变的非常大
    注: 家用NAS系列,要搞企业级,还是别当真了。

Tips

  1. Snapraid官方指南 点我穿越门
  2. 硬盘可以活多久点我穿越门

我是快乐的分隔线

AD