|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: iSCSI: proposal to solve the ISID issuesJim, 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 |