手动 LVM 群集或格式化导致输入/输出错误

手动 LVM 群集或格式化导致输入/输出错误

我尝试在不使用 CLVM 的情况下同时在多台机器上使用 LVM。这样做的原因是我发现 CLVM 相当不稳定,而且很难以我想要的灵活方式工作。鉴于我知道哪些服务器将随时连接到 LVM,因此我已采取在另一台机器上的 LV 更新时自动刷新机器上的元数据的方法。每当一台机器更新 LV 时,我只需刷新所有机器上该 LV 的元数据即可。更改可以顺利传播。

但是,我在运行(在此示例中)该命令时有时会收到如下所示的巨大错误块lvs

/dev/dm-0: read failed after 0 of 4096 at 0: Input/output error
/dev/dm-1: read failed after 0 of 4096 at 0: Input/output error
/dev/dm-2: read failed after 0 of 4096 at 0: Input/output error
/dev/dm-3: read failed after 0 of 4096 at 0: Input/output error
/dev/dm-4: read failed after 0 of 4096 at 0: Input/output error
/dev/dm-5: read failed after 0 of 4096 at 0: Input/output error
/dev/dm-6: read failed after 0 of 4096 at 0: Input/output error
/dev/dm-7: read failed after 0 of 4096 at 0: Input/output error
/dev/dm-8: read failed after 0 of 2048 at 0: Input/output error

这些错误实际上似乎并没有阻止我对系统上当前活动的逻辑卷执行任何操作 - 但显然它们不应该出现在那里并且表明存在更大的问题。我不确定这是否与我上面描述的集群方法有关。但是,我注意到,这似乎发生在格式化或分区 LV 之后。我很感激任何有关为什么会出现这些错误以及如何避免它们的线索。

答案1

事实证明,这是分区和我自己的集群解决方案的结合。从集群服务器“拔出”lvm时,必须记住停用卷组中的所有lv,否则设备仍将“存在”,但实际上无法读取,因为它不再连接到服务器。

然而,情节变得越来越复杂——随之而来的是,我的下一个问题与停用这些 LV 有关,我想知道我是否也会自己回答这个问题!?见这里

相关内容