Posts Tagged ‘iSCSI’

iSCSI Protocol Data Unit (PDU)

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 PDU Basic Header Segment (BHS)

iSCSI PDU Basic Header Segment (BHS)

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.




SCSI Response


SCSI Task Management function response


Login Response


Text Response


SCSI Data-In


Logout Response


Ready To Transfer (R2T)


Asynchronous Message


Vendor specific codes



Incoming search terms for the article:

Be the first to comment - What do you think?  Posted by Greg - September 9, 2010 at 3:33 PM

Categories: Glossary   Tags: ,


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.

Why iSCSI?

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 Entities

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.

iSCSI Details

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.

Incoming search terms for the article:

Be the first to comment - What do you think?  Posted by Greg - August 15, 2010 at 5:15 PM

Categories: Glossary   Tags:

iSCSI SAN Training Coming Up Soon

An Online iSCSI SAN Training class is coming up in September 2010, where I will be the instructor.  This class is open to any student, from almost any part of the world, that can make the scheduled times.

Dates and times are: September 20-24, 2010 (5 days), starting at 8:00AM Pacific Time and running through 12:00PM Pacific time (4 hours per day).

iSCSI Training Topics

You can see the full topic list at the following link …  iSCSI SAN Training Class … but I want to give you a little preview about what we cover and how we do this.

  • Review of Storage Area Network (SAN) concepts.  This is so that everyone has a basic understanding about what SANs are all about, compared to other data storage methods.
  • Review of SCSI concepts.  Again, I want everyone to know what an Initiator is, what a Target is, a LUN, how SCSI commands, data, and SCSI Status are moved through a storage system.
  • iSCSI SAN components.  We will look at iSCSI Initiators, iSCSI Targets, and iSCSI LUNs, and how we can put them together to make an iSCSI-based Storage Area Network.
  • iSCSI Protocol & Structure. This includes details like Headers, Protocol Data Units (PDUs), Discovery methods, Login and Sessions, and iSCSI operations.
  • iSCSI Analyzer Traces. This is “the fun part”, and helps reinforce the concepts that are taught during this training class.
  • Advantages & Disadvantages of iSCSI.  We will look at performance and cost, both in a technical way (speed, bandwidth & throughput) and a financial way.

For me, the Lab Exercises (analyzer traces) are the best part.  Since this is an Online course, where the students will be seeing my screen and we will be talking online, you will have a chance to ask questions, in real time, as we cover the material.  We can even pass the screen sharing function to the students, so that if you have a question about something that you can show on your screen, we can do that in real time too.  With that in mind, if you have any desire at all to join in on this training class, please feel free to ask questions about topics that YOU would like covered, by posting a comment here.  If you want to register, make sure you fill out the “Heard About” item with the selection.

One last thing: If you can get a few of your fellow workers together that want or need to take this iSCSI SAN Training course privately, just post a comment here and let me know.  The comments do not become public unless I review and approve them, so your contact and information will remain private.

Incoming search terms for the article:

2 comments - What do you think?  Posted by Greg - August 9, 2010 at 5:03 AM

Categories: iSCSI   Tags: , ,

Next Page »