SCSI tape data loss
Kern Sibbald
kern at sibbald.com
Tue Jun 3 00:28:49 PDT 2003
Concerning the maximum buffer size: I have chosen
the default maximum buffer size to be 64512 bytes so
that it is smaller than 65536. In fact, 64512 bytes is
the size (126 blocks) that I used for tar in 1982
and never had any problems.
>From what I understand the 65536 point at which
buffers are always split only applies to devices in
fixed block mode, and probably older devices at that.
Though Bacula can run in fixed block mode, the
default is variable block, so I don't see that as
an issue here -- unless I am missing something?
Can you explain why you mention 61440 bytes? and
why it might be a better choice than 64512?
On aligning the buffers on a page boundary: interesting
idea, I'll look into it, but I'm not too keen on the
idea.
Best regards,
Kern
On Tue, 2003-06-03 at 00:42, Carl Reisinger wrote:
> While your current problem may not be related to the
> tendency of physio to silently breakup writes (and reads) I
> believe you should revisit your code and make sure all buffers
> are on a page boundary, especially since your writes are over
> 61440 bytes in size. And the max bufer size should be limited
> to 65536 (otherwise all writes will be split).
>
> Doing this now will prevent surprises in the future.
>
> Carl Reisinger
> Mirapoint
>
> >
> >Most of Bacula writes are 64512 bytes, and all the
> >data that was lost consisted of blocks of 64512 bytes.
> >
> >>
> >> But I sorta doubt that this was the issue.
> >>
> >> A buddy of mine at Mirapoint did just remind me that physio
> can silently
> >> break up xfers that are even less than 64k if the buffer
> isn't page
> >> aligned- I'd forgotten about that. But I'm not sure that
> this is what is
> >> occurring.
> >
> >The buffers are 64 bit aligned but not page aligned.
> >
More information about the freebsd-scsi
mailing list