linux-lvm.redhat.com archive mirror
 help / color / mirror / Atom feed
* [linux-lvm] copy lv from  lv?
@ 2011-03-29 12:53 yue
  2011-03-29 17:48 ` Ray Morris
  2011-03-30 13:49 ` yue
  0 siblings, 2 replies; 10+ messages in thread
From: yue @ 2011-03-29 12:53 UTC (permalink / raw)
  To: linux-lvm

[-- Attachment #1: Type: text/plain, Size: 87 bytes --]

if lvm do not support lv copy? it is better copy on write.
dd takes long time.
 
thanks

[-- Attachment #2: Type: text/html, Size: 217 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [linux-lvm] copy lv from  lv?
  2011-03-29 12:53 [linux-lvm] copy lv from lv? yue
@ 2011-03-29 17:48 ` Ray Morris
  2011-03-30 13:49 ` yue
  1 sibling, 0 replies; 10+ messages in thread
From: Ray Morris @ 2011-03-29 17:48 UTC (permalink / raw)
  To: linux-lvm

> if lvm do not support lv copy? it is better copy on write.
> dd takes long time.

For a complete copy the only thing faster than "dd" is two 
copies of "dd" piped together. dd is basically limited by
the speed of the physical disks, assuming proper arguments 
to dd.  For a copy on write, that's called a snapshot. LVM 
COULD beused to copy, by making and splitting a mirror, but 
that's going to be a lot slower than dd. (Though a mirror and
split can be used on a live filesystem, wth it unmounted only 
for an instant during the split).
-- 
Ray Morris
support@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 Tue, 29 Mar 2011 20:53:37 +0800 (CST)
yue <ooolinux@163.com> wrote:

> if lvm do not support lv copy? it is better copy on write.
> dd takes long time.
>  
> thanks

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [linux-lvm] copy lv from  lv?
  2011-03-29 12:53 [linux-lvm] copy lv from lv? yue
  2011-03-29 17:48 ` Ray Morris
@ 2011-03-30 13:49 ` yue
  2011-03-30 18:28   ` Ray Morris
  1 sibling, 1 reply; 10+ messages in thread
From: yue @ 2011-03-30 13:49 UTC (permalink / raw)
  To: LVM general discussion and development

[-- Attachment #1: Type: text/plain, Size: 1660 bytes --]

1..how to pipe two copy  together
2.i take lv as xen-guestOS's  disk. usually many  guestOS created from one lv(called template), maybe many data is readonly, so  if  so many lvs share readonly part ,and have its private data? COW save disk space, and take less time.
 
i do not think snapshot is sutable for this case.
 
thanks




At 2011-03-30 01:48:14,"Ray Morris" <support@bettercgi.com> wrote:

>> if lvm do not support lv copy? it is better copy on write.
>> dd takes long time.
>
>For a complete copy the only thing faster than "dd" is two 
>copies of "dd" piped together. dd is basically limited by
>the speed of the physical disks, assuming proper arguments 
>to dd.  For a copy on write, that's called a snapshot. LVM 
>COULD beused to copy, by making and splitting a mirror, but 
>that's going to be a lot slower than dd. (Though a mirror and
>split can be used on a live filesystem, wth it unmounted only 
>for an instant during the split).
>-- 
>Ray Morris
>support@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 Tue, 29 Mar 2011 20:53:37 +0800 (CST)
>yue <ooolinux@163.com> wrote:
>
>> if lvm do not support lv copy? it is better copy on write.
>> dd takes long time.
>>  
>> thanks
>
>_______________________________________________
>linux-lvm mailing list
>linux-lvm@redhat.com
>https://www.redhat.com/mailman/listinfo/linux-lvm
>read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/

[-- Attachment #2: Type: text/html, Size: 2817 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [linux-lvm] copy lv from  lv?
  2011-03-30 13:49 ` yue
@ 2011-03-30 18:28   ` Ray Morris
  2011-03-31  0:27     ` Stuart D. Gathman
  2011-04-01  2:46     ` [linux-lvm] " yue
  0 siblings, 2 replies; 10+ messages in thread
From: Ray Morris @ 2011-03-30 18:28 UTC (permalink / raw)
  To: LVM general discussion and development; +Cc: ooolinux

> 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.

> 2.i take lv as xen-guestOS's  disk. usually many  guestOS created
> from one lv(called template), maybe many data is readonly, so  if  so
> many lvs share readonly part ,and have its private data? COW save
> disk space, and take less time. i do not think snapshot is sutable
> for this case. thanks

Some people use snapshots for that purpose.  I'm not one of those
people, so I don't know details, other than that it can be done.

If you are creating that template guest, meaning that you can choose
the filesystem layout, etc., the most efficient but less flexible 
option may be to decide explicitly what's read only. The liveCD 
crowd has documented procedures gained from their experience in 
making most of the system read only. As a side benefit, such systems
can't be rooted or screwed up in some ways, so there's a level of
trust knowing the core system is "correct".  Then you could mount 
the same image for the readonyl portions of many guests, while 
mounting "per guest" images for /home, /tmp, etc.
-- 
Ray Morris
support@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 Wed, 30 Mar 2011 21:49:21 +0800 (CST)
yue <ooolinux@163.com> wrote:

> 1..how to pipe two copy  together
> 2.i take lv as xen-guestOS's  disk. usually many  guestOS created
> from one lv(called template), maybe many data is readonly, so  if  so
> many lvs share readonly part ,and have its private data? COW save
> disk space, and take less time. i do not think snapshot is sutable
> for this case. thanks
> 
> 
> 
> 
> At 2011-03-30 01:48:14,"Ray Morris" <support@bettercgi.com> wrote:
> 
> >> if lvm do not support lv copy? it is better copy on write.
> >> dd takes long time.
> >
> >For a complete copy the only thing faster than "dd" is two 
> >copies of "dd" piped together. dd is basically limited by
> >the speed of the physical disks, assuming proper arguments 
> >to dd.  For a copy on write, that's called a snapshot. LVM 
> >COULD beused to copy, by making and splitting a mirror, but 
> >that's going to be a lot slower than dd. (Though a mirror and
> >split can be used on a live filesystem, wth it unmounted only 
> >for an instant during the split).
> >-- 
> >Ray Morris
> >support@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 Tue, 29 Mar 2011 20:53:37 +0800 (CST)
> >yue <ooolinux@163.com> wrote:
> >
> >> if lvm do not support lv copy? it is better copy on write.
> >> dd takes long time.
> >>  
> >> thanks
> >
> >_______________________________________________
> >linux-lvm mailing list
> >linux-lvm@redhat.com
> >https://www.redhat.com/mailman/listinfo/linux-lvm
> >read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [linux-lvm] copy lv from lv?
  2011-03-30 18:28   ` Ray Morris
@ 2011-03-31  0:27     ` Stuart D. Gathman
  2011-03-31 12:15       ` Zdenek Kabelac
  2011-04-01  2:46     ` [linux-lvm] " yue
  1 sibling, 1 reply; 10+ messages in thread
From: Stuart D. Gathman @ 2011-03-31  0:27 UTC (permalink / raw)
  To: LVM general discussion and development; +Cc: ooolinux

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).

>> 2.i take lv as xen-guestOS's  disk. usually many  guestOS created
>> from one lv(called template), maybe many data is readonly, so  if  so
>> many lvs share readonly part ,and have its private data? COW save
>> disk space, and take less time. i do not think snapshot is sutable
>> for this case. thanks

As long as the origin is not often modified, having many snapshots
is efficient.  Each write to the origin will of course entail a write
to each snapshot.  (And as I discovered recently, if write barriers are
disabled or buggy at any hardware or software layer, a power failure during
heavy writes to the origin is particularly vulnerable to write reordering 
corrupting a snapshot.  So make sure UPS is working before updating the
origin.)

--
 	      Stuart D. Gathman <stuart@bmsi.com>
     Business Management Systems Inc.  Phone: 703 591-0911 Fax: 703 591-6154
"Confutatis maledictis, flammis acribus addictis" - background song for
a Microsoft sponsored "Where do you want to go from here?" commercial.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [linux-lvm] copy lv from lv?
  2011-03-31  0:27     ` Stuart D. Gathman
@ 2011-03-31 12:15       ` Zdenek Kabelac
  2011-04-05 16:25         ` Ray Morris
  0 siblings, 1 reply; 10+ messages in thread
From: Zdenek Kabelac @ 2011-03-31 12:15 UTC (permalink / raw)
  To: linux-lvm

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [linux-lvm] copy lv from lv?
  2011-03-30 18:28   ` Ray Morris
  2011-03-31  0:27     ` Stuart D. Gathman
@ 2011-04-01  2:46     ` yue
  1 sibling, 0 replies; 10+ messages in thread
From: yue @ 2011-04-01  2:46 UTC (permalink / raw)
  To: LVM general discussion and development

[-- Attachment #1: Type: text/plain, Size: 2310 bytes --]

1.what i mean is that, when copy one lv, i would like use it's snapshot, not origin, because origin  is always template.     making a snapshot is very quick.
but if  can take  a  thousand snapshots from one lv,  same size as origin? while the snapshots are readable and writable?
 
thanks 
2.nice -5 dd if=/dev/clones/from bs=64M iflag=direct |
        dd of=/dev/scratch/to bs=64M oflag=direct
the pipe base on STDIN,STDOUT. i do not think  STDIN,STDOUT have too mush cache



At 2011-03-31 08:27:52,"Stuart D. Gathman" <stuart@bmsi.com> wrote:

>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).
>
>>> 2.i take lv as xen-guestOS's  disk. usually many  guestOS created
>>> from one lv(called template), maybe many data is readonly, so  if  so
>>> many lvs share readonly part ,and have its private data? COW save
>>> disk space, and take less time. i do not think snapshot is sutable
>>> for this case. thanks
>
>As long as the origin is not often modified, having many snapshots
>is efficient.  Each write to the origin will of course entail a write
>to each snapshot.  (And as I discovered recently, if write barriers are
>disabled or buggy at any hardware or software layer, a power failure during
>heavy writes to the origin is particularly vulnerable to write reordering 
>corrupting a snapshot.  So make sure UPS is working before updating the
>origin.)
>
>--
> 	      Stuart D. Gathman <stuart@bmsi.com>
>     Business Management Systems Inc.  Phone: 703 591-0911 Fax: 703 591-6154
>"Confutatis maledictis, flammis acribus addictis" - background song for
>a Microsoft sponsored "Where do you want to go from here?" commercial.
>
>_______________________________________________
>linux-lvm mailing list
>linux-lvm@redhat.com
>https://www.redhat.com/mailman/listinfo/linux-lvm
>read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/

[-- Attachment #2: Type: text/html, Size: 4128 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [linux-lvm] copy lv from lv?
  2011-03-31 12:15       ` Zdenek Kabelac
@ 2011-04-05 16:25         ` Ray Morris
  2011-04-05 21:10           ` Zdenek Kabelac
  0 siblings, 1 reply; 10+ messages in thread
From: Ray Morris @ 2011-04-05 16:25 UTC (permalink / raw)
  To: LVM general discussion and development; +Cc: zkabelac

> 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@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@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@redhat.com
> https://www.redhat.com/mailman/listinfo/linux-lvm
> read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [linux-lvm] copy lv from lv?
  2011-04-05 16:25         ` Ray Morris
@ 2011-04-05 21:10           ` Zdenek Kabelac
  2011-04-05 21:29             ` [linux-lvm] Taking it off list - " Ray Morris
  0 siblings, 1 reply; 10+ messages in thread
From: Zdenek Kabelac @ 2011-04-05 21:10 UTC (permalink / raw)
  To: Ray Morris; +Cc: LVM general discussion and development

Dne 5.4.2011 18:25, Ray Morris napsal(a):
>> 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
> 

Seem like 10 years old paper for 2.4.6 kernel - so I do not think it still
applies to upstream 2.6.38 - thought I've not made any recent measuring myself.

> 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.

The kernel should be able to use as much free memory as you have - and
when it's properly configured - disk flushing running in separate thread
should ensure maximal throughput.

If you are experiencing significant performance degradation with usage of
single  'dd'  with two different driver compared with 2 piped 'dd' - you
should probably make a report on lkml list - There is something broken if you
gain 'hours' like you said by piping 2 dd commands.

(I don't have fast enough arrays myself for such playing)

Zdenek

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [linux-lvm] Taking it off list - Re:  copy lv from lv?
  2011-04-05 21:10           ` Zdenek Kabelac
@ 2011-04-05 21:29             ` Ray Morris
  0 siblings, 0 replies; 10+ messages in thread
From: Ray Morris @ 2011-04-05 21:29 UTC (permalink / raw)
  To: linux-lvm

> If you are experiencing significant performance degradation with
> usage of single  'dd'  with two different driver compared with 2
> piped 'dd' - you should probably make a report on lkml list - There
> is something broken if you gain 'hours' like you said by piping 2 dd
> commands.

I'm taking this off list as off topic, so if anyone else is interested
please let me know and I'll update you on what we find.
-- 
Ray Morris
support@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 Tue, 05 Apr 2011 23:10:20 +0200
Zdenek Kabelac <zkabelac@redhat.com> wrote:

> Dne 5.4.2011 18:25, Ray Morris napsal(a):
> >> 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
> > 
> 
> Seem like 10 years old paper for 2.4.6 kernel - so I do not think it
> still applies to upstream 2.6.38 - thought I've not made any recent
> measuring myself.
> 
> > 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.
> 
> The kernel should be able to use as much free memory as you have - and
> when it's properly configured - disk flushing running in separate
> thread should ensure maximal throughput.
> 
> If you are experiencing significant performance degradation with
> usage of single  'dd'  with two different driver compared with 2
> piped 'dd' - you should probably make a report on lkml list - There
> is something broken if you gain 'hours' like you said by piping 2 dd
> commands.
> 
> (I don't have fast enough arrays myself for such playing)
> 
> Zdenek
> 
> _______________________________________________
> linux-lvm mailing list
> linux-lvm@redhat.com
> https://www.redhat.com/mailman/listinfo/linux-lvm
> read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2011-04-05 21:29 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-29 12:53 [linux-lvm] copy lv from lv? yue
2011-03-29 17:48 ` Ray Morris
2011-03-30 13:49 ` yue
2011-03-30 18:28   ` Ray Morris
2011-03-31  0:27     ` Stuart D. Gathman
2011-03-31 12:15       ` Zdenek Kabelac
2011-04-05 16:25         ` Ray Morris
2011-04-05 21:10           ` Zdenek Kabelac
2011-04-05 21:29             ` [linux-lvm] Taking it off list - " Ray Morris
2011-04-01  2:46     ` [linux-lvm] " yue

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).