求 Windows 和 macOS 下单盘防止 bit rot 的最佳实践

查看 52|回复 3
作者:cuso45h2o   
确实遇到过 bit rot 导致部分数据损坏的情况,也多次看见各种场景下 bit rot 的案例(本站好像就有, https:///t/695160 第 119 条回复可确定 bit rot )所以我对文件系统的数据完整性功能比较看重。
因为用的 Windows 轻薄本只能插一块 M.2 硬盘,研究了一种单盘抗 bit rot 的方案:自制了一个小工具每 10 分钟 rclone sync 客户端侧加密单向同步到 Google Drive 一遍。因为开启了 ReFS 完整性的 Enforced ,手动破坏 VHD 文件实验确定 ReFS 确实能阻止对损坏文件的读取,从而防止 rclone 上传损坏文件。因为发现在尝试读取损坏文件时会触发一个 System EventID=133 的事件,我还做了一个 133 事件时自动从 Google Drive 拉回对应完好文件的功能。不知道是不是单盘的原因,Microsoft\Windows\Data Integrity Scan 这个 Scrubber 总是不工作,在 1 秒内退出,扫描不出任何错误,所以还做了一个每天凌晨 3 点全盘读取一次的功能(我嫌麻烦从来不关电脑也不睡眠)。
但我最近多次在 Reddit 等地方看到 ReFS 的负面文章(尽管在我手动破坏 VHD 的实验中表现的似乎还不错,除了那个 Scrubber 无法工作外没有出现预期外结果,但那些 Reddit 上发帖的用户做了自动化测试脚本,比我的实验覆盖的用例多不少),同时我还有一台使用 Apple M2 Pro 处理器的备用笔记本(无法在物理机上直接安装 Windows ,macOS 下似乎没有支持文件内容 checksum 的文件系统)想问问有没有什么更好的实践。
我也考虑过不基于文件系统的实现,定期全量校验文件 hash ,但这种情况下除了无法防止因硬盘固件等问题导致数据在写入硬盘前就出现错误外(我的现有方案也无法纠正这种情况的错误),无法拦截错误数据的读取,更重要的是无法准确判断是否是用户的主动更改(发现了一个软件在保存文件时不会更新文件的修改时间,不知道是用了什么办法写入数据的)
我必须使用的生产力软件没有 Linux 版本,也完全无法在 wine 中工作,因此请不要推荐使用 Linux ,以及用奇怪的办法在 Windows 下使用 Linux Only 的文件系统,例如 ZFS 。

文件, rot, refs, Windows

cuso45h2o
OP
  
修改了几处不通顺的表达,提示不能编辑这个主题
msg7086   
存储介质的静默 bitrot 很少发生,发生的原因大多是内存损坏,数据在到达存储介质之前就坏了。存储介质内部有 ECC ,如果错误数量少于 ECC 能纠错的数量就会静默纠错,多于数量就会直接报校验错。所以一般建议的措施是换用 ECC 内存,或者直接上工作站/服务器平台。
mokiki   
虽然你不要大家推荐 ZFS 和 Linux
但是 ZFS + Linux + Qemu 的虚拟化方案你有没有想到过?
您需要登录后才可以回帖 登录 | 立即注册

返回顶部