我在 VMware + SAN 上有多个 Linux 虚拟机。
发生了什么
SAN 上出现问题(故障路径),因此一段时间内 Linux VM 驱动器上出现 I/O 错误。当路径故障转移完成时,为时已晚:每台 Linux 机器都认为其大部分驱动器不再“值得信赖”,并将它们设置为只读设备。根文件系统的驱动器也受到影响。
我尝试过的
mount -o rw,remount /
没有成功,echo running > /sys/block/sda/device/state
没有成功,- 苦苦
/sys
寻找解决办法却没有成功。
我可能没有尝试过什么
blockdev --setrw /dev/sda
最后...
我必须重新启动所有 Linux 虚拟机。 Windows VM 很好...
来自 VMware 的更多信息...
问题已描述这里。 VMware 建议将 Linux scsi 超时增加到防止这个问题的发生。
问题来了!
然而,当问题出现时做最终发生,有没有办法让驱动器恢复到读写模式?(一旦 SAN 恢复正常)
答案1
我们在这里遇到过几次这个问题,通常是由于网络长时间宕机造成的。问题不在于文件系统是只读的,而在于磁盘设备本身被标记为只读。除了重新启动之外,没有其他选择。增加 scsi 超时将适用于暂时性故障,例如路径故障转移。对于 15 分钟的网络中断,效果不佳。
答案2
来自以下人mount
:
errors={continue|remount-ro|panic}
Define the behavior when an error is encountered. (Either
ignore errors and just mark the filesystem erroneous and con‐
tinue, or remount the filesystem read-only, or panic and halt
the system.) The default is set in the filesystem superblock,
and can be changed using tune2fs(8).
因此,您应该使用该continue
选项而不是remount-ro
.
mount -o errors=continue
mount -o remount
答案3
我在 RHEL 系统上重新启动/重新配置连接的 SAN 时就遇到过这种情况。对我有用的是停用卷组和 LVM,然后重新激活它。
vgchange -a n /vg_group_name
lvchange -a n /lvm_group_name
然后您必须重新激活它们。
vgchange -a y /vg_group_name
lvchange -a y /lvm_group_name
然后尝试使用 重新安装所有内容mount -a
。
答案4
使用在我有意禁用的 NFS 数据存储上运行的测试虚拟机运行测试用例后,我没有发现任何有效的东西。这区块开发者命令不起作用,并且 vg / lv 命令确实拒绝在已安装的根/
系统上工作。
此时,最好的选择似乎是errors=panic
设置/etc/fstab所以虚拟机就会出现故障。