iSCSI Protocol Data Unit (PDU) – A PDU is the basic “Information Unit” of the iSCSI world. PDUs are used to communicate between iSCSI Initiators and iSCSI Targets. These communications include making iSCSI connections and establishing iSCSI sessions, performing iSCSI Discovery, sending SCSI commands, moving SCSI Data, receiving SCSI Status, and controlling SCSI Task Management functions.
iSCSI Basic Header Segment (BHS)
Almost all iSCSI Protocol Data Units fit within a Basic Header Segment (BHS). The format is shown below, with the Operation Code (OpCode) highlighted. That is the field that tell you what the PDU is all about.
iSCSI Operation Code (OpCode) List
List of operation codes for iSCSI initiators:
Notice that most of these codes are listed as “request”. All codes are shown as hexadecimal (hex) by having the “0x” prefix.
- 0×00 - NOP-Out
- 0×01 - SCSI Command
- 0×02 - SCSI Task Management function request
- 0×03 - Login Request
- 0×04 - Text Request
- 0×05 - SCSI Data-Out
- 0×06 - Logout Request
- 0×10 - SNACK Request
- 0×1C-0×1E - Vendor specific codes
List of operation codes for iSCSI Targets:
- 0×20 - NOP-In
- 0×21 - SCSI Response
- 0×22 - SCSI Task Management function response
- 0×23 - Login Response
- 0×24 - Text Response
- 0×25 - SCSI Data-In
- 0×26 - Logout Response
- 0×31 - Ready To Transfer (R2T)
- 0×32 - Asynchronous Message
- 0×3C-0×3E - Vendor specific codes
- 0×3F - Reject
To find the details of each iSCSI Protocol Data Unit, you will have to “look up” the PDU, either in some reference book, or on this site, as details will be added in the future.
If you have any preferences for which PDUs are covered first, please leave a comment below.
Incoming search terms for the article:
SAN Storage – This refers to any data that is held in a Storage Area Network (SAN).
SAN Storage vs. NAS Storage
The key factor between a Storage Area Network and NAS Storage is where the “file system” is located. You see, a SAN moves “blocks” of data, just like any computer system that has Direct Attached Storage (DAS), where the file system is in the host computer and that file system manages how the blocks of data are stored that make up all of its files.
In a NAS storage solution, the file system is actually on the device, or appliance, and when the host computer communicates with it, it will be moving “files” to or from that NAS device. How these files are stored on the NAS storage device is controlled by that appliance.
SAN Storage Benefits
The key benefits of using SAN storage are:
- The physical storage devices (disk arrays, tape libraries, etc.) can be shared between different computer systems
- High speed data transfer
- Ability to have servers boot from SAN Storage
- Enables disaster recovery and remote replication
- Can use several transport protocols (Fibre Channel, iSCSI, FCIP, etc.)
Incoming search terms for the article:
iSCSI stands for internet SCSI, (or internet Small Computer System Interface).
To keep it simple, iSCSI is simply the extension of the SCSI protocol – issuing SCSI Commands, moving Data, and getting Status back. The difference is we are using another interface or communication media, namely IP (Internet Protocol), and using less expensive networking components for the infrastructure, at least when compared to traditional parallel SCSI, Fibre Channel (FC), or Serial Attached SCSI (SAS) components.
The answer to the “Why should I use iSCSI?” question is relatively complex, but I will try to keep it as simple as I can. If you think you need a SAN (Storage Area Network) for your company or business, and you don’t have the mega-bucks that are traditionally required for a SAN, then iSCSI may be your solution. This is because traditional Ethernet and IP network components are improving and increasing in speed all the time. At this time in history (2010), Ethernet and IP networks have increased their speed (bit rate) to be as fast or faster than those used for Storage Area Networks (such as Fibre Channel).
So it is really about speed and cost, because the relatively low cost Ethernet and IP components are very close to, or the same speed as the traditional SAN components.
iSCSI, like SCSI, Fibre Channel, and SAS, have the same entities. They are:
- iSCSI Initiator – This is the “client” of an iSCSI system, and is responsible for issuing SCSI commands to iSCSI Targets, and the Logical Units (LUNs) behind them.
- iSCSI Target – This is the “server” of an iSCSI system. The iSCSI Target receives the “requests” (SCSI commands) from the iSCSI Initiator and processes these requests. It is also responsible for sending SCSI Status back to the initiator, once the command is processed.
- iSCSI Logical Unit (LUN) – This is the entity behind the iSCSI Target where data is stored. This is really a “SCSI thing”, in that all targets need to have at least one Logical Unit.
There are more details to iSCSI, but I am trying to keep this article short. So I plan on providing more details in future articles. Subjects I plan on writing about are:
- iSCSI Hardware & Software solutions
- iSCSI Discovery
- iSCSI Names and Addresses
- iSCSI Security
- Converting from iSCSI to xxxx
If you have a particular interest in one of these topics, please leave a comment so I will give that topic a higher priority for completion.