Multi-port vs. Multi-target SCSI devices

Edward A. Gardner eag at ophidian.com
Thu Jun 29 13:24:17 PDT 2000


* From the T10 Reflector (t10 at t10.org), posted by:
* "Edward A. Gardner" <eag at ophidian.com>
*
Document: T10/00-265r0  Date: June 29, 2000
To: T10 Committee Membership
From: Edward A. Gardner, Ophidian Designs
Subject: Multi-port vs. Multi-target SCSI devices

This is prompted by the discussion of SCSI Multi-port Units in SAM-2 clause
4.10 and at the May 17 working group meeting.

Consider a dual port SCSI device. For a concrete example consider a Fibre
Channel disk drive with two ports and a single LUN. I’ll also postulate the
FCP model where the sets of Initiators accessible through each port are
disjoint (see postscript). That is, if the same host driver or adapter is
accessible through both ports, it is treated as separate Initiators.

We have commonly discussed such devices as having a single SCSI target:

    +------------+
    | Initiators |    +--------+    +----------+
    | A1, A2,... |----| Port A |----|          |
    +------------|    +--------+    |          |+-----------+
                                    |          ||           |
                                    | Target 0 ||   LUN 0   |
                                    |          ||           |
    +------------+    +--------+    |          |+-----------+
    | Initiators |----| Port B |----|          |
    | B1, B2,... |    +--------+    +----------+
    +------------+

However an alternate view is that there are two different targets, one
associated with each port:

    +------------+
    | Initiators |    +--------+----------+
    | A1, A2,... |----| Port A | Target A |--+
    +------------+    +--------+----------+  |  +-----------+
                                             |  |           |
                                             +--|   LUN 0   |
                                             |  |           |
    +------------+    +--------+----------+  |  +-----------+
    | Initiators |----| Port B | Target B |--+
    | B1, B2,... |    +--------+----------+
    +------------+

What are the observable differences, if any, between these two device
models?

The differences between the two models appear minimal. There is a one-to-one
mapping of I_T nexuses between the two models. The task set is associated
with the LUN.

Commands are directed at a LUN or task set or device server (the terms are
equivalent in this context). These are the same in either model since the
LUN is the same.

Most task management functions are either directed at a LUN or task set or
device server, or at the portion of a task set associated with the issuing
I_T nexus. All such task management functions operate identically in the two
models. This applies to ABORT TASK, ABORT TASK SET, CLEAR ACA, CLEAR TASK
SET and LOGICAL UNIT RESET.

So far as I can determine, there are only two differences between the two
models:

1. TARGET RESET: I’m not certain if this is really a difference. In the
single target model, it seems clear that all tasks from all initiators are
aborted. In the multi-target model, the name “TARGET RESET” suggests that
tasks issued through one port or target would be aborted while those issued
through the other port or target would not. However, SAM-2 specifies that
TARGET RESET shall perform a LOGICAL UNIT RESET on all attached logical
units, which would imply the same behavior as the single target model.

2. LUN numbers: a single Target implies that LUN numbering is the same
through both ports, multiple Targets imply that LUN numbering might be
different. The primary significance is with commands that alter LUN
numbering, in particular the SCC-2 LUN mapping page and the access controls
proposal. In the single Target model, a command that changes LUN numbering
would only have to be issued once, in the multi-Target model it might have
to be issued to each port or Target.

Although I haven’t been able to find it, there might be some way to
determine a Target serial number or the like, which would be the same in one
model and different in the other.

Proposal

I submit that the differences between the multi-ported single Target and the
multi-Target models are negligible. Given this, why are we complicating SCSI
(e.g. SAM-2) by trying to deal with both? The notion of several Targets
accessing a single LUN is already established. I recommend we remove from
SAM-2 all normative discussion of ports and SMUs. A SCSI Target (or
Initiator) has a single port. If a device has multiple ports, there is a
separate Target and/or Initiator behind each port. An informative Annex
illustrating this might be useful.

Note that the definition of Initiator and Target Identifiers in existing
protocols is already consistent with this. For example, FCP devices use
Fibre Channel addresses as Initiator and Target Identifiers. A dual port FCP
disk with both ports connected to the same fabric will have different Fibre
Channel addresses for the two ports, therefore different Target Identifiers
for the two ports, therefore the two ports have different Targets.

We also need to discuss the behavior of TARGET RESET when a LUN is
accessible through multiple ports or Targets. There has been past
disagreement on this issue. The current SAM-2 definition, that of issuing a
LOGICAL UNIT RESET to each attached LUN, is a reasonable guideline, but I
don’t feel comfortable that it is always the right semantic. I recommend we
change SAM-2 to make that a recommendation (“should”) rather than a
requirement (“shall”), until such time as we gain sufficient understanding
and consensus.

Postscript

At the beginning of this I postulated the FCP model where the sets of
Initiators accessible through each port are disjoint. Suppose this is not
the case, suppose that a local entity (e.g. Target) can use multiple ports
to talk to the same remote entity (e.g. Initiator)? That is, the Initiator
or Target or both can use multiple ports for communication on the same I_T
nexus?

There are not very many good example of this. One that comes to mind is
Infiniband’s ability to failover or migrate connections from one port or
adapter to another. (Migration between ports on the same adapter is part of
the specification, migration between adapters is an optional or vendor
unique extension). Other examples include hot-standbys, where a standby
system or adapter takes over after a failure and adopts the network address
of the failed system or adapter.

All of these can be modeled as a single port (single Target and/or
Initiator) that happens to have multiple physical attachments to the SCSI
Service Delivery Subsystem. Since the multiple attachments are
interchangeable or replaceable, they can be considered to be a single “port”
or Initiator/Target. The shared address that identifies the multiple
attachments is the natural value for an Initiator or Target Identifier.

Edward A. Gardner               eag at ophidian.com
Ophidian Designs                719 593-8866 voice
1262 Hofstead Terrace           719 593-8989 fax
Colorado Springs, CO  80907     719 210-7200 cell

*
* For T10 Reflector information, send a message with
* 'info t10' (no quotes) in the message body to majordomo at t10.org




More information about the T10 mailing list