ESX里面的guest怎么会发现这样的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
Run Code Online (Sandbox Code Playgroud)
毕竟这是一个硬件/固件问题。虽然 Adaptec 5805(带有最新固件)报告所有 RAID6 卷均处于最佳状态,但它还报告有一个卷包含“失败条带”。这样做的效果似乎是,RAID6 卷的该部分变得不可读(导致问题中引用的错误)。ESX 似乎没有直接看到这一点,但dd if=/dev/zero of=file-on-damaged-volume直接在 ESXi 控制台上运行会导致 i/o 错误,而卷上仍然有足够的空间。
在卷上运行的 arcconf verify / verify_fix 数量再多,物理设备也无法检测或修复任何内容...最终我将所有数据从卷中移走,并在 Adaptec 级别上重新创建它。现在一切都很好,但我对 Adaptec 保护数据能力的信任严重受损。