前不久和同事讨论 nas 数据安全问题,他最近刚入 nas 坑,买了两个盘,由于曾经经历过多次多年数据损失,买了希捷企业盘( 8t )选择了保守的 raid1 ,我一听,觉得没必要太费空间了,况且这个盘也不便宜,而且他入的貌似四盘位 nas (没细问),于是就介绍我的处理方案:重要数据定时一个任务在两个盘内备份就好,不组阵列来容错,而且我也觉得软 raid 重建也是头大的问题。
于是就有了他灵魂的一问:万一你原始数据盘中文件部分损坏,那复制过去不是都坏了?(他看中 raid 有数据校验功能,认为 raid 可以规避这个风险)
听到愣了一下,想说这种事情概率极低吧?好像又不合适,确实有这个硬盘内比特翻转的风险,自己也经历过大量数据复制时发生数据部分损坏情况,于是没有立刻回答。
后续自己觉得这个事情不对劲,不可能存在这么大个风险而专业厂家不解决,不然 IDC 也开不下去啊,因为我自己用的是群晖,就在群晖官网找答案,果然有: www.synology.cn/zh-cn/dsm/Btrfs,原来在文件系统层面就已经解决了这个问题,普通用户该咋用咋用。

Zfs. Btrfs 都有这个功能。我用 btrfs ,手动命令操作简单。为防止意外,有同步备份,既然有备份了,还要个鬼的 RAID1 ,我又没有不停机换硬盘需求,用 RAID1 就是自找麻烦。

BTRFS 这个系统优点很多,但不适合用来装数据库。应该也很少有人会用 NAS 来装数据库……

单盘 H 啊哈哈

小知识,备份不是冗余,对数据安全有要求的场景备份和冗余都要做

RAID1 保障硬盘故障还能正常运行,换一块硬盘就行备份保障硬盘故障/误删除还有一份数据,不止于一无所有,但是恢复原有配置麻烦点在优先级上二选一,肯定是选择备份,但是云备份也是一种备份,可能他已经云备份了在同一台机器内的两个盘拷贝一份资料,勉强算是备份吧,不算安全的备份,比单纯的 RAID1 强一点群晖的硬盘检测功能,基本上硬盘坏一点点就让你换硬盘了,个人觉得,这个时候丢失的数据在承受范围内

数据丢了就是下一份帖子了,我感觉人家用 raid1 没毛病,IDC 都用 raid10 ,或者有单独的备份服务器

我真正重要的数据都在 google drive 和 google photos 里,nas 也备了一份。nas 5*20T, 开了 SHR-2 (两个盘的冗余),基本就是一些电影啥的,两盘冗余也坏了丢数据那也就认了。。在搞冷备份,热备份啥的不值当。

鸡蛋不放一个篮子,每天数据都分发到不同的存储中。

zfs 省心省力

NAS 我都没做 RAID ,浪费磁盘。重要数据我都是定时同步到其它盘额外保存一份,不重要的都不用存多份。

你要考虑的是万一原文件由于误操作或者编辑坏了或者被勒索病毒加密了,备份会不会也同步

电影也要冗余么

靠 RAID 来做数据安全,总有一天会被教做人RAID 的设计目的是高可用,是盘有故障时换盘不停机,不是用来做安全备份的手抖误删了文件,RAID 有用吗?中了勒索病毒,RAID 有用吗?电涌把 NAS 炸了,RAID 有用吗?熊孩子把 NAS 浇水了,RAID 有用吗?

我直接 snapraid+mergefs 没那么多花里胡哨的

#1 RAID1 可能是防止单盘整个损毁的极端情况吧,比如用二手盘就很需要 RAID1我是重要数据云备份,次重要数据备份到另外一块盘;数据无价

感觉就是分布式考虑的那些问题嘛

"重要数据定时一个任务在两个盘内备份就好,不组阵列来容错"你的观点是单盘靠复制来容错对吧?然后你发的链接,官方明确表示:”Btrfs 文件系统就能通过镜像元数据自动检测到损毁的文件(静默数据损坏),并使用支持的 RAID 存储卷来还原受损的数据,包括 RAID 1 、RAID 5 、RAID 6 、RAID 10 、F1 和 SHR 。“前提条件不是租 RAID1 以上吗?所以我觉得,你可能、大概率还是坑了对方。🤣重要数据可以只多备份,但一定要有冗余文件,比如 PAR2 、RAR 恢复卷。

snapraid 配置数据巡检,关于空间浪费,snapraid 做到了很好的均衡,这是我的选型参考。元旦把我一块服役了 13 年的老硬盘换掉了,重建非常丝滑。

RAID 解决的是高可用性,就是一个盘故障了数据还能访问。备份是一套策略,解决发生灾难后能恢复数据。两者不要混为一谈。

那请问做安全备份需要什么方案?

这超链识别有点奇怪啊,重新更正一次: blog.io01.xyz/posts/6op1/#raid-%E9%80%89%E5%9E%8B

感谢这个帖子,涨知识了。

比如,你要分析自己的备份需求,看是需要在线近线还是离线,是手动操作还是全自动,有没有异地容灾的需求等等。备份可以使用各种存储设备和媒体,特点是都要跟你日常使用的存储设备分开。比如苹果的 TimeMachine 就可以算是自动化的在线备份。自己定时拷贝到网盘,也算是手动的在线备份。自己准备个大容量移动硬盘,隔段时间把数据拷贝进去,算是手动的离线备份。企业场合弄个磁带库,由软件控制定时存到磁带上,那就是自动化的离线备份。再把这些磁带或者磁盘有好事者车载以入拉到隔壁省,那就是异地容灾了。等等等等,不一而足,专家们可以补充。

