[Gluster-devel] Snapshot aware Geo-replication
Aravinda
avishwan at redhat.com
Tue Apr 5 09:18:51 UTC 2016
Hi,
Gluster Snapshots and Geo-replication are not well integrated, lot of
steps to be performed to take snapshot of Gluster Volume which is
Geo-replicated. Proposed enhancement for Geo-replication to understand
Snapshot better and automatically handle Slave side snapshot.
Proposed Solution:
------------------
Take Gluster Snapshot and set Geo-replication Config
`current-snapshot` using,
gluster volume geo-replication <MASTERVOL> <SLAVEHOST>::<SLAVEVOL> \
config current_snapshot <SNAPNAME>
Geo-rep will automatically restart on config change and new config
will act as switch to use Snapshot or Live Volume.
Geo-rep will mount snapshot Volume in Master instead of Live
Volume, so that Geo-rep can sync the changes from Snapshot Volume
instead of live volume. Along with the mount Geo-rep should use the
back end changelogs of snapshot brick instead of live brick.
Geo-rep worker will update stime both in snapshot bricks and live
bricks, this is required to prevents re-processing changelogs which
are already processed when switched to live Changelogs.
Once all the changes from Snapshot synced to slave then Geo-rep worker
will trigger snapshot at slave side. On successful slave snapshot
Geo-replication will automatically switches to live Volume by
resetting current_snapshot option.
Snapshot Restore:
-----------------
Restore both Slave and Master Volume to the same Snapshot name,
Geo-rep should work without any further changes.
Challenges:
-----------
- Geo-rep may not work as expected if we give old snapshot name after
latest snapshot name.
- Detecting the completion of sync from Snapshot Volume(Checkpoint?)
- Since Changelogs are generated even in Snapshot Volume, updating stime
on live bricks while syncing from snapshot Volume brick may cause
problems
when switched back to live.
- Finding respective snapshot brick path from live volume brick path may be
challenging if Bricks removed/added after taking snapshot.
--
regards
Aravinda
More information about the Gluster-devel
mailing list