Guest

Cisco SN 5400 Series Storage Routers

Troubleshooting the iSCSI Driver for Windows 2000

Document ID: 40348



Contents

Introduction
Prerequisites
      Requirements
      Components Used
      Conventions
Ethernet Jumbo Frame Configuration Procedure
Performance Improvement Techniques
User Configurable Parameters
No Discovery for LUNs > 7
No Discovery for LUNs > 7 on a Compaq StorageWorks Array
Using the iSCSI Driver with Microsoft Windows Server 2003
Related Information

Introduction

This document includes a variety of selected technical topics that should be reviewed by all users of the Cisco iSCSI Driver for Windows. There is a separate document for each Cisco iSCSI driver. Typical subjects covered in this document are troubleshooting techniques and configuration/setup procedures.

Prerequisites

Requirements

Cisco recommends that you have knowledge of these topics:

Components Used

The information in this document is based on these software and hardware versions:

  • Version 3.1.2 of the Cisco iSCSI Driver for Windows, although the majority of the information included in this document is also applicable to later or earlier versions of the driver.

  • Version 3.2.1 or later of firmware for the SN 5428 or SN 5428-2

  • Microsoft Windows 2000 Professional, Server, or Advanced Server with service pack 2 or later. If service pack 2 is installed, these hotfixes are required:

    • Microsoft Hotfix Q302895 or Q248720 (Q248720 is preferred because the fix includes a performance enhancement)

    • Microsoft Hotfix Q318271

    • Microsoft Hotfix Q307939 (only required if the iSCSI Driver runs on a Microsoft Windows 2000 Advanced Server Cluster node)

  • Microsoft Windows Server 2003 Standard or Enterprise Edition (no service pack is required)

  • Microsoft Windows XP Professional (no service pack is required)

  • All versions of host computer hardware.

Conventions

This document references using the Windows ISCSI driver attaching to a MDS switch or a product in the SN 5400 family. The use of SN 5400 contained within is used to denote any product in the SN 5400 family (SN 5420, SN 5428, SN 5428-2).

Refer to Cisco Technical Tips Conventions for more information on document conventions.

Ethernet Jumbo Frame Configuration Procedure

There are no configuration changes required in the iSCSI driver or the Windows operating system to support jumbo frames. The configuration changes need to be made in the Network Interface Card (NIC) using the interface and tools provided by the NIC manufacturer for configuring it. Not all NICs support jumbo frames, so check with your manufacturer to verify that this feature is supported. Also, the network equipment (Ethernet switches, routers, and so on) between the host and the iSCSI target device have to be configured to accept jumbo frames because most equipment does not support this capability by default.

Performance Improvement Techniques

The most probable reason that iSCSI network performance is lower than expected is that flow control has not been enabled on either the NIC card in the host, or else it has not been enabled on one or more of the switches in the Ethernet network between the host and the iSCSI target device. This can be seen by observing either the retransmit timeout or the data packets retransmitted counters in the SN 5400 or the MDS. Many NICs and switches are shipped with pause frames (flow control) disabled. Enabling pause frames on all Gigabit Ethernet interfaces (the host system and all network switches) helps to reduce dropped packets, which can cause a significant performance degradation. By default, pause frames are enabled on the SN 5400 and are not user configurable.

Another technique to improve performance is through the increase of the TCP window size. In order to achieve maximum performance with the SN 5400 or the MDS, it is necessary to keep the network pipe full. The TCP window size must be large enough to accomplish this because there is one TCP connection between a host and the SN5400 or the MDS. The window size necessary is the bandwidth delay product, which can be calculated by multiplying the bandwidth by the round trip delay.

The SN 5400 uses a TCP window size of 256 kbytes, and it is not user configurable. The Windows iSCSI driver uses the default system TCP window size that can be configured on a system wide basis, or on an interface (NIC) basis. The default value for the TCP window size registry value in Windows 2000 is typically 8760 bytes. This TCP window size is not large enough to allow maximum read performance to be achieved from the SN 5400 or the MDS. In order to correct this performance limitation, the TCP window size registry value should be increased to the maximum allowable value of 0xFFFF (65535) bytes. The maximum supported TCP window size for Windows 2000 is 1 Gbyte, but 64 kbytes should be sufficient for most networks. Note that changing the maximum TCP window size affects all applications that use TCP. Also note that the send window of the host is determined by the SN 5400 receive window, and the SN 5400 send window is determined by the receive window of the host.

The procedure for changing the registry value is described in detail on the Microsoft Product Support Services site in the KB article Q120642 leavingcisco.com. Portions of this article related to changing the TcpWindowSize value are shown in this section. For a more detailed description of this procedure, refer to the KB article Q120642 on the Microsoft leavingcisco.com support web site.

warning Warning:  Using the Registry Editor incorrectly can cause serious problems that might require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk..

For information about how to edit the registry, view the Changing Keys and Values Help topic in the Registry Editor (Regedit.exe), or the Add and Delete Information in the Registry and Edit Registry Data Help topics in Regedt32.exe. Note that you should back up the registry before you edit it. If you run Windows 2000, you should also update your Emergency Repair Disk (ERD).

