l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
October 7: Social gathering
Next Installfest:
TBD
Latest News:
Aug. 18: Discounts to "Velocity" in NY; come to tonight's "Photography" talk
Page last updated:
2012 May 29 18:19

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] Cloning LVM volume over network
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] Cloning LVM volume over network



On Tue, May 29, 2012 at 02:09:16PM -0700, Alex Mandel wrote:
> On 05/29/2012 11:36 AM, Brian Lavender wrote:
> > On Sun, May 27, 2012 at 09:16:24AM -0700, Wes Hardaker wrote:
> >> Alex Mandel <tech_dev@wildintellect.com> writes:
> >>
> >>> I'm looking for the most efficient way to clone an LVM volume 50GB from
> >>> one physical machine to another. Both machines must stay up, so that
> >>> rules out clonezilla. I'd also like it to be more efficient that dd, so
> >>> more similar to partimage or partclone where it skips the empty space
> >>> and only copies the filled part.
> >>>
> >>> Anyone have examples that show how to do this?
> >>
> >> I'd typically use rsync...  Fast and efficient :-)
> > 
> > Assuming the lvm volume is mounted on both sides and you tunnel rsync over ssh. 
> > If you are in an internal network, you could do it over rsh and avoid the crypto
> > overhead.
> > 
> > cd /mnt/local
> > 
> > Then use the the following from the rsync man page, clipped below. 
> > rsync uses the -e option for ssh, but I don't quite have a machine to test it.
> > 
> >  To synchronize my samba source trees use the following: 
> > 
> >                    rsync -Cavuzb . remote_machine:/mnt/local/
> > 
> > It is clipped from where Tridgell talks abut syncing his samba shares using
> > a Makefile and samba source code for CVS commits.
> > 
> > brian
> > 
> 
> I think the tricky part here is that the lvm volume may contain multiple
> partitions (I think it does have a / and a swap since it's a virtual
> machine disk), and I need the partition information, including the boot
> flags.
> 
> Yes it is local network, same rack, I even have a private subnet between
> the machines.
> 
> This seems to be the foolproof way
> http://www.alethe.com/brad/2008/04/move-an-lvm-based-virtual-machine-to-another-host/
> 
> Was just hoping I could figure out how to do it faster, clonezilla seems
> fancier than just partclone though. I think I need something that dumps
> the partition information too.
> 
> Thanks,
> Alex
I wrote a script a while ago for this sort of situation, which
assumes certain things about the VMs /etc/fstab and
/boot/grub/menu.lst files, then it mounts the lvm partition
filesystems in the dom0 appropriately and you could run rsync
across all of them together:
#!/bin/bash

export DISK=$1
export MOUNTPOINT=$2
ROOTPART=1

/sbin/kpartx -av $DISK

mount "$DISK"1 $MOUNTPOINT

if [ -L $MOUNTPOINT/boot  ]; then
ROOTPART=`cat $MOUNTPOINT/boot/grub/menu.lst | perl -nle 'if ($_ =~ /^[\s]kernel.+root=\/dev\/\p{L}+([\d])/) { print "$1"; exit}'`
umount $MOUNTPOINT
mount "$DISK""$ROOTPART" $MOUNTPOINT
fi

cat $MOUNTPOINT/etc/fstab | perl -nle 'if ($_ =~ /^\/dev\/\p{L}+([\d])[\s]+((\/\p{L}+)+)/ ) { $device=$ENV{DISK} . $1 ; $mountpoint=$ENV{MOUNTPOINT} . $2 ; system "mount $device $mountpoint"}'

mixing bash and perl is a little ugly, and I don't even know if
this was ever actually used for the intended purpose because it
was for somebody else, but I hope it might help you! :)
Nick
_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech



LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
EDGE Tech Corp.
For donating some give-aways for our meetings.