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

_______________________________________________
Gluster-devel mailing list
[email protected]
http://www.gluster.org/mailman/listinfo/gluster-devel

Reply via email to