|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: iSCSI: remove recovery from transport-layer connection failur e(?)
Somesh,
I am sure that a broken TCP connection could be repaired at TCP level as
there you have
a minimum of context information to care.
I've even seen some (academia) papers outlining how to do it and perhaps
one day the TCP community will do it.
But since we need it now and it is simple to achieve we will have to go for
it.
The mainframes had it (command restart on channels) for a long time
and the it comes almost free.
Regards,
Julo
"GUPTA,SOMESH (HP-Cupertino,ex1)" <somesh_gupta@am.exch.hp.com> on
02/10/2000 23:47:36
Please respond to "GUPTA,SOMESH (HP-Cupertino,ex1)"
<somesh_gupta@am.exch.hp.com>
To: Julian Satran/Haifa/IBM@IBMIL, ips@ece.cmu.edu
cc:
Subject: RE: iSCSI: remove recovery from transport-layer connection failur
e(?)
Julian,
If the scenario you point out is correct (a single command lasting
for such a long time), then of course we need a mechanism where
we can restart the command from the approximate point of failure.
However that would be failures lasting for "more than a fraction
of a sec".
First of all, a TCP connection does not indicate a failure that
quickly. Secondly, there are ways to recover from a path failure
and still preserve a TCP connection in High-Availability environments.
I am sure most system vendors would be implementing such techniques.
Somesh
-----Original Message-----
From: julian_satran@il.ibm.com [mailto:julian_satran@il.ibm.com]
Sent: Sunday, October 01, 2000 1:52 AM
To: ips@ece.cmu.edu
Subject: Re: iSCSI: remove recovery from transport-layer connection
failure(?)
Steph,
Assume than in the new wonderfull SAN world you have started a disk-to-tape
(or disk-to-disk) long third party copy. The SAN is fine and the copy
proceeds for an hour
but the lousy initiator-to-copy-manager link (on which accidentally no data
transfer took place) fails for a fraction of a second.
Should we restart the command under-the-cover or drop it or ask
the parties to provide state information to a specific SCSI restart driver?
And we can build many similar scenarios.
I think that whatever we can do simplify exception handling we should do
(the same arguments that hold for multiple connections hold here too).
I would add that in Ideal world - I would like to have transport "splice" a
new TCP
connection with an old TCP connection but failing this to happen (again
SCTP is doing it already or not?) we should take care that simple events
like a cable taken-out
in some obscure part of the network will only seldom affect higher layers.
Julo
Stephen Bailey <steph@cs.uchicago.edu> on 27/09/2000 07:16:12
Please respond to Stephen Bailey <steph@cs.uchicago.edu>
To: ips@ece.cmu.edu
cc: (bcc: Julian Satran/Haifa/IBM)
Subject: Re: iSCSI: remove recovery from transport-layer connection
failure(?)
> Currently, iSCSI is spec'ed to recover from transport-layer
> connection failures.
>
> The main motivation for this decision was to support tape backup
> applications that are quite sensitive to any failures that get
> propogated to their layer.
>
> So, perhaps we can remove the requirement of recovering from
> transport-layer connection failures in iSCSI. This would simplify
> the protocol somewhat.
>
> Thoughts?
I'm all for eliminating command recovery.
There seem to be several reasons advanced for command recovery.
The first seems to be based upon an inappropriate analogy to FCP.
Command recovery had to be added to FCP-2 because the FC layer is
unreliable. A single dropped FC frame leads to a failed FCP command.
This clearly upsets tape operation even when the link is performing
nominally. In FCP, without command recovery, with some observable
frequency, you will get an expected error that leads to complete,
irrecoverable failure of a transfer stream. The other thing that
makes FCP-2 command recovery work well is when you are doing a write,
which is 90% (maybe it's 99%?) of tape operation, the target can
return an early indication of most frame drops, rather than waiting
for a timer to expire.
TCP's reliability solves this problem in another way. By the time you
get a TCP connection failure, you have already exhausted a set of
reliability mechanisms which guarantee, with high certainty, that
further data can not be transferred between the two endpoints.
`the two endpoints' phrase suggests the other reason advanced for
command recovery. That is, to permit path failover for commands which
are not idempotent, such as tape write sequential. The
problem with this, is that it is not clear HOW iSCSI command recovery
can actually work properly, given a TCP connection failure indication.
It takes a long time for a TCP connection to fail, and by that time,
I'm not sure recovery would reasonably be possible. Perhaps I'm in
error on this assumption. Can a tape guru (Joe from Exabyte?) comment
on whether recovery would be possible after many seconds (tens,
hundreds) have elapsed?
The SCSI layer has never been solely responsible for ensuring reliable
backup. Macro scale things go wrong with tape (run off the end, get
eaten, etc..) with relatively high frequency. A low level backup
engine like tar or dump will fail on a SCSI error, and that's OK.
There must also be a higher level software component like Amanda,
which manages retries, including operator intervention, to ensure
reliable backup.
It seems like whether iSCSI has a command recovery mechanism should be
a function of whether somebody can stand up and say for sure that it
solves a real problem. So far it only seems like it MIGHT solve a
problem. Who can say `this solves MY problem!'?
Steph
Home Last updated: Tue Sep 04 01:06:52 2001 6315 messages in chronological order |