|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: iSCSI: multiple sessions b/n a pair of WWUIs.
Santosh,
Notes in text below between [Huff] and [/Huff].
.
.
.
John L. Hufferd
Senior Technical Staff Member (STSM)
IBM/SSG San Jose Ca
(408) 256-0403, Tie: 276-0403, eFax: (408) 904-4688
Internet address: hufferd@us.ibm.com
Santosh Rao <santoshr@cup.hp.com>@ece.cmu.edu on 05/09/2001 10:41:34 AM
Sent by: owner-ips@ece.cmu.edu
To: John Hufferd/San Jose/IBM@IBMUS
cc: Black_David@emc.com, ips@ece.cmu.edu
Subject: Re: iSCSI: multiple sessions b/n a pair of WWUIs.
John Hufferd wrote:
>
> Santosh,
> I think I am beginning to see the problem. A given iSCSI Initiator Port
> can NOT have a second session with the same iSCSI Initiator Port and be
John,
^^^^^^^^^^^^^^^^^^^^^
Is the above "same iSCSI target port" (?).
[Huff] correct, it was a Type-O, or Brain-check.[/Huff]
> consistent with SCSIness. The second session could be started with
another
> ISID, (to the same iSCSI Target Port) but if the session was established
it
> would not have any of its commands and data handled via any techniques
> defined by SCSI or iSCSI. In fact its use would require a wedge driver.
Perhaps, some of my confusion arises from a lack of understanding of
your definition of iSCSI Initiator Port and iSCSI Target Port. Some
clarification on your definition of these would help make things more
clear.
[Huff] In our Naming and Discovery Document the thing I am calling iSCSI
Initiator Port was shown as the SCSI Initiator Port. It is the thing that
creates the sessions that talk to the Target Devices, the Target Device
must logically receive the connection and assign it to what I was calling
an iSCSI Target Port, which in the N&D document was shown as the SCSI
Port.
It is the (i)SCSI Initiator Port that creates Sessions and in our iSCSI
model it does this through the LOGIN command sending the iSCSI Initiator
Node Name and an approprate ISID. The Target side's SCSI port, in our
iSCSI model exchanges its iSCSI Target Node Name and an approprate TSID.
(And Jim has been talking about how the (i)SCSI Target Port should keep
persistent reservation information, including the ISID & TSIDs, and use
that information to re-establish the Session and assign to the Session the
approprate Reservations that might be out standing for the approprate
(i)SCSI Initiator Port -- This port is identified by the iSCSI Initiator
Node Name and the ISID, under which the Reservation was taken.)[/Huff]
> This is the exact confusion I was trying to avoid. Technically if you
were
> actually able to start another Session to the same Target Port, it would
> be, by definition another iSCSI Initiator Port. The two different Ports
> would need to be coordinated by what we have been calling a Wedge Driver.
I'm not sure why you believe a wedge driver would be required to handle
such a configuration.(?) Per my understanding [which may be missing some
aspect], the host can operate in such a configuration in the absence of
a wedge driver.
Also, the host could create such multiple sessions to the same target
port in order to separate sub-sets of LUNs into different sessions and
apply different session properties to each such LUN subset.
[Huff] As for Wedge Drivers, this is a NON SCSI process that is either
Dynamic and therefore in the path to the Port, or is Static and performs
setup before the I/O is done (such as isolation of one set of LUNs from
others even though they are on the same Target). But some one has to do
something to prevent the LUN I/O from being spread across different
sessions, such that order can not be assured. The best performing Wedge
Drivers are those that can send the I/O down any Session, but will insure
that it will not send any LUN I/O down another Session as long as the LUN
has I/O out standing. However, if no I./O is outstanding to the LUN it can
balance the I/O across the different session. So in my terms, your wedge
driver either separate the LUN I/O ahead of time statically, or it does it
dynamically (or both). The point to remember is: if Multiple Connections
per Sessions (SC/S) can be used, there is no Wedge Driver requirement and
the code is already in place to balance I/O across connections. Since
SC/S is documented by the protocol, we should probably give preference in
the document to those design approaches which use the protocol to its best
advantage. [/Huff]
>
> Today, the way we use multiple Fibre Channel Initiator Ports connected to
> the same Fibre Channel Target Ports is by use of Wedge Drivers.
With FC, connecting multiple initiator ports from the *same* host to a
single target port makes little or no sense. The host would see the same
LUNs twice through different initiator ports.
[Huff] In fact this is a frequent type of connection used by large servers,
and this is where the Wedge drivers come into action [/Huff]
A more typical configuration is to connect multiple FC initiator ports
from *different* hosts to the same target port as a high availability
configuration. Yes, in such a case, some type of cluster application
would be managing the switch-over from one initiator port to another.
(Is this the case being referred to ?).
[Huff] This is not what I was talking about, this is the typical type of
connections with Shared File Systems. and that does not need a Wedge
Driver, since the Shared File System (or Database) protects its self in
such a cluster environment. Also no application can assume any
inter-arrival of I/O with respect to the other system unless it does its
own coordination. This is NOT a Wedge Driver. [/Huff]
> I think
> what you are suggesting causes the need for a Wedge Drivers to integrate
> the iSCSI Initiator Ports.
(I guess we wandered off into a different line of discussion which is
"whether multiple sessions between an initiator port and target port are
legal and required" ? :)
My answer to that would be, yes, they are legal and required. They also
do not require the use of a wedge driver. The host may configure
multiple sessions from one iSCSI initiator NIC to a given iSCSI
TargetAddress so as to access LUN subsets from different sessions, and
apply different session properties to different LUN sub-sets.
[Huff] The point is their sematicts are NOT defined by SCSI, you need what
I was calling a Wedge Driver either dynamic or Staticly, and I think you
are saying the same thing. Yes, it can be done, but the deffinition of
what happens is NOT Standarized. [/Huff]
Such multiple sessions that are originated on the same initiator NIC
need to use different ISIDs [for all of the sessions for that given
target node] and thereby, are considered multiple iSCSI Initiator Ports,
based on the current name-disc draft's defn.
[Huff] Correct, we are back on the same page now. [/Huff]
Not sure that we want to cause this type of
> thinking, by accident. One of the reasons for Multiple Connections per
> Session was to remove the "Hard" need for Wedge Drivers.
IMHO, "multiple connections per session" complements wedge drivers in
their functionality but may not comletely replace them. A lot of wedge
drivers have code specific to the SCSI properties of the target and
moving all of this functionality into the iSCSI layer would imply adding
device specific code into this layer. Not the cleanest of layering
schemes.
[Huff] Correct again, there are some dynamic wedge drivers that not only
balance workload but also spring into action to help with fail over
situations. Also the wedge drivers sometimes are needed to ensure that for
the best use of the target Raid Array Caches, by assuring that the various
LUN traffic is isolated/fixed to one connection or another,until fail over
at the target. These types of storage controllers will probably continue
to need Wedge Drivers, but that makes it very hard to come up with generic
Desktop and Laptop Initiators that can efficiently use those types of RAID
Arrays. IMHO it is unlikely that Microsoft will ship various vendor
specific Wedge Drivers, so it will be up to the RAID manufacture, and that
is always problematical in large installations. [/Huff]
Also, some wedge drivers claim to utilize device proprietary features,
which a device independent iSCSI initiator layer could not provide
through "multiple connections per session".
[Huff] And again Correct, as I agreed above. However, it would be very
good if the vendors that are making the various generic iSCSI initiators,
think through how they will handle the Single Connection case with one of
the above mentioned RAID Array Controllers, so that upon failure of one
side of a duplexed Raid Storage Controller, the Session can be restarted
from the initiator to the surviving side of the Raid Controller (which may
have a different TCP/IP address, or have taken over the failing IP
address). If a clean new session is started, the target still needs to
handle Persistent Reserves, and if the surviving Storage controller board
actually takes over the IP address, then I am not sure what we should be
doing since the surviving side may or may not have approprate state to
continue the session as if nothing had happen. (I would be interested in
opinions here.)
In any event, as I suspected, we are in basic agreement, but were talking
past each other. So the question is should David's suggestion about
including, in the Protocol Document, the concept of multiple ISIDs per
(i)SCSI Port. My opinion is not, since it would probably cause a whole
lot of discussion about Wedge Drivers, etc., and I do not think that would
be approprate in the iSCSI spec. [/Huff]
Regards,
Santosh
Home Last updated: Tue Sep 04 01:04:44 2001 6315 messages in chronological order |