Skip to content
Logical Volume Sync Tool
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lvsync
scripts
.gitignore
LICENSE.txt
MANIFEST
README.md
setup.cfg
setup.py

README.md

lvsync

Logical Volume Sync Tool

Example

Task:
We need to migrate logical volume (e.g. used by virtual machine) from host1 to host2 with minimal downtime.
Logical volume path (host1): /dev/vg/disk1 (e.g. size: 10G)

Solution:

  • Create lvm-snapshot on running virtual machine:
    lvcreate -s disk1-snap -L 1G vg/disk1

  • Create new logical volume on remote host2 with the same or bigger size:
    lvcreate -s disk1-mgr -L 10G vg

  • Send the new snapshot to remote host2 using dd or just run:
    lvsync /dev/vg/disk1-snap root@host2:/dev/vg/disk1-mgr

     At first you need to send created snapshot to remote server.
     Type 'no' if you have already sent volume manually.
     Command: dd if=/dev/vg/disk1-snap bs=1M | pv -ptrb | ssh root@host2 dd of=/dev/vg/disk1-mgr bs=1M
     Run sync? [yes/no]: yes
     
  • Then you have to shut down virtual machine and run script again to sync only chunks with changed data: lvsync /dev/vg/disk1-snap root@host2:/dev/vg/disk1-mgr

     At first you need to send created snapshot to remote server.
     Type 'no' if you have already sent volume manually.
     Command: dd if=/dev/vg/disk1-snap bs=1M | pv -ptrb | ssh root@host2 dd of=/dev/vg/disk1-mgr bs=1M
     Run sync? [yes/no]: no
     
     Found 2672 changed chunks.
     Send chunks to remote volume? [yes/no]: yes
     

Links

Based on https://github.com/mpalmer/lvmsync

You can’t perform that action at this time.