SCSI tape data loss
Kern Sibbald
kern at sibbald.com
Mon Jun 2 08:27:31 PDT 2003
Thanks for your response.
On Mon, 2003-06-02 at 17:10, Justin T. Gibbs wrote:
> >> > My personal preference is for data security before performance.
> >>
> >> There is no potential for lost data if you handle the status that
> >> is presented to you.
> >
> > Could you explain that more in detail? If you mean dig into the
> > OS/driver specific details of an MTIOCERRSTAT packet. That *shouldn't*
> > be necessary -- at least it is not necessary on Solaris/Linux to
> > guarantee data integrity.
>
> If you properly honor the residual provided in MTIOCERRSTAT, then
> you will know what data needs to be rewritten. In otherwords,
> all the information required to behave correctly is there.
I'll take a look at what the residual provides and see if it
corresponds to our data loss.
>
> >> The tape driver doesn't have any buffering code (unlike Linux which
> >> does). The tape drive has a buffer. We are just enabling the use
> >> of that buffer. If you really want to do this simply, just do a
> >> write filemarks of 0 marks everytime you are about to switch input
> >> files. The write marks flushes the device's buffer an guarantees
> >> that any residual will be within the fd that you are currently using.
> >> This would imply that you only need to explicitly buffer if you support
> >> backups from stdin.
> >
> > I don't mind if the tape drive buffers data as long as it writes
> > *all* of that data to the tape and informs me on the next write
> > that the LEOM logical EOM in Solaris parlance (or early EOM)
> > has been hit.
>
> FreeBSD does start to fail writes at LEOM, but depending on the tape
> type and the amount of buffer, etc. you may or may not get all data
> from the buffer to the tape. That is why a residual is provided.
Too bad that FreeBSD doesn't start failing writes at LEOM. That would
completely remove the need for a residual and hence machine specific
programming, and the cost or price for doing so is nothing.
>
> >> You can never recover the round trip time on the SCSI bus unless
> >> you either have a device that allows you to queue more than one
> >> command at a time or that buffers. I believe that only FC tape
> >> devices support queuing more than one command at a time, but few
> >> programs support this anyway (unless you lie and say that a previous
> >> write has completed).
> >
> > I can see that performance concerns you because you wrote the
> > driver,
>
> I care about performance because performance matters. I didn't
> write this driver.
OK. Yes, performance matters but not when you are losing data. :-)
More information about the freebsd-scsi
mailing list