我在家里和工作中都使用带有 raid1 卷的 LVM。我家服务器中的一个磁盘开始报告 SMART 自检读取失败。在寻找调查问题严重性的方法时,我发现了lvchange --syncaction check
,它(不出所料)发现跨该磁盘的卷之一存在不匹配,并且还导致内核报告 I/O 错误。因此,我将镜像的那一侧移到另一个磁盘,并假设无错误的磁盘具有正确的数据。
但是它还发现其他没有 I/O 错误的卷存在不匹配,包括一个不跨相关磁盘的卷,以及工作服务器上的一些卷,这让我感到担忧,因为无法知道镜像的哪一侧是正确的。我们讨论的是,一个 155 GiB 卷上有 20736 个不匹配块,一个 1.2 TiB 卷上有 32640 个不匹配块,一个 47 GiB 卷上有 6912 个不匹配块,一个 18.6 GiB 卷上有 256 个不匹配块。
- 看到这样的数字很常见吗?有些磁盘已经运行了大约 5 年,其他的只运行了几年,我想负载不是那么重。在哪些情况下出现不匹配是正常的(没有崩溃),比如说,如果在更改完全写入磁盘之前写入文件然后删除文件,写入操作可以中止吗?我发现有人提到了镜像交换,但这与此无关。
- 是否有任何工具可以精确定位哪些文件(甚至文件系统元数据)可能受到影响?仅凭不匹配的数量并没有多大帮助。我能想到一种方法,即在镜像中将一个 PV 标记为主要写入,复制整个文件系统,然后将另一个 PV 标记为主要写入并进行比较(避免在此期间进行更改),但这似乎相当麻烦。
- 可能是许多(甚至所有)不匹配项都位于未分配的空间中。我可以写入所有空间以强制同步这些块,然后查看不匹配项的数量是否减少。还有其他建议吗?
- 我是否应该运行
lvchange --syncaction repair
,希望一切顺利,然后激活--raidintegrity
?我还没有注意到任何文件系统或数据损坏;我可以预期我看到的数据是将重新同步的数据吗?