SCSI initiator and target

From HandWiki

In computer data storage, a SCSI initiator is the endpoint that initiates a SCSI session, that is, sends a SCSI command. The initiator usually does not provide any Logical Unit Numbers (LUNs).

On the other hand, a SCSI target is the endpoint that does not initiate sessions, but instead waits for initiators' commands and provides required input/output data transfers. The target usually provides to the initiators one or more LUNs, because otherwise no read or write command would be possible.

Detailed information

Typically, a computer is an initiator and a data storage device is a target. As in a client–server architecture, an initiator is analogous to the client, and a target is analogous to the server. Each SCSI address (each identifier on a SCSI bus) displays behavior of initiator, target, or (rarely) both at the same time. There is nothing in the SCSI protocol that prevents an initiator from acting as a target or vice versa.

SCSI initiators are sometimes wrongly called controllers.[citation needed]

Other protocols

Initiator and target terms are applicable not only to traditional parallel SCSI, but also to Fibre Channel Protocol (FCP), iSCSI (see iSCSI target), HyperSCSI, (in some sense) SATA, ATA over Ethernet (AoE), InfiniBand, DSSI and many other storage networking protocols.

Address versus port

In most of these protocols, an address (whether it is initiator or target) is roughly equivalent to physical device's port. Situations where a single physical port hosts multiple addresses, or where a single address is accessible from one device's multiple ports are not very common, (As of 2008). Even when using multipath I/O to achieve fault tolerance, the device driver switches between different targets or initiators statically bound on physical ports, instead of sharing a static address between physical ports.

See also