SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


    [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

    Re: iSCSI: proposal to solve the ISID issues



    Jim,
    
    Thanks for the excellent summary.  Some questions/comments -
    
    - I assume that the NICs must enable the configuration of 
      iSCSI Node name even in this proposal.  If it is so, please
      call this out as a hard requirement in the main modelling
      discussion.
    
    - In the case of multiple NICs from the same vendor operating
      in an end node, it appears to me that the proposal implicitly
      assumes an ISID-range to be configurable among those NICs
      (perhaps in vendor-unique ways, which is always what I expected).  
      If this is a correct inference, there is again a hard 
      requirement on the NICs to make the ISID range configurable.  
      Please comment on any subtle qualitative change from the 
      earlier situation that I may be missing.
       
    > (2-e) Its debatable whether "conservative reuse" is a MUST or a
    > SHOULD.  My personal opinion is "SHOULD", because many systems,
    > particularly low-end that don't use reservations, can function more or
    > less OK without it.
    
    It seems we're attempting to set ourselves up for future in 
    discussing the above requirement.  Some questions - 
            - It appears to me that the "conservative reuse" can not
              be enforced for initiators hosting NICs from different
              vendors (since the proposal allows ISID namespaces to 
              be totally non-overlapping between non-homogenous NICs).
              Is this a fair assessment?  
    	- Do you see a particular disadvantage for low-end systems 
              if it's mandated (aside from the fact that they may be able
              to live without it)?
    	- Do you see any corner cases not being met (for future)
              if we don't make it a MUST (since you said "more or less OK")?
    
    Regards.
    -- 
    Mallikarjun 
    
    
    Mallikarjun Chadalapaka
    Networked Storage Architecture
    Network Storage Solutions Organization
    MS 5668	Hewlett-Packard, Roseville.
    cbm@rose.hp.com
    
    
    Jim Hafner wrote:
    > 
    > Folks, (David Black in particular).
    > 
    > Apologies for the long note, but the issue is complicated.
    > 
    > The NDTeam have a proposal to resolve the concerns surrounding use of
    > ISIDs as essential components (along with iSCSI Initiator Name) of
    > SCSI Initiator Portname.  (This was rooted in private discussions
    > between John Hufferd, Julian and myself -- and came about as a result
    > of the lengthy (and boring) discussions mostly myself and David
    > Black.)
    > 
    > There are two somewhat orthogonal issues involved in this discussion:
    > 
    > 1) How to coordinate ISIDs in the initiator to minimize the risk of
    > accidentally breaking the ISID RULE (no parallel nexus) when
    > independent vendors co-exist in the same OS.
    > 
    > 2) What ISID "reuse" rules should be specified to facilitate current
    > and future (soon?) SCSI reservation semantics (and also internal OS
    > views of SCSI Initiator Ports).
    > 
    > To address these two issues, we (NDT) propose the following:
    > 
    > 1) Enlarge the ISID field in the Login Request and Response to 6bytes
    > and structure it with a component that corresponds to a "naming
    > authority" (essentially the vendor generating the ISID).  So vendors
    > each have a piece of the ISID namespace to work with their own
    > components (HBAs, SW, etc). More details below.
    > 
    > 2) ISIDs (within the namespace of a given iSCSIName) SHOULD be used as
    > conservatively as possible ("conservative reuse").  What this means is
    > that a given ISID should be reused for as many sessions (across
    > multiple target portal groups) as possible (but never to the same
    > target portal group twice -- that's the ISID RULE).
    > 
    > NOTES and ADVANTAGES:
    > 
    > (1-a) Each vendor owns his own piece of the ISID namespace, so in
    > effect, at the vendor-level, this provides a "partitioning" of that
    > namespace.
    > 
    > (1-b) We don't need to specify an OS infrastructure requirement for
    > configuration of ISIDs -- each vendor can do it any way it chooses
    > (within its naming authority).
    > 
    > (1-c) Breaking of the ISID RULE will only occur if a vendor messes up
    > its own implementation.
    > 
    > (1-d) This is not fundamentally different from David Black's
    > suggestion for a "key"; it just (a) defines it precisely and (b)
    > embeds it in an already defined (but enlarged) field.
    > 
    > (1-e) Looking towards the future, as common ISID coordination
    > mechanisms are implemented between vendors (say, SNIA banding together
    > to define a precise API), this "naming authority" can be elevated to
    > the coordinating entity or even the OS vendor.
    > 
    > (1-f) ISIDs have no global uniqueness property.  They need only be
    > unique between a named iSCSI initiator and iSCSI target portal group.
    > That means that a vendor implementation can use the same algorithm to
    > generate ISIDs (under its naming authority) in every machine (OS).
    > 
    > (2-a) If a SCSI target (or logical unit) is holding state (say
    > persistent reservation) for a SCSI Initiator Port (named by iSCSI Name
    > and ISID), and the associated nexus/session is dropped for some
    > reason, "reuse" by that initiator of that ISID will restore to the
    > resulting new session that state (with no other action on the part of
    > the upper SCSI layers).
    > 
    > (2-b) "Reuse" of an ISID on different sessions to (necessarily)
    > different SCSI Target Ports (iSCSI Target portal groups), will enable
    > the SCSI target/logical unit to recognize a common SCSI Initiator Port
    > for those two paths.  This facilitates future changes to SCSI
    > reservations (at least).
    > 
    > (2-c) An initiator driver implementated with "conservative reuse" can
    > present to the OS a stable and fairly static view of the SCSI
    > Initiator Ports (one for each ISID).  Current OS driver stacks
    > (including current wedge drivers) that are built on the presumption of
    > such a stable view, will not need modification to handle the more
    > dynamic nature of iSCSI's SCSI Initiator Port. [Note: the existence of
    > a SCSI Initiator Port presented to the OS does not *require* that this
    > port discover all possible targets; what the initiator builds sessions
    > to using a specific ISID will determine what is presented to the OS as
    > "devices" and LUs visible to that SCSI Initiator Port (could be none
    > if that ISID is never actually used!).]
    > 
    > (2-d) (Related to (2-c)): Adding a new (pseudo-static) SCSI Initiator
    > Port is as simple as configuring another ISID!
    > 
    > (2-e) Its debatable whether "conservative reuse" is a MUST or a
    > SHOULD.  My personal opinion is "SHOULD", because many systems,
    > particularly low-end that don't use reservations, can function more or
    > less OK without it.  This is an open question.
    > 
    > DETAILS:
    > 
    > 1) ISID Structure:
    > The 6byte ISID structure would be split into three parts:
    >    "type" field (1byte) -- identifies the format of the naming
    >                            authority field
    >    "naming authority" field (3bytes) -- identifies the vendor (or
    >                            group of vendors) generating this ISID
    >    "qualifier" (2bytes) -- the free-space for ISID uniqueness
    > 
    > The type field takes on three defined values with all other values
    > reserved:
    >          Type    naming authority format
    >          00h     IEEE OUI
    >          01h     IANA Enterprise Number (EN)
    >          02h     "Random"
    > 
    > The first types two provide a mechanism to uniquely (world wide)
    > identify the naming authority.  A vendor with one or more OUIs and
    > possibly also Enterprise number MUST use at least one of these numbers
    > when it generates ISIDs.
    > 
    > The "Random" type is for the case where the ISID generator (SW or HW)
    > is provided by an entity that has no OUI or EN.  This includes, for
    > example,
    > -- a user-written program that builds sessions (and has access to the
    > system level iSCSI Name)
    > -- a university or other organization providing the component
    > -- a testing tool
    > 
    > For the "Random" type, the naming authority field should be a random
    > or pseudo-random number. (See below on how this affects "conservative
    > reuse").
    > 
    > [Note: the "type" field needn't be this big, but NDT felt that (a)
    > 2bits was insufficient for the future, (b) the "type" field should be
    > first, and (c) the "naming authority" field should be byte-aligned.]
    > 
    > 2) Conservative Reuse
    > 
    > The "conservative reuse" principle of this proposal just says that
    > SCSI Initiator Portnames should be viewed as static things (as much as
    > possible) and reused (when feasible) to give the most stable
    > presentation of SCSI Initiator Ports to both the OS above and to SCSU
    > targets across the wire.
    > 
    > Whereas the current draft says "The ISID RULE does not preclude the
    > use of the same ISID to different Target portal groups", the
    > "conservative reuse" requirement would say that such reuse (using the
    > same ISID to many target portal groups) is a SHOULD (or is that
    > MUST?).  So, in one implementation, each iSCSI Initiator Portal group
    > would get configured with iSCSI Name, and a (small) set of ISIDs.  The
    > portal group might take this set of ISIDs as an ordered list.  The
    > first session to a Target portal group would use the first ISID, the
    > second to the *same* target portal group would use the second in the
    > list, etc.  The number of ISIDs would then define a configuration
    > parameter that can be interpreted as the maximum number of sessions
    > that can be built to a given target portal group.
    > 
    > To facilitate "conservative reuse", the "qualifier" field of a set of
    > ISIDs SHOULD be generated using either a repeatable algorithm
    > (non-random or pseudo-random but based on a fixed seed) or any
    > algorithm and stored in a persistent location (e.g., registry or /etc
    > file).
    > 
    > For the "Random" type, "conservative reuse" may not be an issue (say,
    > user application that doesn't care about reservations, etc.).  When it
    > is, the "naming authority" field SHOULD also be generated by a
    > mechanism similar to that for the "qualifier" field as specified above
    > (e.g., defined in the SW at compilation time.)
    > 
    > DOCUMENTATING CHANGES:
    > 
    > The iscsi drafts would need the following minor changes to support
    > this proposal:
    > 
    > NDT doc
    > (a) define the structure of the ISID field (as described above)
    > (b) add some notes about implementation in the presense of
    > "conservative reuse" (e.g., that ISID should be configured once, say
    > at install time, then reused on subsequent reboots, even for "Random"
    > type).
    > 
    > iSCSI MAIN doc:
    > (a) move the CID field in Login Request to another reserved field.
    > (b) expand the ISID field in Login Request and Response to encompass
    > the previous 4 bytes.
    > (c) add a sentence where the ISID field is defined indicating that
    > this field is a structured value, showing the structure (as above) and
    > point to the NDT document.
    > (d) add some text to "Note to Implementors" on "conservative reuse".
    > 
    > Comments?
    > 
    > Jim Hafner
    


Home

Last updated: Mon Oct 29 16:17:26 2001
7435 messages in chronological order