iSCSI stands for Internet SCSI, or Internet Small Computer Systems Interface. iSCSI is the transmission of SCSI commands and data over IP networks, and represents a networking standard for IP-based network data storage. The development of the IETF standard was considered to be the key enabler for expanded usage of storage area networks (SANs) throughout the marketplace. iSCSI technology can be deployed on local or wide area networks through the use of the Internet across distributed resources.
How iSCSI Works
When an application attempts to read from an iSCSI device, the SCSI read command is encapsulated inside an IP packet. The IP packet is then routed just like any other IP packet on the network. When the IP packet reaches its destination, the encapsulation is stripped off and the SCSI read command is interpreted by the iSCSI drive. SCSI write commands are handled in the same manner.
This packet could also be encrypted before requesting information from the distributed data stores. If encryption is enabled, the data package will be decrypted and then parsed to determine the informatino to retrieve and retransmit to the client computer. Unlike other protocols, iSCSI is bi-directional and can both send or receive information. Cisco and IBM have both produced products such as network switches and routers that implement iSCSI technology.
Targets and Initiators
iSCSI uses the terms “target” and “initiator” to describe iSCSI clients and servers. In iSCSI, and “initiator” is an iSCSI client, such as a database server that accesses its data via remote storage. The storage server which provides the data would be the iSCSI “target.”
When the SCSI standard was first adopted, the initial press regarding the technology seemed to indicate that it would supplant the current technology in use and cost significantly less without a large drop in service. Fast forward to today, and distributed storage using iSCSI technologies is cheaper and fairly easy to install at the sys admin level. When you start to dig, however, many of the systems sold as iSCSI are really fiber channel (FC) systems with iSCSI communication layers. There are a number of true iSCSI products on the market, but just as many which are more of a hybrid system. One of the mis-perceptions in the industry with the newly released products is that improved user interfaces in administrative tools for distributed storage networks and services occur as a result of the iSCSI technology, when they are really a result of increased emphasis on the usability of the administrator front-ends for the various applications using distributed storage and technologies.
How to Measure and Enhance Performance
If you are implementing a truly distributed storage network across a WAN, the primary performance measure of the implementation is the latency experienced in the network communication. When using the Internet, many times the latency effect can only be measured without many mitigation options for the administrator to consider to improve performance if there are significant, off-site issues impacting performance. If you are going to implement iSCSI technology, one area that you can control is allocating resources towards improving the Ethernet infrastructure in your network to include modernized network interface cards that include a TOE (TCP/IP Offload Engine). These NIC cards offload much of the work that is required to process network data packets which helps to improve the Ethernet card efficiency but cost more money than standard NIC cards. The improved cards can have the most impact when deployed on the data storage system server.
Another area to target for performance increases with iSCSI technology is switch port performance. Investing in improved network switches that specialize in low-latency can result in a significant increase in performance of your network. Coupled with an increase in permitted size of data packet, efficiency gains in excess of 50% can be realized.
Alternatives to iSCSI
The main competitor to iSCSI is FCIP (Fibre Channel over IP). iSCSI and FCIP represent almost opposite approaches to the situation. FCIP is an implementation of IP on Fibre Channel hardware, whereas iSCSI is an implementation of SCSI on IP hardware.
Common Internet File System (CIFS)
The CIFS architecture is the successor to the Microsoft Server Message Block (SMB) file sharing protocol that is commonly used on the Internet. CIFS is cross-platform supportable and uses messaging to communicate between client and server computers. The CIFS protocol was developed in response to a lack of functionality of the legacy File Transfer Protocol (FTP) in order to improve the customer service of file transfers and sharing. The primary drawback of the CIFS protocol, however, is that it conducts a significant number of message communications when compared to the iSCSI protocol resulting in wasted system resources and increased time delays when used over a wide area network.
Network File System (NFS)
NFS is the legacy directory and information sharing protocol that is embedded in Unix and Linux operating systems. NFS works in a more directive and centralized manner than CIFS or iSCSI in that the data to be shared must be placed on a centralized server and shared to specific clients in order to be downloaded or used. It was originally created in the early 1980s by Sun Microsystems and builds upon the ONC RPC (Open Network Computer Remote Procedure Call) system and can be implemented by anyone since it became an open standard. Recent improvements in the protocol focus on providing support for clustered server deployments which have not been supportable in the legacy implementations of the protocol. Recent improvements in the NFS implementations have also included expanded support for other operating systems to include OS X, Windows, and Novell NetWare.
iSCSI is defined in RFC 3720: Internet Small Computer Systems Interface (iSCSI).
RFC 3783: Small Computer Systems Interface (SCSI) Command Ordering Considerations with iSCSI is also useful for understanding the inner workings of iSCSI technology.