fastest raw device copy?

Erik Trulsson ertr1013 at student.uu.se
Fri Oct 31 09:14:52 PDT 2008


On Fri, Oct 31, 2008 at 08:13:07AM -0700, Jeremy Chadwick wrote:
> On Fri, Oct 31, 2008 at 03:36:02PM +0100, Christoph Kukulies wrote:
> > Ivan Voras schrieb:
> >> Jeremy Chadwick wrote:
> >>   
> >>> On Fri, Oct 31, 2008 at 09:48:16AM +0100, Christoph Kukulies wrote:
> >>>     
> >>
> >>   
> >>>> What would be the fastest way to do that sector by sector copy? I'm 
> >>>>  using dd right now,
> >>>>
> >>>> dd if=/dev/ad0 of=/dev/da0 bs=10000000
> >>>>       
> >>
> >>   
> >>> On the flip side, your blocksize (bs) there is quite high for no good
> >>> reason.  I'd pick something more like bs=64k or bs=128k.  The default
> >>> (512) is too small for what you want, but 10MBytes is silly.
> >>>     
> >>
> >> Not only that, but "10000000" isn't even correct - it needs to be a
> >> multiple of sector size. Generally, using suffixes will do the right thing:
> >>
> >> dd if=/dev/ad0 of=/dev/da0 bs=1m
> >>
> >>   
> > OK, I understand that 10000000 isn't good, I just thought it wouldn't  
> > harm. But if it is a transfer rate killer then I'd better think of  
> > typing ^C now. The command is running for 6 hours now.
> 
> Six hours?  Hmm...  That seems too long, but of course the FreeBSD USB
> stack is involved, and a USB device in general.  I would have assumed
> that copy should have finished after 2-3 hours tops.

2-3 hours is about the *minimum* amount of time needed to read all of a
large modern disk - and that is when you do the transfer over SATA/IDE.
Over USB it will be significantly slower.

A modern, fairly fast disk has an average sequential transfer rate of around
60MB/s (higher on the outer tracks, and lower on the innermost track, but
the average will come out to about that.)

Assume a 500GB disk. Then we get 500GB/(60MB/s) = 500*1000/60 s = 8333s =
2h18min to read all of it.

Over USB you probably will not get much more than 20-25MB/s.  20MB/s is
exactly a third of the 60MB/s we used earlier gives a total time of
3*(2h18min) ~= 7h.  Those 6 hours do not sound unreasonable at all.

(All of this assumes just reading the disk from start to end. If you need to
seek back and forth it will take even longer.)






-- 
<Insert your favourite quote here.>
Erik Trulsson
ertr1013 at student.uu.se


More information about the freebsd-questions mailing list