文件级别解决位反转可以考虑用 Parchive

确实该补充,后续了解到,btrfs 在某些阵列时候才有修复,单盘只使用其读取时校验特性,报告文件损坏而不污染损坏文件到备份盘中,这样也就防止了错误扩大

这点倒是还好,做了快照以及备份不是那么频繁,文件还是能保住的🤣 定时备份是权衡利弊下的选择,毕竟个人真正不可或缺的数据量不是那么多,绝对重要数据也遵循 3-2-1 备份原则,即保存三份文件,存储在两个不同介质中,一个异地备份,个人唯一一次文件丢失损坏还是几年前拷多年收藏的电影到 nas 中时候,回想起来应该就是拷贝时出现错误导致

文件真的会静默损坏,我从 17 年开始用群晖,以前就是用的楼主说的办法,定时 rsync 同步,无意发现有些照片不知道什么时候已经损坏了,从一年前开始老老实实用 raid1 。自建 nas 用 zfs raidz1 ,定期扫描。

对了,Btrfs 和 zfs 都支持快照,我设置了每天快照,保存三个月的版本用于解决数据误删中毒问题

少许疑问,按我理解损坏不是直接打不开或者少许损坏自我纠错就过了那种吗?还有就是副本也同时损坏了吗?

#29 损坏的表现要看具体的文件类型,损失的部分重不重要,程序如何解析数据。不知道你有没有试过播放没下载完的文件,迅雷时代经常遇到文件下载到 99%不动了,或者不到 99%,这时候用把文件拖到播放器大概率是能播的,但是无法拖动进度或者到播放到某个位置就卡住了。副本确实坏了,但是时间太久了,中间 Nas 坏过,文件拷来拷去,已经说不好是哪一次出的问题了。

视频损坏倒是了解其能继续播放,之前拷贝时损坏过,中间有几帧卡丢那种,图片( jpeg )我一直认为其用了压缩要是有损坏就拿不到完整 bitmap ,看来还是知识浅薄了🤣

哈哈哈哈,正好昨天实现了一个冷备方案的小工具,OP 可以看这个帖子: hesudu.com/t/1007499

RAID 是规避硬件故障, 始数据盘中文件部分损坏 硬盘坏道会引起。idc 服务器用的就是 raid 卡组,5 就够有坏换一个盘自动重建。

实践才是检验问题的好办法,我自己 2007 开始用 RAID5 后转 RAIDZ ,前后 17 年,期间遇到过 2 次磁盘损毁,没有丢失一次数据。实际上大部分丢数据都是因为认为操作不当,只要你在灾害恢复时有清晰的思路 RAID 是完全没有问题的。况且现在主流的 NAS 系统都带 snap 功能,合适的配置后完全能抵御误删,病毒等问题。

前单位遇到过一次事故,raid 硬盘同时全毁,你能信吗?

等硬盘坏掉时候就知道 RAID 到底有没有必要了,还有就是 IDC 都是 RAID10 起步有条件会做异地容灾,其次就是硬件 RAID 卡一般都有静默纠错功能

这个之前有讨论过 note.lishouzhong.com/article/wiki/%E7%BE%A4%E6%99%96%E7%9B%B8%E5%85%B3.htmlmdadm 有冗余的情况下 btrfs 才会 self healing 单盘只检查不修复 raid1 有可能因为 lvm load balance 不修复从盘 bit rot 主盘一定修复 raid5 以上一定都修复 但是群晖内核太老 btrfs raid5 还不在 stable 状态 有写入黑洞问题

真的重要数据,应该是多套方案来保整尽量安全。我没什么重要数据,但我的小姐姐们都是 raid1 。

原来我也是冷备,后天安装套件那个盘告警,迁移好累,我就搞了 2 个 18T 做 RAID1

你这个奇妙的问题我也遇到过,我甚至神经质的思考以后要不要每个文件名末尾都用 MD5 命名呢,同一个文件我甚至出现几分钟前后通过 wifi 传输完 sha1sum 就合不上的事情。虽然很多时候,视频和图片,即使几个字节被更改,一样可以正常使用,但想想就是很膈应人啊。所以我现在很多东西都放在压缩包里,拿出来用也是压缩包然后再解压,因为压缩包自带校验,损坏了至少自己会立刻知道。网盘也不保险,我以前也出现过从网盘下载的数据合不上。。。

远离 btrfs ,目前真正可靠可用的只有 zfs

不用的。而且像有些朋友提到的冗余不是备份,只是那些数据不重要,而且那么大的量搞备份很贵很麻烦。所以就简单开个冗余。

“前提条件不是租 RAID1 以上吗?”并不是。zfs 一直都有校验。但是没有冗余数据的话,就算知道数据错了又能怎么办呢?区别在于 zfs 能检测错误,而其他一些文件系统无法检测。不组 raid1 ,还想应对冷错误的话,也有办法,zfs 有个 copies 参数。因为是单盘,所以无法应对硬件损坏或是文件系统结构错误。只可以应对文件数据上的冷错误。

现实是好多人没有异地备份的条件。手抖误删文件 btrfs 这类文件系统可以支持 snap ,空间占用很少,这个对 raid 来说不是问题同一台机器上的数据备份也无法解决炸 nas 的问题相比较而言 raid1 可以实时镜像数据而且数据读取写入冗余更高当然我认为最好的方式还是 raid+异地备份