|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: iSCSI: Canonical TargetsSteph, I'll need more time to absorb more of what you're saying, but I want to make one wording clarification which you alluded to in your first paragraph. It's the misunderstood and overused term "target". There are three interpretations of that term running around in this space: 1) "SCSI target port": this is the more common interpretation of "target", at least in the SCSI world (the multiport model for SAM-2 was titled "Defining targets/initiators as ports" so you see where the legacy comes from). 2) "SCSI target device": this one is only now more formally being added to the SAM-2 model; essentially it is a container of SCSI target ports and SCSI logical units (and a few other things) 3) "iSCSI target": this is the thing that gets the iSCSI name (at least as we've been looking at it) and is a purely iSCSI construct. [A similar distinction is required on the term "initiator".] I personally always attempt to be completely clear when I use the terms. So, if you read my note carefully, I use the term "iSCSI target" exclusively to mean thing 3. Can we all agree to use these terms carefully, to avoid the confusion misinterpretation of intent can cause? Or should we come up with different terms? Here's short outline of how we've modeled things (and how I interpret the use of these terms): -- Each iSCSI target gets an iSCSI name. -- Each iSCSI target MAY contain at most one SCSI target device. -- An iSCSI target that does not contain a SCSI target device is there only for iSCSI purposes (such as SendTargets). -- Each iSCSI target must require it's name be supplied during login. This was so that iSCSI initiators (those things that initiate iSCSI login but may or may not have a SCSI initiator device within them) will always do the same login process, that is, include the iSCSI name. [In other words, the name is mandatory for every login.] -- For an iSCSI target that only performs the SendTargets (has no SCSI target device), we allowed that to have the generic name "iSCSI". -- For an iSCSI target that has a SCSI target device, we wanted such things to have unique names for two reasons: (a) so that there would be something the initiator can authenticate and configure against (b) so that the SCSI target device could have a name as well (it would inherit the name from it's parent entity, the iSCSI target). We could easily remove the name from the SCSI-deviceless iSCSI target, but then the iSCSI initiator has to make the distinction of when to include the tag and when not to. It's a nit. We could make the name="none". It's a placeholder, more than anything else. On the other hand, there may be a need latter for other iSCSI targets that don't contain SCSI targets. These might be administrative entities in the box. So other "well-known names" could be defined as well. As I said above, I need some time to digest the rest of your note, but in the meantime, I am not confortable with an iSCSI target that contains a SCSI target device not having a unique name (if for no other reason to meet (b) above). If it has a unique name and because it is available to the iSCSI initiator, there is no reason that initiator can't use it. Jim Hafner Stephen Bailey <steph@cs.uchicago.edu>@ece.cmu.edu on 05-17-2001 09:17:47 AM Sent by: owner-ips@ece.cmu.edu To: cc: Subject: Re: iSCSI: Canonical Targets Jim, Mark, et al., > I guess I'm having trouble understanding the issues here. We seem to be > moving toward three types of iSCSI targets: I disagree. We still only have one type of target, but our choice of terms is makes it look otherwise. > 1) one for discovery only, suitable for login only by authenticated > initiators, i.e., a one-sided authentication, but ONLY for the purposes of > SendTargets. A discovery login does not involve a target at all. A target is a SCSI entity, and, as Mark pointed out, there's no SCSI interaction in a discovery login. If, as Mark, you don't like the empty string to denote no target, we could use: TargetName=none for discovery login. I don't really care how the notion is represented, only that we agree upon the notion itself. > 2) one "nameless" target ("iSCSI"), again suitable for login only by > authenticated initiators, i.e., a one-sided authentication, but used for > real SCSI stuff This target is not nameless. It has a full-fledged iSCSI name, which is returned in the LoginResponse of the login interchange. `iSCSI' is A name (not THE name) for the DEFAULT (as administered at the target) target. The specific target named by iSCSI may vary based upon initiator, or phase of the moon (a target-based administrative choice). Authentication is performed with the initiator against the specific, target-chosen default target. An initiator should only ask for the default target when it wants the associated default behavior. The advantage of the default target is you get an extremely low-overhead way of administering the storage accessed by an initiator which is configured purely at the target, without requiring additional infrastructure. As Doug pointed out, this behavior is useful for initiators with limited resources, or just limited desire (or ability) to select a particular target (e.g. booting servers in an Infiniband-style zillion*3*1U rack farm). I'm having a hard time swallowing the `it makes the specification more complicated' argument. After all, I tried that on multiconnection sessions, where it really DOES make the specification more complicated :^) Seriously, it's not complex to specify, we simply have to actually do it. Also, that somebody besides me and Doug (I'm sure there are many of you out there for whom our mail doesn't even reach your inbox....) hasn't specifically requested this feature isn't really a good argument. The set of iSCSI applications represented presently is somewhat limited. We all know iSCSI has huge potential, but if we make it purely market-targeted based upon the present, (aim for the immediate money), we're going miss future low-hanging fruit. Put another way, we're not expecting anybody to throw away their existing, local storage connection as soon as the ink dries on the iSCSI RFC. However, removing one entire port from systems is a compelling argument for iSCSI in the long run. To that end, the default target is a simple, familiar mechanism which will make that process easier. Why? Because although the rubber (dollars) really meets the road in this case when you have many servers, and a big network (and probably a complicated management infrastructure), a natural consequence will be that people will want to take those same components (off the shelf) and build small configurations, e.g. with a SINGLE server, and a SINGLE target and little or no management infrastructure. Every large configuration begins as a small one. Steph
Home Last updated: Tue Sep 04 01:04:41 2001 6315 messages in chronological order |