Complete this procedure in order to change the TCP window size parameter:

  1. Start Registry Editor (Regedt32.exe).

  2. From the HKEY_LOCAL_MACHINE subtree, go to this key: \System\CurrentControlSet\Services

  3. Add a value to the key, as described in the appropriate entry.

    1. Click Add Value on the Edit menu.

    2. Enter the value.

    3. Check the Data Type check box in order to set the value type.

  4. Click OK.

  5. Quit Registry Editor.

  6. Reboot the computer for the change to take effect.

All of the TCP/IP parameters are registry values that are located under one of two different subkeys:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
Tcpip\Parameters
Adapter Name\Parameters\Tcpip

Adapter Name refers to the subkey for a network adapter that TCP/IP is bound to, such as Lance01. Values under the latter key(s) are specific to each adapter. Parameters for which there can be both a DHCP and statically configured value might or might not exist. This depends on whether the system/adapter is DHCP configured, and/or static override values have been specified. A reboot of the system is required for a change in any of these parameters to take effect.

Specific information about the TCP window size parameter is shown here:

TcpWindowSize
Key: Tcpip\Parameters
Value Type: REG_DWORD - Number of bytes
Valid Range: 0 - 0xFFFF
Default: The smaller of 0xFFFF
OR
(The larger of four times the maximum TCP data size on the network
OR
8192 rounded up to an even multiple of the network TCP data size.)
The default is 8760 for Ethernet.

Tip: This parameter determines the maximum TCP receive window size offered by the system. The receive window specifies the number of bytes a sender can transmit without receiving an acknowledgment. In general, larger receive windows improve performance over high (delay * bandwidth ) networks. For highest efficiency, the receive window should be an even multiple of the TCP Maximum Segment Size (MSS).

Note: The TCP window size parameter set in the Adapter Name subkey does not work in Windows NT. Use the Tcpip subkey for editing this parameter.

User Configurable Parameters

There are several registry entries that can be modified by the user to change various operational attributes of the iSCSI driver. In most cases, the default values assigned by the iSCSI driver for each entry are adequate for most user environments. The complete list of the registry entries are shown in these tables. The Version column indicates which version of the driver that the parameter was first introduced.

Global Parameters Available in Path=\System\CurrentControlSet\Services\Iscsi\ Parameters

Value

Type

Default

Version

Description

InitiatorName

SZ

n/a

2.1.1

Parameter used to uniquely identify the initator to the target during initial session login. The driver automatically creates this entry during its initial installation and it should normally not be modified by the user.

UseR2T

DWORD

0

2.1.1

0=No, 1=Yes Read to Transmit (R2T) parameter. Performance is lowered if this value is set to Yes. The Status button on the configuration applet shows the results of the R2T negotiation with the target.

Digests

DWORD

4

3.1.1

1=Never, 2=Always, 3=Prefer On, 4=Prefer Off. Controls whether or not a Cyclic Redundancy Check (CRC) is generated for the data and header digests in an iSCSI PDU. This CRC is generated by software so enabling it can have a significant impact on performance and CPU utilization. If there is an entry for Parameters\TargetIp\Digests, that setting overrides this global parameter for the specified TargetIP. A more detailed description for each of the allowed values is included in the Changing Configuration section of the README file. Normally, you do not want to change this value since it is set via the configuration applet.

DisconnectTimeoutValue

DWORD

90

2.1.1

Time (in seconds) for the driver to stop attempting to re-establish a connection that has gone down. This value should only be modified if required by a higher-level multipath I/O software program that needs more timely notifications of disconnect events.

DisconnectSrbStatusValue

DWORD

10

3.1.1

SRB status value to return when a connection times out. This value should normally not be modified, except when you use higher-level multipath I/O software. Some common SRB status values (decimal) are:

01=SRB_STATUS_SUCCESS

04=SRB_STATUS_ERROR

05=SRB_STATUS_BUSY

08=SRB_STATUS_NO_DEVICE

09=SRB_STATUS_TIMEOUT

10=SRB_SELECTION_TIMEOUT (default value)

11=SRB_STATUS_COMMAND_TIMEOUT

18=SRB_STATUS_DATA_OVERRUN

34=SRB_STATUS_BAD_FUNCTION

35=SRB_STATUS_ERROR_RECOVERY

DisconnectScsiStatusValue

DWORD

0

3.1.1

SCSI status value to return when a connection times out (default value of 0=SCSISTAT_GOOD). This value should normally not be modified, except when you use higher-level multipath I/O software. The defined SCSI status codes (decimal) are:

00=SCSISTAT_GOOD (default value)

02=SCSISTAT_CHECK_CONDITION

04=SCSISTAT_CONDITION_MET

08=SCSISTAT_BUSY

16=SCSISTAT_INTERMEDIATE

20=SCSISTAT_INTERMEDIATE_COND_MET

24=SCSISTAT_RESERVATION_CONFLICT

34=SCSISTAT_COMMAND_TERMINATED

40=SCSISTAT_QUEUE_FULL

