Skip to content

Technology card

Shipping

SCSI

Small Computer System Interface

Read a storage path in layers: command set, logical unit, port and transport.

Glossary entry on hesela.dev · JSON record · Initiator and target · Logical unit number · SCSI status and sense interpretation

On this page6 sections

In one minute

SCSI is a family of standards for device commands, logical units, status reporting and the transports that carry them.

A SCSI command and a parallel SCSI cable are different things. The historical parallel bus is only one interconnect; Linux still uses its SCSI subsystem for several storage paths. Reading a device through that subsystem does not identify the wire protocol. [3]

The standards are layered. SAM describes the architecture, SPC supplies common commands, and device-specific families include SBC for block devices, SSC for sequential-access devices and SMC for media changers. Transport specifications describe how exchanges are carried. Do not infer a disk's operations from its connector or apply disk commands indiscriminately to tape. [1]

An initiator issues commands to logical units through a target. A target can have multiple ports; a port is not necessarily a physical socket. The iSCSI mapping, for example, distinguishes SCSI ports from network portals. [4]

The logical unit (LU) executes I/O commands; the logical unit number (LUN) addresses it within a target. The same numeric LUN on two targets does not establish that they expose the same logical unit or backing storage. An array volume is one possible LU, not the definition of a LUN. [5] [6]

The command descriptor block (CDB) carries the command, distinct from the transferred user data. The response status and any sense information are separate evidence. In iSCSI, autosense is mandatory: error handling should not assume that CHECK CONDITION always requires a subsequent REQUEST SENSE command. [7] [4]

For iSCSI diagnosis, check the Response field before SCSI Status. A nonzero Response means Status is undefined and must be ignored. BUSY and TASK SET FULL do not imply CHECK CONDITION sense data. [4]

Discovery limits also need context. In Linux v6.12, max_luns defaults to 512 for the sequential-scan path; REPORT LUNS processing uses a separate host-adapter max_lun check. The 512 setting is not a universal limit on Linux SCSI volumes. Device quirks and scan configuration affect the path taken. [8]

Compared to neighbors

Start with the exact question. For cabling and paths, inspect the transport. For supported operations, inspect the device command set. For an error, retain status, sense and host-path evidence together.

Which SCSI layer answers the question?
QuestionRelevant layerDo not substitute
What operation is requested?CDB and command set [7] [1]Connector name
Which device function executes it?Logical unit [5]An entire enclosure
How is that unit addressed?LUN in the target context [6]A global volume identity
How does the exchange travel?Transport [1]A media type
Why did the command fail?Status and sense [4]A cable diagnosis from status alone
Which units can the host discover?Scan method and implementation limits [8]One universal LUN-count ceiling

Uncertainty notes

  • The T10 index establishes the standards-family structure; this card does not claim a clause-by-clause review of restricted standards.
  • Autosense requirements here are scoped to iSCSI RFC 7143. The scanning example is pinned to Linux v6.12, not every kernel or adapter.

Sources

  1. 01T10 standards family: architecture, primary and device-specific commands, transports · accessed 2026-10-20
  2. 02Linux libATA Developer's Guide: introduction and SCSI-to-ATA translation · accessed 2026-10-20
  3. 03Linux SCSI Interfaces Guide: protocol versus bus and subsystem layers · accessed 2026-10-20
  4. 04RFC 7143: sections 4.1, 4.4.2, 10.2 and 11.4 (SCSI model, autosense and response) · accessed 2026-10-20
  5. 05SNIA dictionary: logical unit · accessed 2026-10-20
  6. 06SNIA dictionary: logical unit number · accessed 2026-10-20
  7. 07SNIA dictionary: Command Descriptor Block · accessed 2026-10-20
  8. 08Linux v6.12 scsi_scan.c: sequential scanning and REPORT LUNS · accessed 2026-10-20

Published by Hesela team

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. SCSI. Hesela. https://hesela.com/tech/scsi/