注意:这是对是否有办法保护 SSD 免受因断电而损坏的后续问题?. 我在那里得到了很好的信息,但它基本上集中在三个方面,“获得 UPS”、“获得更好的驱动器”,或者如何处理 Postgres 的可靠性。
但我真正想知道的是,我是否可以采取任何措施来保护 SSD 免受元数据损坏,尤其是在旧写入时。回顾一下这个问题。它是金士顿消费级 SSD 上启用写入缓存的 ext4 文件系统,我们看到了以下类型的问题:
- 具有错误权限的文件
- 已成为目录的文件(例如,toggle.wav 现在是一个包含文件的目录)
- 已成为文件的目录(不确定内容..)
- 带有乱码数据的文件
这些事情发生在驱动器出现故障时或不久之前正在写入的数据上,问题就不那么重要了。这是一个问题,但这是意料之中的,我可以通过其他方式处理它。
更大的惊喜和问题是,磁盘上最近未写入的区域(即一周或更长时间)发生了元数据损坏。
我试图了解这样的事情是如何在磁盘/控制器级别发生的。这是怎么回事?即使我在其他地方写,SSD 是否会定期“重新平衡”并移动块?像这样:
然后在重写 D 时会出现功率损耗。块 1 上可能会留下一些碎片,而块 2 上可能会留下一些碎片。但我不知道它是否可以这样工作。或者也许还有其他事情发生..?
总而言之-我想了解这是如何发生的,以及我是否可以采取任何措施来缓解操作系统级别的问题。
注意:“获得更好的 SSD”或“使用 UPS”在这里不是有效的答案——我们正试图朝着这个方向前进,但我必须接受现实,并用我们现在拥有的东西找到最好的结果。如果这些磁盘没有解决方案并且没有 UPS,那么我想这就是答案。
参考:
SSD 驱动器的 ext3 分区上的突然断电后文件系统损坏是“预期行为”吗? 这很相似,但不清楚他是否遇到了我们所遇到的问题。
编辑:我也一直在阅读 ext4 可能存在断电问题的问题。我们的有日记,但我不知道其他任何事情。
http://www.pointsoftware.ch/en/4-ext4-vs-ext3-filesystem-and-why-delayed-allocation-is-bad/