Less known Solaris Features: iSCSI - Part 1: Introduction
With more and more available bandwidth it gets more and more feasible to use only a single network to transmit data in the datacenter. Networking can get really complex when you have to implement two networks. For example for Ethernet and one for FC. It´s getting more complex and expensive, as FC network are mostly optical ones and Ethernet is a copper network in most datacenters. The idea of using a single network for both isn´t really a new one, thus there were several attempts to develop mechanisms to allow the usage of remote block devices. One of the protocols to use block devices over IP networks is iSCSI. iSCSI is a protocol that was designed to allow clients to send SCSI commands to SCSI storage devices on a remote server. There are other technologies like ATA or FC over Ethernet that were designed , but iSCSI is the most interesting one from my point of view, as you can use already existing and proven methods implemented for IP (for example IPsec) for encrypting the traffic. The problem with iSCSI is the latency introduced with the usage of IP. But this problem can be solved by the usage of iSER or “iSCSI Extensions for RDMA” to use iSCSI as part of single-fabric network based on Infiniband. We already implement this mechanism in Solaris as a part of the COMSTAR project.
The jargon of iSCSI
Yet another technology with it´s own jargon. I will only define the most important:
- Initiator: The initiator is the client at iSCSI. It´s like the SCSI card in your machine, but instead of a SCSI cable it uses IP for the SCSI commands.
- Target: The target is a storage resource on a iSCSI server.
- LUN: A LUN is the "logical unit number". It represents an individual SCSI device. In iSCSI it´s similar. When you want to use an iSCSI disk drive, the initiator connects the target and connects the initiator with the LUN in a iSCSI session.
- IQN: To identify a target or an initato, one of the naming schemes is the iSCSI Qualified Name (IQN). An example for an IQN is iqn.1986-03.com.sun:02:b29a71fb-ff60-c2c6-c92f-ff13555977e6</a>
</ul>
The architecture of iSCSI
The combination of all this components can be visualized like in this figure:
It´s a little bit simplified, but this is the core idea of iSCSI: How do i present a LUN on a remote server to another server via an IP network.