In the last decade, there has been a trend in the computer industry to physically separate storage from the main computing system and to connect them with networking technology. The motivation for this is the desire for higher performance and greater scalability in Storage Networking. Use of a Storage Area Network (SAN) is one of the approaches used in the industry to support storage across networks.

SAN deals with the communication between application (host) and storage at block level. The Small Computer System Interface (SCSI) is a ubiquitous and popular disk technology that supports block level access. The major limitation of SCSI is the length of the SCSI bus (25 m). Several protocols have been proposed to extend the length of the SCSI bus, one of which is Internet SCSI (iSCSI).

iSCSI is a Session Layer Protocol that supports SCSI on top of TCP/IP/Ethernet networks and hence enhances scalability of SANs. Implementing SCSI over TCP for IP storage leverages existing network hardware, software, management and technical know-how. SCSI over TCP enables the use of Ethernet 10/100/1000, proven industry standards, as an infrastructure for SANs.

In this paper, we discuss the design, implementation, and evaluation of the iSCSI protocol. As an overview, the iSCSI protocol gets the SCSI I/O requests in the kernel on the host (application) and transfers it over the TCP/IP network to the target (device). The evaluation of the iSCSI protocol involves basic performance analysis using software tracing facilities in the Linux kernel. The results suggest some of the performance parameter settings for I/O operation over generic TCP/IP/Ethernet Networks.