MaxRecvDataSegmentLength

DWORD

512k

3.1.1

Maximum size (in bytes) data PDU the driver allows target to send. This value should normally not be modified.

FirstBurstLength

DWORD

512k

3.1.1

3.1.1

Maximum amount (in bytes) of data that can be sent unsolicited (only used if UseR2T=No). FirstBurstLength MUST be less than or equal to MaxBurstLength.

MaxBurstLength

DWORD

512k

3.1.1

Maximum amount (in bytes) of data that can be sent upon receipt of a single R2T request. FirstBurstLength MUST be less than or equal to MaxBurstLength.

TargetIP Parameters Available in Path=\System\CurrentControlSet\Services\Iscsi\Parameters\TargetIp<TargetIpIndex in range (0.7)>

Value

Type

Default

Version

Description

User

SZ

none

2.1.1

CHAP username for targets discovered at this IP address. Normally, you do not want to change this value since it is set via the configuration applet.

Password

SZ

none

2.1.1

CHAP password for targets discovered at this IP address. Normally, you do not want to change this value since it is set via the configuration applet.

TargetIpAddress

DWORD

none

2.1.1

IP Address on which to discover targets. Normally, you do not want to change this value since it is set via the configuration applet.

Digests

DWORD

0

3.1.1

0=Use global setting, 1=Never, 2=Always, 3=Prefer On, 4=Prefer Off. Controls whether or not a CRC is generated for the data and header digest in an iSCSI PDU. This CRC is generated by software so enabling it can have a significant impact on performance and CPU utilization. This entry overrides the global Parameters\Digests setting for the specified TargetIP. A more detailed description for each of the allowed values is included in the Changing Configuration section of the README file. Normally, you do not want to change this value since it is set via the configuration applet.

The procedure for changing the registry value is described in detail on the Microsoft Product Support Services site in the KB article Q120642 leavingcisco.com. Portions of this article related to changing the TcpWindowSize value are shown in this section. For a more detailed description of this procedure, refer to the KB article Q120642 on the Microsoft leavingcisco.com support web site.

warning Warning:  Using the Registry Editor incorrectly can cause serious problems that might require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk..

For information about how to edit the registry, view the Changing Keys and Values Help topic in the Registry Editor (Regedit.exe), or the Add and Delete Information in the Registry and Edit Registry Data Help topics in Regedt32.exe. Note that you should back up the registry before you edit it. If you run Windows 2000, you should also update your Emergency Repair Disk (ERD).

Complete this procedure in order to change the TCP window size parameter:

  1. Start Registry Editor (Regedt32.exe).

  2. From the HKEY_LOCAL_MACHINE subtree, go to this key: \System\CurrentControlSet\Services

  3. Add a value to the key, as described in the appropriate entry.

    1. Click Add Value on the Edit menu.

    2. Enter the value.

    3. Check the Data Type check box in order to set the value type.

  4. Click OK.

  5. Quit Registry Editor.

  6. Reboot the computer for the change to take effect.

No Discovery for LUNs > 7

The most probable reason for this situation is that LUN 0 is not configured on the given target. For Windows 2000, this is the basic process used by the operating system to discover LUNs:

  • The OS sends an INQUIRY command to LUN 0 for the given target.

  • If LUN 0 is not configured or LUN 0 is offline on that target, the target responds back with NO DEVICE. The OS then scans for additional LUNs in the range of 0-7. It does not scan for any LUNs greater than 7, even if they exist.

  • If there is a LUN 0 configured on that target and it is attached, the target responds back with device type information. The OS then sends a REPORT LUNs command to the target. In this case, all configured LUNs on the target are reported back. This includes those greater than 7. The OS sends INQUIRY commands to find the additional LUNs.

Therefore, all targets need to have LUN 0 configured and attached for the OS to discover all the LUNs on a target.

No Discovery for LUNs > 7 on a Compaq StorageWorks Array

With HSG80 controller firmware version ACS 8.5, the StorageWorks Raid Array does not return inquiry data with the HiSup bit set. Because of this, Windows 2000 does not send a REPORT LUNs command to the target by default, and is not able to discover any LUNs greater than 7.

There are two ways to correct this problem:

  • Upgrade the controller firmware to version 8.6.

  • Use the Compaq LargeLUNs utility.

Using the iSCSI Driver with Microsoft Windows Server 2003

The iSCSI driver version 3.1.2 that runs on Microsoft Windows Server 2003 creates a pseudo disk drive. This pseudo disk drive appears as an unknown disk under the Disk Management MMC application.

The unknown disk can be safely ignored, because it is required for the proper functioning of the iSCSI driver. This does not affect the performance or functioning of the system in any way. Do not attempt to delete this device. The deletion of the device causes the Cisco iSCSI driver to stop working.

You can disable the pseudo disk device. This alters operation of the initiator.

For more information about how to run the iSCSI driver on Microsoft Windows Server 2003, refer to the readme file that accompanies the iSCSI driver (in the downloaded driver archive file).


Related Information



Updated: Jan 02, 2007 Document ID: 40348