我的集群(具有 RAID 5)中的一个磁盘上周坏了,我不得不更换它。重建和一致性检查后,一些属于不同用户的数据丢失了。我需要确切地知道我们丢失了多少数据以及丢失了哪些数据。是否有任何日志文件或程序/软件包可用于此目的(没有备份)?
谢谢
答案1
重建通常不可逆,这意味着重建过程通常不会保存有关如何退出无法正常运行的重建过程的信息。相反,人们依赖于备份。
您应该始终备份重要数据。
识别更改数据的另一种方法是使用文件完整性检查器,例如 AIDE、Integrit 或 Tripwire。但是,此解决方案还需要与之前的数据进行比较。
日志可能会有所帮助。即使是保存的目录列表也会有所帮助。但是,如果您没有这些资源,可能就没有一种众所周知的方法来确定您正在寻找的信息。
要理解原因:我已经了解了 RAID5 如何使用 XOR 工作。XOR 有时被称为简单检查相同性的操作。因此,您有两个驱动器,其中包含要跟踪的数据,以及一个奇偶校验驱动器,用于识别在另外两个驱动器上找到的两个对应位是否相同。如果您丢失了奇偶校验驱动器,只需重新制作它即可。如果您丢失了其他任何一个驱动器,您可以通过查看剩余的数据驱动器并查看位是否相同(由奇偶校验驱动器记录)来恢复,然后您可以找出丢失的驱动器上的哪个位。
就是这样。就这么简单。*不幸的是,如果这个过程由于某种原因失败了,可能没有神奇的方法来找出发生了什么坏事,以及应该发生什么好事。因此,软件没有明确的途径来知道如何简单地“修复”这种情况。我知道这不是你希望听到的消息。抱歉。
.* 好吧,我说就这么简单。实际上,我的理解是实际的 RAID 实现通常具有使事情复杂化的标头,例如与其他 RAID 实现不兼容。但是,标头是驱动器的某个部分,与整个驱动器空间相比相对较小。因此,如果存在影响驱动器其他区域(即驱动器的大部分区域)的问题,您不太可能在那里找到解决办法。