Sporadisch bei SAN Controller Reboots entstanden auf den VMs Disk Controller Errors. Im Eventlog mit der ID 11 ersichtlich. Einen Reboot, Bluescreen oder ähnliches entstand jeweils nicht, der Server lief soweit normal weiter.

The driver detected a controller error on \Device\Harddisk0

diskio

Vergleicht man die Zeit der Reboots mit den ESX Kernel Logs sind folgende Meldungen ersichtlich:

Mar 14 04:48:06 ehf15 vmkernel: 15:18:41:26.613 cpu0:1098)VSCSIFs: 439: fd 9437 status Busy
Mar 14 04:48:06 ehf15 vmkernel: 15:18:41:26.613 cpu0:1098)VSCSIFs: 439: fd 87260 status Busy
Mar 14 04:48:06 ehf15 vmkernel: 15:18:41:26.613 cpu0:1098)VSCSIFs: 439: fd 9437 status Busy
Mar 14 04:48:06 ehf15 vmkernel: 15:18:41:26.613 cpu0:1098)VSCSIFs: 439: fd 87260 status Busy

Grundlegend ist das Verhalten und die entsprechend auftretende Fehlermeldung richtig. Der SAN Controller sendet ein Busy aufgrund entsprechender Beschäftigung (ReSync von Onlinemirroring).
ESX seitig wird ein Busy akzeptiert und somit kein Failover auf den zweiten Controller gestartet. Will ein virtueller Server nun auf das Disksystem zugreiffen, steht die Ressource nicht zur Verfügung und der Disk Fehler entsteht.

Dies ist natürlich eine äussert gefährliche Sache für die virtuellen Maschinen. Gemäss dem Fiber Channel SAN Configuration Guide von VMware müssen die Busymeldungen SAN seitig geändert werden. VMware interpretiert Busy als “normal” und unternimmt kein Failover. Wird dies geändert auf “not ready” initialisert der Host ein Failover und wechselt auf den anderen Controller.

How To:

To configure the storage processors to return Not Ready sense data
1) Determine the index for the LNXCL host type by using the following commands in
a shell window:
Press Enter after each command.

SMcli.exe show hosttopology;
Enter
SMcli.exe show hosttopology;
Enter

The following commands assume that 13 is the index corresponding to LNXCL in
the NVSRAM host type definitions. If your storage processors have LNXCL at a
different index, substitute that index for 13 in the following commands.

2) Execute these commands for SPA to have it return Not Ready sense data.
Press Enter only after you enter all commands.

SMcli.exe
set controller [a] HostNVSRAMBYTE [13,0x12]=0x01;
set controller [a] HostNVSRAMBYTE [13,0x13]=0x00;
reset Controller [a];
Enter

3) Execute these commands for SPB to have it return Not Ready sense data.
Press Enter only after you enter all commands.

SMcli.exe
set controller [b] HostNVSRAMBYTE [13,0x12]=0x01;
set controller [b] HostNVSRAMBYTE [13,0x13]=0x00;
reset Controller [b];
Enter

Share