ESX 内部的客户机如何发现此类 io 问题?
[ 40.601502] end_request: critical target error, dev sdg, sector 430203456
[ 40.601563] sd 2:0:6:0: [sdg] Unhandled sense code
[ 40.601582] sd 2:0:6:0: [sdg] Result: hostbyte=invalid driverbyte=DRIVER_SENSE
[ 40.601622] sd 2:0:6:0: [sdg] Sense Key : Hardware Error Sense Key : Hardware Error [current] [current]
[ 40.601661] sd 2:0:6:0: [sdg] Add. Sense: Internal target failureAdd. Sense: Internal target failure
[ 40.601695] sd 2:0:6:0: [sdg] CDB: Write(10)Write(10):: 2a 2a 00 00 02 19 64 a4 05 62 c0 80 00 00 00 00 40 40 00 00
- 物理上,数据在 raid6 阵列 (adaptec 5805) 中存储的 vmfs 上,这似乎很令人满意
- ESX 主机也没有记录任何问题
- 客户机报告的磁盘大小似乎与配置的磁盘大小相同
- 通过 esx,客户机连接了 9 个相等的“驱动器”,但只有 2 个出现此问题
答案1
我在 ESX 4.0 下的 Win 2008 客户机中的 MS SQL 备份卷上遇到过类似的事情 - 它是从 NetApp 文件器公开的原始卷。
客户操作系统正在报告(并且仍在报告)该卷上的坏扇区。
我认为这是因为 I/O 写入操作过多、临时超时或文件管理器过载。
没有报告更多坏扇区。NetApp“磁盘清理”显示一切正常。没有报告文件管理器错误。
但是无论如何我们都要重新创建该卷并看看是否能解决这个问题。
此文件服务器上的其他卷怎么样?您可以使用“badblocks /dev/sdg”命令检查此卷吗?(警告:巨大的读取开销)
答案2
毕竟这是硬件/固件问题。虽然 Adaptec 5805(带有最新固件)报告所有 RAID6 卷处于最佳状态,但它还报告一个卷包含“失败的条带”。这种情况的影响似乎是,RAID6 卷的一部分变得不可读(导致问题中引用的错误)。ESX 似乎没有直接看到这一点,但dd if=/dev/zero of=file-on-damaged-volume
直接在 ESXi 控制台上运行会导致 i/o 错误,而卷上仍有足够的空间。
在卷和物理设备上运行的 arcconf verify / verify_fix 数量都无法检测或修复任何问题...最终,我将所有数据从卷中移出并在 Adaptec 级别重新创建了它。现在一切都好了,但我对 Adaptec 保护我数据的能力的信任受到了严重损害。