如何确保移动硬盘的大量数据不会损坏?

2022-07-26 05:42:32 +08:00
 kerrspace

小弟有一个问题,假设我不信任网盘(倒闭或者加密压缩文件都被乱杀和谐,百度云盘经常干这事)和类似群晖(故障毁盘,扩展能力有限)这样的软件,我就使用最原始的手工的办法,每一个移动硬盘都准备一个备份盘,譬如说 ABCDE 五个硬盘,我就有完全对称的 abcde 五个备份盘。

现在问题来了,这样备份肯定隔一段时间就要确定数据有没有损坏,譬如对比 A 和 a ,如果 A 有坏道导致数据损坏,就 copy a 的内容到 A 。如果长时间不 check 肯定最后 a 和 A 都要损坏,备份就失去意义了。所以要经常比对

大家有什么好的对比检测文件是否有损坏的方案吗?

譬如说我全部打包成压缩包,只要压缩包能正常解压能不能说明文件一定没有损坏? step 1. 统计 A 中能正常解压的压缩包 step 2. 统计 a 中能正常解压的压缩包 step 3. 把属于 A 但不属于 a 的压缩包从 A 复制到 a step 4. 把属于 a 但不属于 A 的压缩包从 a 复制到 A

5512 次点击
所在节点    程序员
59 条回复
cr0wd
2022-07-26 08:53:01 +08:00
想到了 SnapRAID
bigdoing
2022-07-26 08:54:58 +08:00
受不了你们搞这么复杂干嘛,多余的设备,维护精力,折现给我,我教你

把文件加密备份到云盘不就好了吗,一般情况是破解不了的,密码用 1024 位,单独存另一个地方,手机里也行

本地有用的数据,云端永远有一份离线数据,简单又干净

还不放心,就隔一段时间下载下来,对比 md5

快给钱
bigdoing
2022-07-26 08:57:14 +08:00
不要加密压缩,用常规的加密,加密之后,文件内容看起来就是随机,
理论上本地数据,云端数据,一起坏的概率,很低
catsoul
2022-07-26 09:16:04 +08:00
@bigdoing OP 意思就是有的沙雕网盘会直接爆杀所有加密文件,所以直接 pass 了网盘方案
mxT52CRuqR6o5
2022-07-26 09:29:08 +08:00
@kerrspace 群晖有 12 盘的型号啊,配上 10T+的硬盘都能组上百 T 的阵列了
zlowly
2022-07-26 09:35:47 +08:00
压缩包都有 CRC 校验的,里面的数据损坏就会导致部分甚至所有文件无法解压。
如果是想要快速比较不同目录(硬盘)下数据,可以对所有文件做 HASH ,然后进行 HASH 比较即可。Linux 下有 hashdeep 之类对目录 Hash 的工具。
luny
2022-07-26 09:40:22 +08:00
这种是不是考虑增量刻盘备份,成本不是很高
GrayXu
2022-07-26 09:46:36 +08:00
第一段就是 RAID1 。MD 也是 raid
后面抛出了个远古问题,ZFS 很早就解决了。请搜索 zfs scrub 。
Martin123123
2022-07-26 10:24:03 +08:00
不太确认 op 的使用场景,对于这种数据损坏的校验一般 nas 提供的解决方案已经足够优秀
比如群晖的 Hyper Backup 、Snapshot Replication ,RAID -> Snapshot -> Backup 很多时候已经足够保证你文件的安全
至于容量这块的话,比如我的 1821+自身就有 8 盘位,基本上不太需要拓展,而且如果需要拓展可以考虑使用 DX517 / DX1222 ,如果 8 盘位的情况下都会存在容量不足的情况是否应该考虑一下更换更大容量的硬盘「 16tb ?」毕竟即便是 RAID1 的情况下都有 64TB 的容量,即便存在其他备份盘的场景,正常也不会低于 40tb ,单价 1tb 也是 100 左右,逐步更换更大容量的硬盘可能更合适
geniussoft
2022-07-26 10:35:40 +08:00
@kerrspace
你要搞清楚,群晖不是“故障毁盘”

DSM 非常敏感,比如数据线上的 CRC 错误,比如接口上的不稳定。
它只是将不可信的磁盘进行了标记,并没有“毁盘”。
只是为了拯救你的数据罢了。

DSM 的逻辑是,你的数据,肯定比磁盘贵一个数量级以上。因此,无条件保全数据的安全。

---

大部分 RAID1 巡检都无法对比数据,请了解。
另外,企业级机械硬盘,发生位反转的可能性几乎为零。
tool2d
2022-07-26 10:37:24 +08:00
文件少量损坏是正常的,网上分享文件都是加恢复卷的,这都是血淋淋的教训。

文件大量损坏是不正常的,一般意味着要直接换硬盘了。

本来就是离线保存,不用考虑那么多。只要恢复卷能正常工作就可以了。
hezhile
2022-07-26 10:44:18 +08:00
ecc ram + zfs
libook
2022-07-26 10:44:36 +08:00
用 md5 之类的 hash 算法算一下两个硬盘里的文件是不是一样。
但有个问题就是如果不一样的话你不知道是哪个硬盘里坏了,所以最好把算出来的 md5 值存下来,用这个值分别对比两个硬盘上的文件算出来的 md5 值,看哪个不对,就大概率是哪个坏了,这样的话你就至少还有一块硬盘存这个 md5 值。
但此时另一个问题来了,如果两块盘的文件算出来的 md5 值和你单独存的 md5 值不一样,就得看两块硬盘文件算出来的 md5 值是不是一样,如果一样就说明大概率你存 md5 值的那个盘坏了,如果也不一样就说明……额,就不知道怎么回事了。

把上述操作稍微进行一下改进(比如引入奇偶校验)和简化,就差不多是一个叫做 SnapRAID 的软件了,这个软件就是手动运行检查你的数据盘和校验盘,看数据是否损坏,如果损坏了可以手动给个指令进行修复。
newmlp
2022-07-26 10:46:19 +08:00
可以用纠删码冗余一些数据,可以在有限的数据损坏时进行恢复,比如 Windows 的存储空间,或者 minio 进行数据存储
leefor2020
2022-07-26 10:46:23 +08:00
我重要文件一般三份,NAS 上,移动硬盘(这个是加密的版本,防止移动硬盘丢失数据泄露),然后加密后的再备份到 Dropbox
Greenm
2022-07-26 10:51:42 +08:00
云盘不能只拿国内的云盘举例,也要考虑国外的云服务。

国外的成熟 SaaS 服务能够做到 6 个 9 甚至更高的可靠性,个人从成本的角度出发很难超过这个值。 将本地的数据用 GPG 加密后上传到国外的网盘服务或者对象存储,如 backblaze ,我觉得是比较合理的方案。
lslqtz
2022-07-26 10:53:36 +08:00
唯一的解决方法就是备份,备份手段相对不重要,备份数量和校验重要。
chevalier
2022-07-26 11:27:50 +08:00
5 块硬盘冷备份,最好存在两个地方,规避火灾水灾等情况
xiaowu2oi3
2022-07-26 11:31:55 +08:00
两地三中心个人可以三个品牌移动硬盘同步数据,然后存放在不同地方,也可以加密网盘再跑一份。
bigdoing
2022-07-26 11:52:45 +08:00
@catsoul 云盘可以白嫖,永远不付钱
既然都要花钱了,加密存 oss ,不是更便宜,简单
或者存 aliyun ecs 也可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/868676

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX