virtsync

Obsolete product warning:

This page is maintained for the benefit of existing virtsync customers.

(The existing downloads fail to search for the most recent versions of openssl. No fix is planned.)

virtsync is a $49 commercial Linux command-line tool for synchronizing the contents of huge files (such as virtual machine disk images and databases).

chris@server:~$ time virtsync -v /var/lib/libvirt/images/vsws.img backup.barricane.com:/home/chris/
syncing /var/lib/libvirt/images/vsws.img to backup.barricane.com:/home/chris/vsws.img (dot = 1 GiB)
[........>.........................................]
done - 53687091200 bytes compared, 4096 bytes transferred.

real    2m47.201s
user    0m48.821s
sys     0m43.915s 

It can update a remote copy of a 50GB file, across broadband internet links, in just a few minutes.

"Just tried it with one file - it not only works, but it's way faster than rsync, excellent!"

- Taneli Leppä (crasman.fi)

try virtsync today...

features

Local synchronization

VirtSync can update an older copy of a file to the latest content. Ideal for backups - either to a single backup drive, or to a set of rotated backup media.

Network and internet synchronization

VirtSync's efficiency allows multi-gigabyte files to be replicated to remote backup and hot standby locations. It is currently synchronizing 50GB+ disk images across the internet in under 3 minutes each

Remote synchronisation requires that the machine's public certificate has been installed in the target machine's authorized_keys file. If login to the remote machine is not possible without a password prompt, virtsync will fail. See "man ssh-copy-id".

chris@server:~$ time virtsync -v /var/lib/libvirt/images/vsws.img backup.barricane.com:/home/chris/
syncing /var/lib/libvirt/images/vsws.img to backup.barricane.com:/home/chris/vsws.img (dot = 1 GiB)
[..................................................]
done - 53687091200 bytes compared, 0 bytes transferred.

real    2m44.662s
user    0m48.730s
sys     0m44.000s
    

(or under 20 minutes when there are 800MB of changes to synchronize).

chris@server:~$ time virtsync -v /var/lib/libvirt/images/vsws.img backup.barricane.com:/home/chris/
syncing /var/lib/libvirt/images/vsws.img to backup.barricane.com:/home/chris/vsws.img (dot = 1 GiB)
[>.......>.>.>.>.>.>.>.>.>.....>.......>.......>...]
done - 53687091200 bytes compared, 810745856 bytes transferred.

real    17m42.061s
user    0m47.590s
sys     0m46.870s
    

(The above tests were done using 5 year old servers, and FTTC broadband.)

man page

VIRTSYNC(1)                                                          VIRTSYNC(1)

NAME
       virtsync - synchronise huge sparse files efficiently

SYNOPSIS
       local:
              virtsync [OPTIONS] source_file dest_file
              virtsync [OPTIONS] source_files dest_dir
              virtsync [OPTIONS] source_dir dest_dir

       remote: (via ssh)
              virtsync [OPTIONS] source_file [user@]host:dest_file
              virtsync [OPTIONS] source_files [user@]host:dest_dir
              virtsync [OPTIONS] source_dir [user@]host:dest_dir

DESCRIPTION
       Synchronise  source_file to dest_file or dest_dir, multiple source_files
       to dest_dir, or source_dir to dest_dir.

       Remote synchronisation requires that the machine's public certificate has 
       been installed in the target machine's authorized_keys file.  If login
       to the remote machine is not possible without a password prompt, 
       virtsync will fail.  See "man ssh-copy-id".

       Destination files are updated in-place, with only changed blocks being
       written.

       Destination files and directories are created, if they do not already
       exist.

OPTIONS
       -V, --version
              Output program version.

       -h, --help
              Output help information.

       -v, --verbose
              Enable verbose output.

       -j, --json-stats
              Enable JSON stats.

(from version 1.1.7 onwards)

       -C, --compression
              Pass -C parameter to ssh transport.

       -i, --identity-file
              Pass -i parameter to ssh transport.


REPORTING BUGS
       Report virtsync bugs to virtsync@barricane.com
       VirtSync home page: http://www.virtsync.com

AUTHOR
       virtsync was written by <chris.dew@barricane.com>.

COPYRIGHT
       Copyright (C) 2011-2015, Barricane Technology Ltd. All Rights Reserved.

                               September 18, 2011                    VIRTSYNC(1)

    

frequently asked questions

Can I use virtsync with remote filesystems, such as NFS and SHFS?

Virtsync reads the whole source file on the source machine and the whole destination file on the destination machine. This is neccessary to determine which parts are different. Only the changed parts are sent over the wire from the source to the destination machine.

Use of remote filesystems is therefore unsupported. In addition, there may be issues with permissions and ioctls on non-standard filesystems.

I get the following error message when attempting to run virtsync:

loading libcrypto.so...
loading libcrypto.so.0.9.8...
loading libcrypto.so.0.9.8e...
loading libcrypto.so.6...
libcrypto.so.6: cannot open shared object file: No such file or directory 

This is a bug in v0.9.5 - it will be fixed in the next release. You can work around this issue by installing the openssl-devel package (for .rpm users) or libssl-dev (for .deb users).

Can virtsync synchronize a virtual machine's disk image, while the VM is in use?

Yes, if the VM is not writing to it's disk for the duration of the synchronization. Otherwise, look at LVM snapshots.

How long does it take to do an initial synchronisation of a file?

When there is no old version of the file as a target, the entire contents of the file must be sent. For a remote sync, this will be limited by the speed of your network connection. For a local sync, this will be limited by the sequential IO rate of your drives.

How long are evaluation copies licensed for?

Evaluation copies are licensed for 30 days from the date of download.

All the packages are for 64 bit OSs, will there be 32 bit packages released?

The majority of modern servers run 64 bit operating systems. If you need a 32 bit package then please contact us.

How much faster is virtsync that rsync?

Virtsync is typically ten times faster than rsync when updating an existing file (tested across 100Mbit ethernet), and twice as fast for the initial copy.

buy licensed copies

If you would like to use virtsync beyond the expiry of your evaluation copy, you must buy licenses to use the software on one or more machines.

Apology to non-VAT-registered EU residents: Due to #VATMESS you may not purchase virtsync licenses if you live in an EU country other than the UK. (As a small, non-VAT-registered company, it would cost 5-10 years' EU profits to comply with the VATMOSS regulations.)

We are open for business with the UK, the USA the rest of the non-EU world, and VAT-registered businesses in the EU.

VAT-registered EU businesses will need to send their VAT registration number.


Please choose a currency and the number of licenses that you would like to purchase:

US Dollars

Euros

British Pounds

Delivery: Fully licensed copies of virtsync (in both .rpm and .deb formats) will be delivered by email within three working days of receipt of payment.

Note: The one machine license has network functionality disabled, it is intended for virtsync'ing huge files between an internal HDD and an external HDD for backup purposes.

contact us

You can contact virtsync's author by email at chris.dew@virtsync.com. virtsync is a product of Barricane Technology Ltd., a micro-ISV based in England.