|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: iSCSI: login issue - partial consensus callJim, Thanks. You're right about the more complex naming structure. The more I think about this ... the more I think the TSID should be what is used. Part of the problem with the ISID is: How are you going to have a central layer in OS's that already exist but also fit into SCSI for those systems? That is why I thru up the thought of another naming convention. The only problem with the TSID that I see now is what Millikarjun pointed out ... if you wanted to reset after a crash, how would you figure out the TSID? If no one can present a solution to that, I'll get off my band wagon. Eddy -----Original Message----- From: Jim Hafner [mailto:hafner@almaden.ibm.com] Sent: Friday, September 07, 2001 12:09 PM To: eddy_quicksall@ivivity.com; ips@ece.cmu.edu Subject: RE: iSCSI: login issue - partial consensus call Eddy, I think one way to view your proposal (and one which I more or less dropped sometime ago, but may want to resurrect) is that you're assigning the Initiator Name to the SCSI Initiator Port and the Host Name to the SCSI Device. You've effectively created a two-level naming scheme. You propose then a Text keys=HostName and InitiatorName and both of these have to get sent during login. Rather than turning the cart over completely, let's take a different tact for this. Let's have the iSCSI Initiator Name name the host (as we've had it so far). Let's allow for an 'extension' on this name that further qualifies a subcomponent. So, if my InitiatorName="iqn.2001-08.com.jlh", then I have have statically assigned names like "iqn.2001-08.com.jlh:port1", etc. Each of these new names would name a SCSI Initiator Port and within that name space we'd have uniqueness of ISIDs. Now, I can get this information over the wire at login with either initiatorname=iqn.2001-08.com.jlh portext=port1 (and use initiatorname for authentication) OR initiatorname=iqn.2001-08.com.jlh:port1 AND make the presumption that everything before the : in the initiator name is used for authentication, the rest is ignored. Note that the 'port1' extension could easily be the portal group tag. Note also, that the first of these is equivalent to your proposal, just with keys reversed. However, your proposal would require two levels of world wide uniqueness, since both the hostname and the initiatorname would have to be unique. (Unless the initiator name was assigned to adapters from the outside in exactly the same manner as we need to assign ISIDs today!) In short, the effect is exactly the same as you propose, either by adding a different key explicitly or implicitly. I abandoned this approach for two reasons. First, it added more complexity to the basic protocol (more keys or more assumptions). Second, the "port1" extension is just another name 'self-assigned' by the initiator (through some undefined mechanism) and I didn't see any functional difference between assignment of this extension and assignment of ISIDs! The ISID was already an 'extension' to the initiatorname and already in the login request. What functional gain did we get by adding another field where we put another 'piece' of a name? Jim Hafner "Eddy Quicksall" <eddy_quicksall@ivivity.com> on 09/07/2001 06:33:10 am Please respond to <eddy_quicksall@ivivity.com> To: Jim Hafner/Almaden/IBM@IBMUS, <ips@ece.cmu.edu> cc: Subject: RE: iSCSI: login issue - partial consensus call Jim, Thanks, this helps a lot. The problem I had was that David Black said: "the iSCSI Initiator Name is supposed to refer to the host into which the HBAs are plugged" So I was trying to rationalize that. The problem I have with this is that it will be difficult to get all HBAs and OS's to agree on how this InitiatorName is going to become known to the HBAs and how the ISIDs are going to be distributed to the HBAs. Especially when the best place for a SCSI HBA in the windows world is as a Miniport. So, I was thinking that the definition of InitiatorName should allow this. I think your explanation below does allow this. I think my original message way down below fits your definition. So, I attempted to suggest a definition of InitiatorName that would allow both what you have said and what David said. When I said "unique", I was a bit vague. What I meant was that the host could have several InitiatorNames and each InitiatorName would be responsible for his creation of unique ISID's. Now, I'm wondering why we are even trying to use the ISID to reset a session when we should be using the TSID ... because the target can produce unique TSIDs and use that to identify the session much more easily than using the combination of InitiatorName and ISID. Someone mentioned an issue with authentication ... that process should not require all HBA names to be known. Two things here: 1) if several HBAs are being shared by a common driver, the driver is well aware of the HBA manufacturer (it is probably produced by the HBA manufacturer) and the driver can be the InitiatorName (and hence distribute ISIDs to its HBAs). 2) but that does not fully cover the authentication point. i.e., that the OS should be the apex for authentication. For that, we could have a HostName. If an HBA does not want to play in that arena (because it is on a private network), it could give a NULL for the HostName. Eddy -----Original Message----- From: Jim Hafner [mailto:hafner@almaden.ibm.com] Sent: Thursday, September 06, 2001 4:55 PM To: eddy_quicksall@ivivity.com; ips@ece.cmu.edu Subject: RE: iSCSI: login issue - partial consensus call Eddy, I'll try to take a crack at this question. The problem is that the word "initiator" is being overused in these discussions (same for "target"). I personally try to make a distinction in every case, even if I sound pendantic. In almost all cases in the iSCSI spec (and I think rev-08 will make this explicit), the word 'initiator' means iSCSI initiator (an iSCSI Node doing client stuff) unless otherwise qualified. The iSCSI Initiator has exactly one iSCSI Name. An OS may have one such iSCSI Initiator in it, or it may have several (depends on how you want to use them, but access rights etc are supposed to be bound to the name, so fewer nodes in an OS means fewer names means less configuration and more consistent views of storage within the host). An iSCSI Initiator can have multiple network interfaces, lumped into groups (portal groups) with the property that within each portal group, a cross network interface multiple connection session can be built. For example, I could have two iSCSI HBAs, each with dual ethernet ports (and possibly different addresses for each port). Ideally, this is one iSCS Initiator, with two portal groups. The other context of 'initiator' is "SCSI Initiator" and that further qualifies to "SCSI Initiator Port" and 'SCSI initiator device'. In our case, the SCSI initiator device is 'attached' to the iSCSI Initiator (node) and there is only one such attachment. The SCSI Initiator ports are (as defined now) the initiator end points of sessions (are dynamically created). I hope that much is clear. I've annotated your questions/quotes below with my interpretation of which context the word initiator is implied. Jim Hafner "Eddy Quicksall" <eddy_quicksall@ivivity.com>@ece.cmu.edu on 09/06/2001 09:50:02 am Please respond to <eddy_quicksall@ivivity.com> Sent by: owner-ips@ece.cmu.edu To: <Black_David@emc.com>, <ips@ece.cmu.edu> cc: Subject: RE: iSCSI: login issue - partial consensus call David, Now, I'm really confused... I just read through the spec and I don't see where it mentions the "Initiator" as you have presented it below. Can you please give me a reference? Section 1.1 appears to define "initiator" as: Clients of a SCSI interface are called "initiators". <JLH> iSCSI Initiator" </JLH> Initiators are one endpoint of a SCSI transport. <JLH> I think this is "iSCSI Initiator"; however, it is not unrelated to the binding of one iSCSI Initiator to one SCSI Initiator Device, so you can probably read both of these terms here. </JLH> Section 1.2.1 says: The group of TCP connections that link an initiator with a target, form a session (loosely equivalent to a SCSI I-T nexus). <JLH> iSCSI Initiator and iSCSI Target; it's the session which is loosely equivalent to an I_T nexus. </JLH> That does not seem to be consistent with your definition. In parallel SCSI, you can have two different initiators <JLH> SCSI Initiator Port </JLH> talking to the same target <JLH> SCSI Target Port </JLH> with both initiators on the same host <JLH> SCSI Initiator Device (or perhaps even finer than that) </JLH> ... your use of Initiator <JLH> to interpret David, I think this was iSCSI Initiator Node </JLH> does not seem to be consistent that that because you would allow only one Initiator (the host). Also, if the InitiatorName is the name of the host, how does an independent HBA find out the name? I would like to propose that "Initiator" refers to that end point which is maintaining unique ISID's. I believe this definition would be consistent with all that is in the spec. <JLH> I'm not clear what you mean with this definition. "unique ISIDs" with respect to a particular target or globally unique? The later is not a requirement. The former is a requirement. However, "maintaining" is ambiguous. If an iSCSI Initiator Node partitions its ISID space among its portal groups (think HBAs here as is being discussed), then each portal group is maintaining its portion of the ISID space according to the uniqueness rules, but it's also true that by the simple act of partitioning, the iSCSI Initiator Node is doing the same thing. So who is the "maintainer" in your case, the node or the portal group? </JLH> Eddy -----Original Message----- From: Black_David@emc.com [mailto:Black_David@emc.com] Sent: Thursday, September 06, 2001 11:42 AM To: eddy_quicksall@ivivity.com; ips@ece.cmu.edu Subject: RE: iSCSI: login issue - partial consensus call Nope, the iSCSI Initiator Name is supposed to refer to the host into which the HBAs are plugged (or, more precisely, the OS instance using the HBAs for systems that support multiple OS instances). If we were to change the naming approach to associate Initiator identities with network interfaces, this particular issue gets easier, but we'd have to take another hard look at why multiple sessions are allowed between the same Initiator and Target (ditto multiple connections per session). --David > -----Original Message----- > From: Eddy Quicksall [mailto:eddy_quicksall@ivivity.com] > Sent: Thursday, September 06, 2001 10:57 AM > To: Nick.Martin@compaq.com; ips@ece.cmu.edu > Subject: RE: iSCSI: login issue - partial consensus call > > > But wouldn't the two different vendors you mention below have > different > iSCSI Initiator Names? Remember, the Initiator is not the > host, it is the > HBA in this case. > > If two different HBA's are going to play together then a > common driver would > be used and the driver would provide the iSCSI Initiator > Name. Then, the > ISID would be properly maintained by the driver. > > Think of the Initiator Name as the owner of the ISID's for that name. > > Eddy > > -----Original Message----- > From: Martin, Nick [mailto:Nick.Martin@compaq.com] > Sent: Wednesday, September 05, 2001 5:50 PM > To: KRUEGER,MARJORIE (HP-Roseville,ex1); ips@ece.cmu.edu > Subject: RE: iSCSI: login issue - partial consensus call > > > Marj, > > You mention vendors not knowing how to play right. > The problem is that iSCSI does not and will not specify how two HBAs > from different vendors installed in the same Initiator should or could > get a range of ISIDs for their exclusive use. This will be operating > system specific and vendor defined. It is uncertain that the > same tool > or repository would be used by all HBA vendors in any environment. > Given this, accidental overlap in ISID space is not unlikely. > > Given that there is no one way to play right, we must make sure that > everyone can at least play nice. > > My expectation is that sessions are infrequently established and long > lived. ISIDs may be re-used at will by their current owners. When no > "already owned" ISIDs are available, or an attempt to re-use > an "already > owned" ISID failed, and HBA would need to a) "probe" for a > new available > ISID or b) fail the request to establish the session. > Session recovery > should not be attempted unless a session is known to have failed. > > If tools are available, and the administrator has used them correctly, > then HBAs will not collide in ISID space. If the tools are not > available or were not used correctly, I would hope the second HBA can > still attempt to come up without impacting the sessions established by > the first. > > Again, I state my support for a login with existing ISID harmlessly > fails (the Target state does not change) unless a session recovery > indicator is set. Also if a session recovery indicator is > set, and the > ISID is not in use (by this Initiator at this Target), the login also > fails. > > Thanks, > Nick > -----Original Message----- > From: KRUEGER,MARJORIE (HP-Roseville,ex1) > [mailto:marjorie_krueger@hp.com] > Sent: Friday, August 31, 2001 12:09 PM > To: Martin, Nick; ips@ece.cmu.edu > Subject: RE: iSCSI: login issue - partial consensus call > > > > In particular this enables independent agents within the same > initiator to > > attempt a login without knowing all ISIDs in use by other agents. > Each > > agent would know the ISID of sessions it had successfully > established, > but > > not the ISIDs for sessions established by others. It can use the > ISIDs it > > knows to recover sessions it owns. If an agent gets a failure > attempting > to > > establish a new session, it would pick a different ISID and > > retry (or just quit), rather than disrupting a session of another > agent. > > The intent of the presentation on SCSI/iSCSI modeling, and the text in > the > draft, is to illustrate how this example is not a recommended > implementation > choice due to the probability of violating the SCSI/iSCSI > rules pointed > out. > If the "independant agents" had partitioned the ISID space, > there would > be > no collision on login and no time wasted. Your illustrated > implementation > could spend significant time "trying" ISID's in use by the "other > agents". > > However, I'm starting to have more sympathy with Julian's concerns due > to > the apparent risks of different vendors' initiator implementations not > following the rules. > > I just imagined having vendor A's HBA installed and happily servicing > applications, installing vendor B's "plug-n-play" implementation, and > having > all A's sessions aborted cause B doesn't know how to play right :-( > > Marj >
Home Last updated: Fri Sep 07 14:17:16 2001 6433 messages in chronological order |