[linux-lvm] copy lv from lv?
Ray Morris
support at bettercgi.com
Tue Apr 5 16:25:27 UTC 2011
> Isn't this already done in a better way by 'dd' using 'zero' copy
> mechanism ?? (assuming it is already using either 'mmap()' ->
> 'write()' or 'splice()' as your proposed piped copy is doing a lot
> of pointless memory copies and cache trashing.
No, with directio there isn't "a lot of pointless memory copies
and cache trashing". There are in fact fewer mempoy copies than
there would be with a simple:
dd if=thing of=thing
See:
http://www.ukuug.org/events/linux2001/papers/html/AArcangeli-o_direct.html
The proof of the pudding is in the eating, and in fact that
recipe is extremely fast, for this application (sequential
copy of GBs from one device to another). I spent a couple
of hours testing before spending hundreds of hours copying.
My bottom line was speed, so I didn't even look at memory
usage or CPU. I would't mind using an extra 64 MB in order
to get my copying done 30 hours faster.
--
Ray Morris
support at bettercgi.com
Strongbox - The next generation in site security:
http://www.bettercgi.com/strongbox/
Throttlebox - Intelligent Bandwidth Control
http://www.bettercgi.com/throttlebox/
Strongbox / Throttlebox affiliate program:
http://www.bettercgi.com/affiliates/user/register.php
On Thu, 31 Mar 2011 14:15:04 +0200
Zdenek Kabelac <zkabelac at redhat.com> wrote:
> Dne 31.3.2011 02:27, Stuart D. Gathman napsal(a):
> > On Wed, 30 Mar 2011, Ray Morris wrote:
> >
> >>> 1..how to pipe two copy together
> >>
> >> This is what I use after some experimenting. I've found
> >> it's often far faster than the more obvious use of dd:
> >>
> >> nice -5 dd if=/dev/clones/from bs=64M iflag=direct |
> >> dd of=/dev/scratch/to bs=64M oflag=direct
> >>
> >> I use 64 MB extents. For smaller extents, a matching dd
> >> block size might be good.
> >
> > Thanks for that recipe. It ought to be in lvm2 as an lvcopy utility
> > (dynamically determining extent size, etc).
> >
>
>
> Isn't this already done in a better way by 'dd' using 'zero' copy
> mechanism ?? (assuming it is already using either 'mmap()' ->
> 'write()' or 'splice()' as your proposed piped copy is doing a lot
> of pointless memory copies and cache trashing.
>
> If it's still faster - then your kernel setting for buffering are
> most probaly not tuned for the best performance.
>
> Zdenek
>
> _______________________________________________
> linux-lvm mailing list
> linux-lvm at redhat.com
> https://www.redhat.com/mailman/listinfo/linux-lvm
> read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
>
More information about the linux-lvm
mailing list