|
Measures reported by NAUSDiSCSIStsTest
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 the storage system, 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 total number of Command Descriptor Blocks that were processed by the inititator during the last measurement unit. |
Number |
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 storage system. |
| Success_cdb |
Indicates the number of Command Descriptor Blocks that were successfully executed by the initiator during the last measurement period. |
Number |
A high value is desired for this measure. A low value indicatesd that there were too many unsuccessful CDB executions which may result in the processing bottleneck. |
| Errors_cdb |
Indicates the number of Command Descriptor Blocks that were processed by the initiators with errors during the last measurement period. |
Ops/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 total number of iSCSI errors that occurred during the last measurement period. |
Number |
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 number of failed login attempts made by the initiator while creating new iSCSI sessions during the last measurement period. |
Number |
Ideally, the value of this measure should be 0. |
| Failed_logouts |
Indicates the number of failed logouts while attempting to gracefully end the iSCSI sessions during the last measurement period. |
Number |
Ideally, the value of this measure should be 0. |
| Failed_task |
Indicates the number of iSCSI tasks that failed during the last measurement period. |
Number |
Ideally, the value of this measure should be 0. |
| Protocol_errors |
Indicates the number of protocol errors that occurred during the last measurement period. |
Number |
Ideally, the value of this measure should be 0.
Protocol errors mainly occur due to the violation of protocol rules. The prototcol 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 number of login requests made during the last measurement period. |
Number |
This measure is an actual indicator of the users who are currently logging in 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_errors |
Indicates the number of logout requests made during the last measurement period. |
Number |
This measure is an actual indicator of the users who are currently 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 number of Protocol Data Units that were rejected by the initiator during the last measurement period. |
Number |
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 of the storage system etc. |
|