T
p 103
6.1.1 Usage of Retry and 6.7 SCSI Timeouts: the semantics of Retry
remain
broken rendering it useless for tape operation. SCSI level
error
detection and recovery is the preferred mechanism. Refer to
previous emails
sent via the IPS reflector regarding this matter.
+++ Dave. The retry scheme for
connection recovery implies that the other two levels are there.
So even if I would agree with your POW
(which I am not) for practical reasons the mechanisms described
will have to stay.
+++
dap: again, without a standardized method for
error detection (see the options I listed) to determine when the
retry may be performed, the retry functionality is
broke/useless/inconsistent for tape applications. This is not an
implementation detail as some suggest. This must be consistent across vendor
implementations for a tape application to work
consistently.
T
p 128
8.6 Considerations for State-dependent devices: last
paragraph:
don't agree with the statement that error recovery at the
iSCSI level
(specifically Retry in its current state) is advisable. Retry
at the SCSI
level is feasible and is not difficult (i.e., READ POSITION
and LOCATE
commands). This paragraph should be removed.
+++ that is not what we repeatedly hear. I will
however make a "softer" statement. +++
dap: I don't know who is feeding you this information. READ POSITION
is and has been mandatory to implement for tape devices for quite a while
now. Additionally I'm on the verge of making LOCATE mandatory (in reality if
READ POSITION is implemented, so is LOCATE). Any backup app/application
client worth anything uses READ POSITION (and LOCATE). I have a major
problem with any text that suggests otherwise. The use of READ POSITION and
LOCATE mitigates the need for retry (and most error recovery) at the
transport level, and this is where I want to go. Retry at the application
level simply must not be performed without first:
1.
determine the position of the device using READ POSTITION,
then
2.
(re)position the device if
neccessary, then
3.
continue
This is not difficult, provided READ POSITION/LOCATE are
supported.
If
the offending paragraph is indeed targeted for legacy device support,
it certainly does not say that. In reality, todays inplementations
use READ POSITION/LOCATE extensively and (legacy) devices that do not
support these commands are very rare for this type of tape
application/environment.
I
expect that a legacy tape device will be front-ended by a bridge device
(i.e., I don't expect to see a native-iSCSI legacy tape device). This legacy
tape device will not support the desirable functionality (such as FCP-2
error detection and recovery) thus placing a burden on a bridge device if
the desired goal is to be achieved.
Furthermore, the legacy devices will generally be of the
Parallel SCSI variety, not FCP. The FCP-x tape devices I know of each
support READ POSITION/LOCATE.
The offending paragraph (draft 15):
"For many of those state changing commands the execution model also
assumes that the command is executed exactly
once. For those commands a retry at SCSI
level is not feasible or very difficult and error recovery at iSCSI level is
advisable."
must be removed.
Note: The connection reassignment capability does provide use for
tape applications, e.g, will hopefully keep the application running. I have
no problem using the retry functionality in this
context.
T
p 214
11.11 BidiInitialR2T: this text key
provides no value and needs to
be removed. InitialR2T should be used for
both uni and bidirectional
commands. In addition, if BidiInitialR2T were
to be used, it will not
function via an iSCSI-FCP gateway.
+++ A
gateway can easily map the keys. We don't know enough to decide off-hand to
remove it.
But I am still
listening.
+++
dap: There is no reason to have
a different key to indicate whether or not an R2T will be used for bidi
commands. InitialR2T works just fine for both. FCP uses just one
parameter (i.e., write FCP_XFER_RDY disabled) for both and all is
well. What more can I say, other than remove the
key.