一位室友向我建议,我应该使用 btrfs,而不是到目前为止我一直在做的事情,即使用带有克隆驱动器的 mdadm,并在阵列中添加一个额外的驱动器来“克隆”备份。该系统具有三个驱动器,它们都是物理上不同的型号:
- /dev/sda: 东芝 HDWQ140
- /dev/sdb: HGST HUS724040AL
- /dev/sdc:WDC WDS250G2B0B
好吧,我已经安装了 btrfs,但现在它已经运行了将近一年,我发现我应该每周运行一个 cron 作业来“清理”它。我开始尝试为此设置一个脚本,尽管它看起来像是一个愚蠢的 DIY 系统,需要你在谷歌上搜索一个脚本(我发现的热门脚本来自 2014 年之类的东西)并安装它以保持你的文件系统运行。
当我在做所有这些管理工作时,我发现了一些需要移动的文件......我将跳过血淋淋的细节,但是将文件从一个 btrfs 文件系统移动到另一个文件系统并再次返回会产生各种“输入/输出”错误”(在 ext4 中从未见过),甚至这个 gem:
Jan 4 21:19:19 host kernel: [9771285.171522] attempt to access beyond end of device
Jan 4 21:19:19 host kernel: [9771285.171522] sda1: rw=1, want=70370535518208, limit=7814035087
Jan 4 21:19:19 host kernel: [9771285.171529] BTRFS error (device sda1): bdev /dev/sda1 errs: wr 1, rd 0, flush 0, corrupt 5, gen 0
我假设这些是相关的。但这是真正愚蠢的事情。我不仅在已经存在一年的文件上遇到校验和错误,而且在我几个小时前从字面上复制到不同物理驱动器的文件上也遇到了校验和错误。此外,几乎所有这些文件都在巨大的文件中(例如 DVD iso 图像),如果这有任何迹象吗?
所以是的,我可能会同时看到三重驱动器故障,或者 btrfs 是否只是为我破坏我的文件?
此外,知识渊博的 btrfs 人员的每篇文章都包含一个可爱的小字“嗯,你应该从备份中恢复它......你确实有备份,不是吗”。所以告诉我,你们到底用什么来备份 4TB 硬盘?因为我不能确切地,你知道,把它写到 DVD 上,如果硬盘驱动器这么不可靠,那么备份到硬盘驱动器有什么好处呢?
这么严肃的问题:
- 这些校验和错误真的正常吗?
- 为什么我会在今天才复制的文件上看到它们?
- 定期磨砂足以防止这种情况发生吗?
- 我是否应该购买新的硬盘并丢弃机器中当前所有的硬盘,因为它们真的出现故障?
- 您建议如何备份多 TB 数据驱动器?
2022-01-07 更新:我smartctl
在所有驱动器上运行,并且这些驱动器都没有报告任何问题。所有驱动器的原始 UDMA_CRC_Error_Count 为 0。试图恢复损坏的文件...复制到机器的 tar 文件在几个文件出现 I/O 错误后失败。真的不知道这里发生了什么:
- 如果驱动器或电缆坏了,这会出现在 SMART 中,对吗?
- 如果CPU或内存不好,系统就不会完美运行吗?(目前 115 天没有明显问题)?
- 如果这是 btrfs 的一个全面的错误,它不会遍布整个互联网吗?
那么问题究竟出在哪里呢?
我正在回答我自己的问题,因为我认为这很有趣,并且可能对某人有用。
TL;DR 报告的问题的根本原因似乎是 DRAM 故障,而不是硬盘驱动器故障。