[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