Project

General

Profile

Actions

Feature #59593

closed

The capability of resetting an empty bucket to the clean-slate state in multi-site environment

Added by Yixin Jin about 1 year ago. Updated 29 days ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
% Done:

0%

Source:
Tags:
multisite
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

In a multi-site environment, we can sync objects of the same bucket or even different buckets between zones. This serves the purpose of data backup/recovery well. However, if we just want to migrate the objects of a bucket from one zone to another, the current solution seems to be inadequate.

Right now, we can copy the objects of a bucket from one zone (let's say A) to another zone (let's say B) via bucket-level sync. To achieve the purpose of migration, after disabling sync, we need to remove all objects of the bucket from zone A. However, later if we want to migrate the objects back from zone B to zone A, we will have troubles because zone A has updated its max_markers on each shard to reflect the history of object removals. These markers prevent the objects from zone B from migrating back since their markers are "older". Only those objects that were created later will be sync-ed over.

However, if we can reset these markers or delete them on an empty bucket, and, at the same time, ensure all bilogs have been auto-trimmed, making a full-sync from zone B to zone A will bring back all objects in zone B, including those that have been deleted in zone A earlier, thus start the process of another migration. My own prototype that enables this capability of resetting approves that it is viable. Right now, ceph/rgw doesn't seem to have this capability. Therefore, I created this feature request ticket to seek the possibility of introducing this capability into ceph/rgw.

Actions

Also available in: Atom PDF