|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] iSCSI: SAM-iSCSI mapping (alternative)Folks, This note addresses an alternative (and hopefully) better approach to mapping the SCSI Architecture Model (SAM) constructs onto the iSCSI constructs. This is being recommended by the Naming and Discovery Team. [Note: This is mostly esoteric stuff that shouldn't impact much of the main line use of iSCSI, though part of this alternative proposal is intended to make implementations a bit easier.] Here's a quick summary of relevant iSCSI constructs: a) iSCSI node (either initiator or target) is a WWU named entity b) iSCSI login occurs between an iSCSI initiator node and an iSCSI target node (and names are exchanged during login) c) an iSCSI node can have multiple IPnames/IPaddresses/TCPports d) the IPnames/IPaddresses/TCPports can be organized into "portal groups"; a multi-connection session may ONLY be established within a portal group (not across ip address/ports in two different portal groups). The relevant SAM constructs are "initiator port", "target port", "nexus (a relationship between an initiator port and a target port)" and only as secondary constructs the notion of "initiator device" and "target device". (We need not worry about logical unit wrt iSCSI.) CURRENT PROPOSED MAPPING of SAM to iSCSI: a) a SAM nexus maps to an iSCSI session b) there is at most one SCSI Device (initiator or target) contained within an iSCSI node (in other words, the SCSI device is the SCSI-ness of the iSCSI node); the SCSI device name is the iSCSI name. c) a SCSI Initiator port (which is, by definition, the entity at the initiator side of a nexus) maps to the iSCSI initiator endpoint of the session (and is identified/names by its iSCSI Name + ISID of the session). d) a SCSI Target port (the entity at the target side of the nexus) maps to the iSCSI target endpoint of the session (and is identified/named by its iSCSI Name + TSID). ISID RULE: A consequence of this mapping (to handle some specific SCSI features) is the restriction that between a given iSCSI initiator and iSCSI target, there can be only one session with a given ISID. Note that this does not preclude use of the same ISID with a different iSCSI target, nor does it preclude other sessions with different ISIDs to the same iSCSI target. This model implies some implementation requirements on both the initiator and the target and it "stretches" some notions in SCSI. To minimize these effects (detailed more carefully below), I'd like to propose the following alternative mapping of SAM constructs: ALTERNATIVE PROPOSED MAPPING: a) SAM nexus as above b) SCSI device as above c) SCSI initiator port as above d) SCSI target port is an iSCSI target portal group and is identified by its iSCSI name + portal group tag (as reported in SendTargets); this is very different from above. ISID RULE (modified): Between a given iSCSI initiator and iSCSI target portal group, there can be only one session with a given ISID. Note that this is a much weaker restriction than above. This does not preclude use of the same ISID with different target portal group on the same iSCSI target (or on other iSCSI targets), nor does it preclude other sessions with different ISIDs to the same target portal group. WHY THE CHANGE? 1) The new model better fits with SCSI's sense that target ports are static things, not totally dynamic (like session endpoints). There's less of a static requirement for initiator ports. 2) In spite of the asymmetry of the model, the implementation requirements are actually more symmetric and simpler (more details next). IMPLEMENTATION REQUIREMENTS: OLD NEW -------------------------------------------------------------------------- Initiator ISIDs must be partitioned ISIDs must be partitioned between initiator portal between initiator portal groups groups iSCSI name must be configurable iSCSI name must be configurable to each portal group to each portal group Target TSIDs must be partitioned TSIDs must be partitioned between target portal between target portal groups groups iSCSI name must be configurable iSCSI name must be configurable to each portal group to each portal group Active Initiator name+ISID No requirement: each portal lists must be shared across group can separately manage portal groups (to enforce its own active InitiatorName+ISID ISID RULE) lists; no sharing of active state is required across portal groups within a target NOTES: 1) As noted, implementation on the iSCSI target is analogous to the iSCSI initiator with respect to ISID and TSIDs and names. Portal groups should be configured (by the iSCSI node) with their iSCSI name and with a piece of the [I/T]SID namespace. There need be no other shared state across portal groups. 2) The nexus is still a session, but it connects a dynamic SCSI initiator port (identified by iSCSI name+ISID) with a static target port (identified by iSCSI name+portal group tag). 3) The old model required finessing a reservation requirement that the logical unit device server remember the SCSI target port used for the reservation (so the TSID). Without going into the subtlties here, note only that the new model requires the device server to only remember the portal group. 4) In the old model, changes to port-specific mode pages affected all iSCSI initiators who see the same TSID (odd, but true). In the new model, changes to port-specific mode pages affect all iSCSI initiators logged in to the same portal group (independent of TSID). So, the affect is broader, but makes more sense in that it is scoped to more static constructs (the portal group). 5) This is analogous to how the SCSI over RDMA Protocol (i.e., Infiniband and VI) are modeling SAM. Jim Hafner
Home Last updated: Tue Sep 04 01:04:19 2001 6315 messages in chronological order |