eG Monitoring
 

Measures reported by NetCluIsciPerfTest

The iSCSI protocol is a licensed service on the storage system that enables you to transfer block data to hosts using the SCSI protocol over TCP/IP. The iSCSI protocol standard is defined by RFC 3720. In an iSCSI network, storage systems are targets that have storage target devices, which are referred to as LUNs (logical units). A host with an iSCSI host bus adapter (HBA), or running iSCSI initiator software, uses the iSCSI protocol to access LUNs on a storage system. The iSCSI protocol is implemented over the storage system’s standard gigabit Ethernet interfaces using a software driver. The connection between the initiator and target uses a standard TCP/IP network. No special network configuration is needed to support iSCSI traffic. The network can be a dedicated TCP/IP network, or it can be your regular public network. The storage system listens for iSCSI connections on TCP port 3260.

This test monitors the active and attempted iSCSI sessions on each VServer hosting the iSCSI service on the NetApp Cluster, and promptly captures the processing ability, login failures, failed tasks, and errors encountered by these sessions.

The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
Total_cdb Indicates the rate at which the Command Descriptor Blocks were processed by the inititator. Blocks/Sec The SCSI Command Descriptor Block (CDB) is a block of information that describes the command. Commands are sent from SCSI Initiators, which are contained in host computers, to SCSI Targets, which are controllers of some type of storage device (hard disk, tape drive, etc.). Almost every CDB contains 3 parts:

  • a “What” field,
  • a “Where” field, and
  • a “How Much” field.
For some commands, these fields are implied or not required.

The “What” field is called the Operation Code (or OpCode) and tells the target what the command is supposed to do. A couple of examples would be READ or WRITE. The READ command moves data from the storage device to the host system, while the WRITE command moves data to the storage device for later access.

The “Where” field tells the target where to begin the operation and is expressed as a Logical Block Address, or LBA. This address ranges from zero (0) to the maximum address of the device. Some commands, such as INQUIRY, do not require this field.

The “How Much” field tells the target how many blocks (or bytes) or data to move. The block size of most storage devices is 512 bytes, but in certain storage devices, the block size can be different. This field is expressed as either Transfer Length (in blocks), Allocation Length (bytes moving to the host), or Parameter List Length (bytes moving to the device). Which name is used depends on the command itself.

CDBs come in various sizes, typically 6, 10, 12, or 16 bytes total. Below is a figure of a 10-byte READ command to be sent to a hard drive. This command, if successful, will move one block (512 bytes) of data to the host computer system, from logical block address 100h (hex). All other bits or fields that are not labeled are set to zero.

This measure is a good indicator for analyzing the traffic/load in this cluster.

Success_cdb Indicates the rate at which the Command Descriptor Blocks were successfully executed by the initiator. Blocks/Sec A high value is desired for this measure. A low value indicates that there were too many unsuccessful CDB executions, which may have caused a processing bottleneck.
Errors_cdb Indicates the rate at which the Command Descriptor Blocks were processed by the initiators with errors. Errors/Sec Ideally, the value of this measure should be 0. A high value indicates that there were too many errors that occurred while processing the CDBs which may affect the performance of the storage system.

Some of the common errors that occur while the CDBs are processed include the medium/hardware errors, providing illegal parameters for the CDB, accessing unauthorized data, volume overflow etc.

Total_errors Indicates the rate at which the iSCSI errors occurred. Errors/Sec Ideally, the value of this measure should be 0.

Some of the common iSCSI errors that occur are digest errors, login/logout errors, PDU errors etc.

Failed_logins Indicates the rate at which failed login attempts were made by the initiator while creating new iSCSI sessions. Logins/Sec Ideally, the value of this measure should be 0.
Failed_logouts Indicates the rate at which logouts failed while attempting to gracefully end the iSCSI sessions. Logouts/Sec Ideally, the value of this measure should be 0.
Failed_task Indicates the rate at which iSCSI tasks failed. Tasks/Sec  
Protocol_errors Indicates the rate at which protocol errors occurred. Errors/Sec Ideally, the value of this measure should be 0.

Protocol errors mainly occur due to the violation of protocol rules. The protocol errors occur in scenarios like violation of iSCSI PDU exchange sequences, duplication of protocol steps, invalid format/entries in protocol messages etc.

Login_requests Indicates the rate at which login requests were made. Requests/Sec This measure is an actual indicator of the users who are attempting to login to the storage system.

Compare this value with the Failed logins measure to find out how well the user requests are processed in this storage system.

Logout_requests Indicates the rate at which the logout requests were made. Requests/Sec This measure is an actual indicator of the users who are attempting to logout of the storage system.

Compare this value with the Failed logouts measure to find out how well the user requests are processed in this storage system.

Rejected_PDU Indicates the rate at which Protocol Data Units were rejected by the initiator. Units/Sec In a layered system such as iSCSI, a unit of data which is specified in a protocol of a given layer and which consists of protocol-control information and possibly user data of that layer is termed as a Protocol Data Unit.

Ideally, the value of this measure should be 0. The Protocol Data Units are rejected due to iSCSI error conditions such as protocol errors, unsupported option etc., which may lead to connection/data loss, performance/processing bottleneck on the storage system etc.