All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christophe Varoqui <christophe.varoqui@gmail.com>
To: dm-devel <dm-devel@redhat.com>
Subject: [ANNOUNCE] dds snapshot based remote async replication
Date: Sun, 27 Jun 2010 20:38:15 +0200	[thread overview]
Message-ID: <1277663895.20849.906.camel@localhost> (raw)

Hi,

dds is a small GPLv2-licensed C program I developed to replicate LVM2
logical volumes to bandwidth-constrained targets (primarily off-site
nodes for disaster recovery). It's main use-case is to replicate opaque
logical volume, like those given to virtual machine as virtual disks.

On source, dds parses a snapshot COW metadata and extracts changed data
from a tiers block device. Data and metadata can be dumped to a file or
piped (the format is the same as the LVM2 dedicated COW devices).

On target, dds parses a COW-file (generated by dds on source) or stdin,
and applies deltas to a specified file or block device.


Example command:

dds --extract --cow /dev/mapper/unxtstsvc02-data_osvc_snap1-cow
--source /dev/unxtstsvc02/data_osvc_snap2 | /usr/bin/ssh vm5 dds --merge
--dest /tmp/dds.img -v

Output of the remote dds execution:

Snapshot header:
  magic             0x70416e53
  version           1
  valid             yes
  chunk_size        4 KB
Report:
  Exception chunks  11
  Exceptions        2728
  Output size meta  48 KB
  Output size data  10912 KB
  Output size total 10960 KB


dds pros:
o low cpu resource overhead
o low bandwidth usage: only delta are synced
o cleanly wrapped into OpenSVC as a replication strategy

dds cons:
o no easy way to verify src/dst integrity (checksumming the whole src/dst is not fair)
o async only: hourly to daily is the reasonable range
o need free extents in the VG to create 1 long-lived snap to keep track of changed extents and 1 short-lived snap to extract fresh data from
o need to run a full sync in case of a corruption
o the target device is corrupted during the sync: the snap merge-back feature integration would provide a clean way to address this problem

OpenSVC is a clustered service manager embedding data replication drivers.
More details on OpenSVC integration at http://www.opensvc.com/

dds source file is tracked at http://git.opensvc.com/
Comments and reviews are welcome.

Regards,

-- 
Christophe Varoqui <christophe.varoqui@opensvc.com>
OpenSVC

                 reply	other threads:[~2010-06-27 18:38 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1277663895.20849.906.camel@localhost \
    --to=christophe.varoqui@gmail.com \
    --cc=christophe.varoqui@opensvc.com \
    --cc=dm-devel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.