Project

General

Profile

Actions

Bug #39547

closed

multisite: metadata consistency on non-master zones

Added by Casey Bodley almost 5 years ago. Updated 12 months ago.

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

100%

Source:
Tags:
multisite
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

RGW users and buckets are referred to as metadata, and are controlled by the RGWMetadataManager and its various RGWMetadataHandlers. In multisite, we require stronger consistency on metadata than we do for data (ie objects in buckets). The master zone of the master zonegroup is designated as the 'metadata master zone', and all other zones sync metadata changes from that metadata master zone only. This means that, in order to guarantee a consistent view of metadata across all zones/zonesgroups, any metadata mutations (for example, creation of a user or bucket) must first be applied on the metadata master zone.

S3/Swift APIs

Most operations that modify buckets, when sent to a non-master zone, are automatically forwarded to the metadata master zone with forward_request_to_master(). If they succeed against the master zone, they are then applied locally before responding to the client.

One gap here is for PUT Bucket Lifecycle (RGWPutLC), with an associated bug report in http://tracker.ceph.com/issues/22648. The interaction between multisite sync and lifecycle processing (both expiration and transitions) needs more thought.

Admin APIs

There are several admin apis that can modify user/bucket metadata. Some are documented in http://docs.ceph.com/docs/master/radosgw/adminops/. Most fall under rgw_rest_bucket.*, rgw_rest_metadata.*, and rgw_rest_user.*. All of these ops are applied on the local zone only, but any that write metadata should be made to call forward_request_to_master() first when sent to a non-master zone.

radosgw-admin commands

radosgw-admin exposes a lot of commands to create/modify users and buckets, but all of the modifications apply to the local zone. When run on a non-master zone, these commands could potentially issue http requests against the master zone's admin apis. However, our admin apis don't have full coverage of the radosgw-admin commands and options, so this strategy would be difficult and error-prone. These commands should instead fail with an error message saying to run the command on the master zone instead (accepting the --yes-i-really-mean-it flag to override).


Subtasks 2 (0 open2 closed)

Bug #39548: multisite: radosgw-admin commands should not modify metadata on a non-master zoneResolvedShilpa MJ04/30/2019

Actions
Bug #39549: multisite: admin apis on non-master zone should forward to master zoneResolvedShilpa MJ

Actions
Actions #1

Updated by Casey Bodley 12 months ago

  • Status changed from New to Resolved
Actions

Also available in: Atom PDF