我对硬盘一无所知,我想知道云服务提供商如何监控硬盘问题(数据损坏、数据丢失、硬盘故障等)。在谷歌上搜索,除了“下载硬盘制造商维修套件并按修复”外,没有找到太多信息。我想知道修复过程中发生了什么,更好的是,云提供商如何定期监控硬盘质量。我读到 BackBlaze 做了一个日常的SMART 统计分析之类的东西,看看他们的硬盘运行得如何,但我不确定这到底意味着什么。
我们用智能工具捕获 SMART 数据。
回购是这里,但我想知道这个 Smartmontools 正在做什么。不一定是详细的,但可以简要概述一下。从 repo 中无法真正看出它的作用。
我想象的(监控硬盘)情况是这样的。创建一个包含每个文件的 MD5 哈希值的数据库。定期扫描整个硬盘,并根据保存的 MD5 哈希值对每个文件进行校验和。但这似乎会非常慢,尤其是在 TB 级硬盘上。我不太确定你会遇到哪些类型的故障,以及你会收到哪些类型的通知。也许你可以使用文件系统事件,但我不确定它在外部驱动器上(而不是主机上)如何工作。但即使它在外部硬盘上工作,我也不确定当数据因设备老化而损坏时它是否会收到通知。因此,检查数据是否正确的唯一方法似乎是将当前数据与旧数据进行比较。但除了校验和之外,我真的不确定还有什么有效的方法可以做到这一点。
在监控过程中,您最想做的是了解驱动器何时开始无法正常工作,以便做好更换驱动器的准备。修复驱动器是另一回事,我不知道它是如何工作的,但我不会在这里问这个问题。我只想知道您通常如何监控外部硬盘驱动器,以及如何知道它何时开始无法正常工作(即如何以有效的方式知道数据是否已损坏/丢失,等等)。
这似乎提供了一些信息。
我不想仅仅知道“只需应用 x 技术”,我还想知道如何真正地将它实现为一个应用程序或其他东西,至少是入门的基础知识。
答案1
“我想知道云服务提供商如何监控硬盘问题”
其实不然。驱动器通常会突然出现故障。答案是构建能够经受住故障的系统。大型云服务使用位于多栋建筑中的大量服务器集群,其中有使用镜像 RAID 阵列(冗余存储数据)的服务器,以及镜像其他服务器的服务器。
因此,冗余位置、冗余服务器、服务器中的冗余驱动器。
Google 发布了关于其磁盘故障率等的研究,基本上:SMART 基本上没用,并且驱动器故障在 3 年左右会大幅增加。
获得第二个驱动器,镜像它们(robocopy(Windows 的一部分)是消费者的绝佳选择),每三年更换一次。如果你可以将数据副本复制到异地,那就这样做吧。
修复驱动器只能从没有备份的驱动器中移除数据。您不能再信任它们,应该抛弃它们。如果您有镜像备份,只需更换故障驱动器,将现有数据镜像到该驱动器上,然后继续。
我使用一台低功耗设备作为 LAN 上的服务器,并配有两个匹配的外部驱动器(我寻找价格在 100 美元左右的大型设备)。我将备份推送到服务器驱动器,服务器安排例行镜像操作将备份复制到另一个驱动器。我还会不时对我的重要机器进行镜像,以便在需要时恢复操作系统安装。
我每隔几年就会更换一次外部磁盘,并且通常会将驱动器从机箱中取出,并将其用于批量存储非关键数据(例如我的一台主机中的游戏),直到下一轮。