Wir hatten wiederholbar Probleme mit dem iSCSI-Verkehr zwischen einem ESX-Host vmnode8 und einer LUN, die vom Cisco 9509 SAN-director per iSCSI durch das IPS-8 board bereitgestellt wurde. Zwischen vmnode8 und c95k-rzkj-1 war wenigstens 1 router, wenn die Probleme auftraten. In einer Konfiguration ohne router, d.h. mit VMware host und c95k an einem switch waren die Probleme nicht zu beobachten.
Das Problem äusserte sich dadurch, dass bei dem Versuch der Installation eines Windows-Servers oder der Einrichtung einer disk unter knoppix mit fdisk I/O-Fehler auftraten.
Debugging mit tcpdump auf einem entsprechend auf den vSwitch (der auf promiscuous mode accept einzustellen war) des iSCSI-kernel-interfaces eingerichteten Gast zeigte, daß für eine Serie von mit TCP-Push gesendeten Paketen weniger Ack-Pakete zurückkamen, allerdings die sequencenumber korrekt inkremementiert war auf die Zahl des letzten gesendeten Bytes.
Cisco bietet zur Konfiguration eines iSCSI-(target) interfaces u.a. den mode parameter an:
interface iscsi
To configure an iSCSI interface, use the interface iscsi command. To revert to default values, use the no form of the command.
interface iscsi slot/port
mode {pass-thru | store-and-forward}
tcp qos value
interface iscsi slot/port
no mode {pass-thru | store-and-forward | cut-thru}
no tcp qos value
no interface iscsi slot/port
Syntax Description
Defaults
Disabled.
The TCP QoS default is 0.
The forwarding mode default is store-and-forward.
Bei uns standen aber alle Interfaces auf „mode pass-thru“. Umsetzen auf den „neuen“ Standardwert „mode store-and-forward“ ergab das offenbar vom VMware software iSCSI-initiator gewünschte Verhalten: nun wird offenbar für jedes TCP-Push ein ACK gesendet. Damit geht der fdisk-Vorgang dann rasch erfolgreich zuende.